如何使用Bash Shell腳本創建自己的Nagios插件

如何使用Bash Shell腳本創建自己的Nagios插件,這對於監視基礎架構是非常有用的。 本教程將幫助您瞭解如何編寫腳本並將其與NRPE和Nagios一起用於監控。

第1步 - 瞭解返回代碼

每個Nagios插件必須返回一個被稱爲返回碼的狀態碼。 Nagios核心服務根據返回碼爲相應的主機或服務作出決策並採取適當的行動。

Hosts:

Return Code / Host status
0 => UP
1 => DOWN
Other Maintains last known state

Services:
Return code / Service status
0 => OK
1 => WARNING
2 => CRITICAL
3 => UNKNOWN
Other CRITICAL : unknown return code

步驟2 - 安裝NRPE客戶端

讓我們使用以下命令在您的系統上安裝NRPE客戶端。

sudo apt-get update
sudo apt-get install nagios-nrpe-server nagios-plugins

 

第3步 - 寫一個Shell腳本

現在寫一個shell腳本來監視系統上的任何服務。 對於下面的這個例子,腳本將監視磁盤空間的使用。

vim /usr/lib/nagios/plugins/check_disk_uses.sh

添加下面的腳本。

#!/bin/bash

 

### ======================================================================= ###

###    A nagios plugin to check disk uses for given disk or mountpoint    ###

###    Uses: ./check_disk_uses.sh /                                        ###

###          ./check_disk_uses.sh /mnt                                    ###

###          ./check_disk_uses.sh /dev/sda1                                ###

### ======================================================================= ###

 

### ======================================================================= ###

###                        FUNCTIONS                                      ###

### ======================================================================= ###

 

calculate_disk_uses(){

USED_DISK_SPACE=`df-h${MOUNT_POINT}|grep-vFilesystem|awk'{print $5}'|sed's/%//g'`

case${USED_DISK_SPACE}in

[1-80]*)

echo"OK - ${USED_DISK_SPACE}% of disk space used."

exit0

;;

[81-85]*)

echo"WARNING - ${USED_DISK_SPACE}% of disk space used."

exit1

;;

[86-100]*)

echo"CRITICAL - ${USED_DISK_SPACE}% of disk space used."

exit2

;;

*)

echo"UNKNOWN - ${USED_DISK_SPACE}% of disk space used."

exit3

;;

esac

}

 

### ======================================================================= ###

###                        SCRIPT EXECUTION START HERE                    ###

### ======================================================================= ###

 

if[[-z"$1"]]

then

        echo"Missing parameters! Syntax: ./`basename $0` mount_point/disk"

        exit3

else

        MOUNT_POINT=$1

fi

 

calculate_disk_uses

 

### ======================================================================= ###

###                        END OF SCRIPT                                  ###

### ======================================================================= ###

現在在新腳本上設置執行權限。

chmod +x /usr/lib/nagios/plugins/check_disk_uses.sh

步驟4 - 更新NRPE配置

現在編輯NRPE配置文件/etc/nagios/nrpe.cfg並添加命令來監視系統的某個磁盤。

command[check_disk_uses]=/usr/lib/nagios/plugins/check_disk_uses.sh /dev/sda1

您可以使用check_nrpe命令從Nagios服務器調用check_disk_uses命令,並將結果返回。

第5步 - 使用Check_Nrpe命令進行測試

現在,從Nagios服務器運行以下命令,其中192.168.1.100是NRPE客戶機系統的IP。

./check_nrpe -H 192.168.1.100 -c check_disk_uses

OK - 22% of disk space used.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章