如何使用Bash Shell脚本创建自己的Nagios插件

时间:2019-05-19 01:26:15  来源:igfitidea点击:

如何使用Bash Shell脚本创建自己的Nagios插件。
这对于监视我们自己设置的基础设施非常有用。
本教程将理解如何编写脚本,并将它们与NRPE和Nagios一起用于监视。

步骤1 -了解返回码

每个Nagios插件都必须返回一个状态码,这个状态码称为返回码。
Nagios核心服务根据返回代码为相应的主机或服务做出决策和适当的操作。

主机:
返回代码/主机状态

0 =>UP
1 =>Down
Other维护最后已知的状态

服务:

返回代码/服务状态
0 =>OK
1 =>警告
2 =>严重
3 =>未知
其他关键:未知返回码

步骤2 -安装NRPE客户端

让我们使用以下命令在系统上安装NRPE客户端。

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

以上命令适用于基于Debian的系统。

步骤3 -编写Shell脚本

现在是编写shell脚本来监视系统上的任何服务的时候了。
这个示例中,下面的脚本将监视磁盘空间使用情况。

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

添加下面的脚本内容。

#!/bin/bash

### ======================================================================= ###
###     用于检查给定磁盘或挂载点的磁盘使用情况的nagios插件                     ###
###     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 -v Filesystem | awk '{print }' | sed 's/%//g'`
	case ${USED_DISK_SPACE} in
	[1-80]*)
			echo "OK - ${USED_DISK_SPACE}% of disk space used."
			exit 0
			;;
	[81-85]*)
			echo "WARNING - ${USED_DISK_SPACE}% of disk space used."
			exit 1
			;;
	[86-100]*)
			echo "CRITICAL - ${USED_DISK_SPACE}% of disk space used."
			exit 2
			;;
	*)
			echo "UNKNOWN - ${USED_DISK_SPACE}% of disk space used."
			exit 3
			;;
	esac
}

### ======================================================================= ###
###                         SCRIPT EXECUTION START HERE                     ###
### ======================================================================= ###

if [[ -z "" ]] 
then
        echo "Missing parameters! Syntax: ./`basename 
chmod +x /usr/lib/nagios/plugins/check_disk_uses.sh

` mount_point/disk" exit 3 else MOUNT_POINT= fi calculate_disk_uses ### ======================================================================= ### ### END OF SCRIPT ### ### ======================================================================= ###

现在设置新脚本的执行权限。

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

步骤4 -更新NRPE配置

现在编辑NRPE配置文件/etc/nagios/nrpe.cfg并添加用于监视系统某些磁盘的命令。

./check_nrpe -H 192.168.1.100 -c check_disk_uses

OK - 22% of disk space used.

可以使用check_nrpe命令从Nagios服务器调用check_disk_uses命令并返回结果。

第5步-使用Check_Nrpe命令进行测试

现在,从Nagios服务器运行下面的命令,其中192.168.1.100是NRPE客户端的IP。

##代码##