centos

centos cpustat如何实现自动化监控

小樊
33
2025-06-10 12:23:22
栏目: 智能运维

要在 CentOS 上使用 cpustat 实现自动化监控,可以结合 cron 定时任务和脚本编写来实现。以下是详细的步骤:

1. 安装 sysstat

首先,确保已经安装了 sysstat 包,因为 cpustat 是该包的一部分。

sudo yum install sysstat -y

2. 编写监控脚本

创建一个脚本文件,例如 /usr/local/bin/monitor_cpu.sh,并添加以下内容:

#!/bin/bash

# 设置输出文件路径
output_file="/var/log/cpu_usage.log"

# 获取当前日期和时间
timestamp=$(date +"%Y-%m-%d %H:%M:%S")

# 使用 cpustat 获取 CPU 使用率,并格式化输出
cpustat -c 1 1 | awk 'NR>1 {print $0 " " timestamp}' >> "$output_file"

解释:

3. 赋予脚本执行权限

sudo chmod +x /usr/local/bin/monitor_cpu.sh

4. 设置定时任务

使用 cron 来定期运行脚本。编辑当前用户的 crontab 文件:

crontab -e

添加以下行来每分钟运行一次脚本:

* * * * * /usr/local/bin/monitor_cpu.sh

保存并退出编辑器。

5. 验证定时任务

确保 cron 服务正在运行,并且定时任务已正确添加:

sudo systemctl status crond

查看日志文件 /var/log/cpu_usage.log 以验证输出:

tail -f /var/log/cpu_usage.log

6. 可选:设置邮件通知

如果希望在 CPU 使用率超过某个阈值时收到邮件通知,可以在脚本中添加邮件发送功能。例如,使用 mail 命令:

#!/bin/bash

# 设置输出文件路径
output_file="/var/log/cpu_usage.log"

# 获取当前日期和时间
timestamp=$(date +"%Y-%m-%d %H:%M:%S")

# 使用 cpustat 获取 CPU 使用率,并格式化输出
cpu_usage=$(cpustat -c 1 1 | awk 'NR>1 {print $0 " " timestamp}')

# 将输出追加到日志文件中
echo "$cpu_usage" >> "$output_file"

# 检查 CPU 使用率是否超过阈值(例如 80%)
if [[ $(echo "$cpu_usage" | awk '{print $3}') > 80 ]]; then
    # 发送邮件通知
    echo "CPU usage is high: $cpu_usage" | mail -s "High CPU Usage Alert" your_email@example.com
fi

确保系统已配置邮件发送功能(例如使用 postfixsendmail),并且 mail 命令可用。

通过以上步骤,你可以在 CentOS 上实现 cpustat 的自动化监控,并根据需要发送警报通知。

0
看了该问题的人还看了