標籤:shell nagios 監控磁碟
之前寫了一篇文章主要介紹nagios的搭建使用 http://msiyuetian.blog.51cto.com/8637744/1704346
下面這篇文章主要介紹nagios自訂監控系統磁碟的指令碼實現。
Nagios可以識別4種狀態返回資訊,即 0 表示狀態正常(OK)、1 表示出現警告(WARNING)、2 表示出現非常嚴重的錯誤(CRITICAL),3 表示未知錯誤(UNKNOWN)。Nagios根據外掛程式返回來的值,來判斷監控對象的狀態,並通過web顯示出來。我們就可以利用上面這個特性來實現監控磁碟的狀態:
a、當磁碟使用率大於97%則表示出現非常嚴重的錯誤(CRITICAL),傳回值為2;
b、當磁碟使用率大於95%則表示出現警告(WARNING),傳回值為1;
c、當磁碟使用率小於95%則表示狀態正常(OK),傳回值為0;
說明:
server ip :192.168.0.114
client ip :192.168.0.115
1、用戶端配置
1)編寫指令碼
[[email protected] ~]# vim /usr/lib/nagios/plugins/check_disk.sh
#!/bin/bash
row=`df -h |wc -l` for i in `seq 2 $row` do ava=`df -h |sed -n "$i"p|awk ‘{print $4}‘` u_per=`df -h |sed -n "$i"p|sed -n "s/\%//"p|awk ‘{print $5}‘` p_p=`df -h -P|sed -n "$i"p|awk ‘{print $6}‘` if [ "$u_per" -gt "97" ];then echo -n "$p_p CRITICAL $u_per% $ava " sta[$i]=2 elif [ "$u_per" -gt "95" ];then echo -n "$p_p WARNING! $u_per% $ava " sta[$i]=1 else echo -n "$p_p OK $u_per% $ava " sta[$i]=0 fi done n=0 for j in `seq 2 $row` do if [ "${sta[$j]}" -gt $n ];then n=${sta[$j]} fi done exit $n |
指令碼說明:
我們利用df -h命令可以查看磁碟的使用狀態 [[email protected] ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 18G 2.6G 15G 16% / tmpfs 504M 0 504M 0% /dev/shm /dev/sda1 97M 26M 67M 29% /boot 指令碼中 for i in `seq 2 $row` :表示從df -h命令輸出的第二行開始進行迴圈。 參數ava、u_per、p_p分別定義為剩餘空間(Avail)、使用率(Use%)、掛載點(Mounted on) 數組sta[$i],輸出的是傳回值,當返回0表示OK,返回1表示WARNING!,返回2表示CRITICAL。 最後我們利用輸出數組的最大值來判斷,只要有一個掛載點的使用率達到97%以上,在nagios網頁上都會顯示CRITICAL。 |
2)修改指令碼許可權
[[email protected] ~]# chmod +x /usr/lib/nagios/plugins/check_disk.sh
3)編輯設定檔
[[email protected] ~]# vim /etc/nagios/nrpe.cfg //增加一行
| command[check_disk]=/usr/lib/nagios/plugins/check_disk.sh |
4)重啟nrpe服務
[[email protected] ~]# /etc/init.d/nrpe restart
2、服務端配置
1)檢查剛才用戶端上的指令碼是否正常運行
[[email protected] ~]# /usr/lib/nagios/plugins/check_nrpe -H 192.168.0.115 -c check_disk
| / OK 16% 15G /dev/shm OK 0% 504M /boot OK 29% 67M |
注意:
若報錯:CHECK_NRPE: Error - Could not complete SSL handshake. 則說明在用戶端沒有添加允許server主機的ip,修改用戶端nrpe設定檔,添加server的ip [[email protected] ~]# vim /etc/nagios/nrpe.cfg allowed_hosts=127.0.0.1,192.168.0.114 [[email protected] ~]# /etc/init.d/nrpe restart |
2)添加服務
[[email protected] ~]# cd /etc/nagios/conf.d/
[[email protected] conf.d]# vim 192.168.0.115.cfg
define host{ use linux-server host_name 192.168.0.115 alias 0.115 address 192.168.0.115 }
define service{ use generic-service host_name 192.168.0.115 service_description check_disk check_command check_nrpe!check_disk max_check_attempts 5 normal_check_interval 1 } |
3)編輯commands.cfg設定檔
[[email protected] conf.d]# vim /etc/nagios/objects/commands.cfg //末尾添加如下內容
define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ } |
4)重啟nagios服務
[[email protected] conf.d]# service nagios restart
3、查看效果
瀏覽器輸入:192.168.0.114/nagios,驗證帳號密碼進入後可看到效果:
Hosts增加了一台
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/76/3F/wKiom1ZNzGOgPfyiAAOOsFBcWsg032.jpg" style="float:none;" title="1.jpg" alt="wKiom1ZNzGOgPfyiAAOOsFBcWsg032.jpg" />
Services顯示監控磁碟狀態
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/76/3E/wKioL1ZNzL2CmHv8AAX-K6P5OnE262.jpg" style="float:none;" title="2.jpg" alt="wKioL1ZNzL2CmHv8AAX-K6P5OnE262.jpg" />
本文出自 “M四月天” 部落格,請務必保留此出處http://msiyuetian.blog.51cto.com/8637744/1714835
shell編程之【nagios自訂監控系統磁碟指令碼】