centos

centos cpustat命令怎样设置阈值报警

小樊
45
2025-04-04 19:42:09
栏目: 智能运维

在 CentOS 系统中,cpustat 命令是 sysstat 包的一部分,用于显示 CPU 使用情况的统计信息。如果你想要设置 CPU 使用率的阈值报警,可以通过编写一个简单的脚本来实现。

以下是一个基本的脚本示例,该脚本会定期检查 CPU 使用率,并在使用率超过设定的阈值时发送报警:

#!/bin/bash

# 设置CPU使用率阈值(百分比)
THRESHOLD=80

# 检查间隔时间(秒)
INTERVAL=5

# 获取CPU使用率
get_cpu_usage() {
    cpu_usage=$(mpstat 1 1 | awk '/Average:/ {print $13}' | cut -d'.' -f1)
    echo $cpu_usage
}

# 主循环
while true; do
    cpu_usage=$(get_cpu_usage)
    echo "Current CPU usage: $cpu_usage%"

    if [ "$cpu_usage" -gt "$THRESHOLD" ]; then
        # 发送报警,这里使用邮件作为示例
        echo "CPU usage is above threshold: $cpu_usage%" | mail -s "CPU Usage Alert" your_email@example.com
    fi

    sleep $INTERVAL
done

步骤说明:

  1. 安装 sysstat(如果尚未安装):

    sudo yum install sysstat
    
  2. 创建脚本文件: 将上述脚本保存为一个文件,例如 cpu_monitor.sh

  3. 设置阈值和间隔时间: 修改脚本中的 THRESHOLDINTERVAL 变量,以适应你的需求。

  4. 发送报警邮件: 确保你的系统配置了邮件服务(如 postfixsendmail),并且脚本中的 your_email@example.com 替换为你实际的邮箱地址。

  5. 赋予执行权限

    chmod +x cpu_monitor.sh
    
  6. 运行脚本

    ./cpu_monitor.sh
    

注意事项:

使用 systemd 创建服务示例:

  1. 创建服务文件

    sudo nano /etc/systemd/system/cpu_monitor.service
    
  2. 添加以下内容

    [Unit]
    Description=CPU Usage Monitor
    
    [Service]
    ExecStart=/path/to/cpu_monitor.sh
    Restart=always
    User=nobody
    
    [Install]
    WantedBy=multi-user.target
    
  3. 重新加载 systemd 配置

    sudo systemctl daemon-reload
    
  4. 启动服务

    sudo systemctl start cpu_monitor.service
    
  5. 设置开机自启动

    sudo systemctl enable cpu_monitor.service
    

通过这种方式,你可以实现 CPU 使用率的阈值报警,并确保脚本在系统启动时自动运行。

0
看了该问题的人还看了