Jquery中文網 www.lfcgx.club
Jquery中文網 >  腳本編程  >  shell  >  正文 nagios檢測cpu的插件(bash腳本)

nagios檢測cpu的插件(bash腳本)

發布時間:2014-11-21   編輯:www.lfcgx.club
本文介紹下,bash實現的一個nagios中檢測cpu狀態信息的插件,有需要的朋友參考下。

nagios用于服務器監控,那是相當不錯的。
不過,有時需要自己編寫一些插件來完成特定的用途。

本文分享一段bash shell 腳本,也就是一個nagios下的cpu檢測插件。

代碼:
 

復制代碼 代碼示例:

#!/bin/bash
#如果某些命令找不到,可以在此定義$PATH。
#使用方法:直接執行腳本,無需其它參數,使用iostat命令獲得服務器CPU狀態的值,并返回給Nagios及Nagios插件pnp #

# 狀態定義
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3
STATE_DEPENDENT=4

# 將執行6次的結果寫入文件
touch /tmp/iostat.log
iostat -c 1 6 >/tmp/iostat.log
if [ $? -ne 0 ]
then
  echo "Error : Can't find the command 'iostat' ."
 exit "$STATE_UNKNOWN"
fi
# 判斷文件是否存在
if [ ! -f /tmp/iostat.log ]
then
 echo "Error : iostat.log not found ."
 exit "$STATE_UNKNOWN"
fi

# 賦值,取6次結果中的后5次的平均值
float_user=`cat /tmp/iostat.log |grep -v % |grep -v ^$ |sed '1,2d' |awk '{a+=$1}END{printf "%.0f",a/5}'`
float_system=`cat /tmp/iostat.log |grep -v % |grep -v ^$ |sed '1,2d' |awk '{a+=$3}END{printf "%.0f\n",a/5}'`
float_idle=`cat /tmp/iostat.log |grep -v % |grep -v ^$ |sed '1,2d' |awk '{a+=$6}END{printf "%.0f\n",a/5}'`
float_iowait=`cat /tmp/iostat.log |grep -v % |grep -v ^$ |sed '1,2d' |awk '{a+=$4}END{printf "%.0f\n",a/5}'`

# 刪除iostat日志文件
if [ -f /tmp/iostat.log ]
then
 rm -f /tmp/iostat.log
fi

# 計算CPU使用率
used_idle=`awk "BEGIN{print (100-$float_idle)}"`

# 判斷取到的值是否在正確范圍
if [ $used_idle -lt 0 -o $used_idle -gt 100 ]
then
 echo "Error : used_idle out of the correct range ."
 exit "$STATE_UNKNOWN"
fi

# 定義報警閾值,這里為百分數,請不要添加‘%’
critical=90
warning=80

# 定義報警輸出
stat_ok="OK"
stat_warning="WARNING"
stat_critical="CRITICAL"
stat_unknown="UNKNOWN"
stat_info="User=${float_user}% System=${float_system}% Iowait=${float_iowait}% Idle=${float_idle}% | CPU_Used=${used_idle}%"

# 判斷并返回相應的值
if [ ${used_idle} -lt $warning ]
    then
    echo "${stat_ok} : ${stat_info}"
    exit "$STATE_OK"

elif [ ${used_idle} -ge $warning -a ${used_idle} -lt $critical ]
    then
    echo "${stat_warning} : ${stat_info}"
    exit "$STATE_WARNING"

elif [ ${used_idle} -ge $critical ]
    then
    echo "${stat_critical} : ${stat_info}"
    exit "$STATE_CRITICAL"

else
    echo "${stat_unknown} : ${stat_info}"
    exit "$STATE_UNKNOWN"
fi

您可能感興趣的文章:
nagios檢測cpu的插件(bash腳本)
shell腳本統計多個CPU利用率
Nagios插件編寫與調試
Nagios內存監控腳本
檢測cpu相關信息的幾個shell腳本(圖文)
幾個檢測cpu信息的shell腳本(圖文)
監控硬盤使用率的shell腳本
磁盤空間使用狀況檢測腳本
監控linux中CPU 內存 磁盤數據的shell腳本(圖文)
ping檢測告警函數的shell腳本

[關閉]
矮木头走势图
广西快乐双彩 排列五开奖结果直播 乡镇快递代收点赚钱吗 8月1日体彩取消电子投注 赚钱的推手平台 湖南幸运赛车 七乐彩基本走势图分析 篮球竞彩比分直播 彩票论坛网 捕鱼大师1.6 用百度app赚钱吗 ag百搭777 007足球即时比分手机 云南时时彩 山西11选5专家推荐 国际标准麻将官网