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

你可能感兴趣的:(#,nagios)