要在 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"
說明:
- 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
查看生成的日志文件內容:
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
注意:需提前配置好郵件發送環境(如 postfix 或 sendmail),并確保系統支持 mail 命令。
按照上述步驟操作后,即可在 centos 中實現基于 cpustat 的自動化性能監控,并可依據需求設置異常告警機制。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END