如何使用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.