从nagios主页下载了最新的nagios官方插件,本文中用到的是nagios-plugins-1.4.9.tar.gz 。
1、 解压
#变量prefix 为安装目录,例如/usr/local/nagios
make install
经过上述4个步骤,nagios的脚本就宣告安装成功,但是如何让这些脚本工作起来呢?nagios并没有提供每个监控程序的脚本的说明文档,想了解这些脚本如何工作的话,需要通过--h参数,显示其使用方法和参数。例如:
Usage: check_icmp [options] [-H] host1 host2 hostn
Options:
-h, --help Print detailed help screen
-V, --version Print version information
-H specify a target -w warning threshold (currently 200.000ms,0%)
-c critical threshold (currently 500000.000ms,80%)
-n number of packets to send (currently 5)
-i max packet interval (currently 80.000ms)
-I max target interval (currently 0.000ms)
-m number of alive hosts required for success
-l TTL on outgoing packets (currently 0)
-t timeout value (seconds, currently 10)
-b icmp packet size (currenly ignored)
-v verbose
...
OK - www.baidu.com: rta 33.632ms, lost 0%|rta=33.632ms;200.000;500.000;0; pl=0%;40;80;;
经过了上述实验,说明这些插件都是可以独立使用的,那在nagios之中,是如何调用这些插件的呢?如果要加入参数又需要用哪种格式呢?
首先,要了解这些插件会被nagios用在什么地方。nagios有很多个cfg文件,用来定义各式各样的信息,其中hosts.cfg和 services.cfg(一般是这两个,也可能是其他定义主机和服务的配置文件)是用来定义主机和服务的信息的。这些插件就被使用在这里。例如,我在 services.cfg中定义个一需要监控的SSH服务,名称为TestSSH:
host_name TestSSH
service_description check_ssh
……
check_command check_ssh
}
除了直接使用插件来做check_command项的参数以外,还可以使用自己定义的命令来。例如,我定义一个需要监控的主机,名字是test.VN:
host_name test.VN
alias test.VN
address 192.168.0.1
……
check_command check-host-alive
……
}
define command{
command_name check-host-alive
command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 1
}
check_ping 用法:
[-p packets] [-t timeout] [-4|-6]
有很多朋友问我这样的问题,如何监听非默认端口的服务。下面我就举例说明一下这个问题:
例如:现需检查的一个运行在8080端口上的http服务。那么我们可以对commands.cfg文件中对关于check_http的声明做如下修改(红色部分为添加的内容)。
define command{
command_name check_http
command_line $USER1$/check_http -H $HOSTADDRESS$ -p $ARG1$
}
再把services.cfg中,对应服务的检测命令后面加一个参数:
host_name ...
...
check_command check_http!8080
}
综上,插件的安装和调用方法也就举例介绍完毕了,大家在使用中也可以使用自己写的检测脚本来完成比较特殊的检测功能。Enjoy!