如何使用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客户端。
第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.
更多Nagios相关教程见以下内容:
Nagios 的详细介绍:请点这里
Nagios 的下载地址:请点这里