shell編程之【nagios自訂監控系統磁碟指令碼】

來源:互聯網
上載者:User

標籤: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自訂監控系統磁碟指令碼】

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.