Nagios:企业级系统监控方案(4)

在安装nagios成功之后可以看到在/usr/local/nagios/libexec目录下有很多可执行监测程序或者脚本,其名称类似check_icmp这样的格式。Nagios并没有提供针对这些监测程序的脚本的说明文档,想了解这些脚本如何工作,需要通过–h参数,显示其使用方法和参数,并会给出一些实际的例子。例如:./check-disk –h。

那么我们可以尝试按照其中一个例子执行该脚本,执行和显示的结果如下:

# ./check_disk -w 10% -c 5% -p /tmp -p /var -C -w 100000 -c 50000 -p /dev/sda3 [ Enter ] DISK OK - free space: / 2124 MB (41% inode=90%);| /=2955MB;4820;5088;0;5356

可以看到状态值“OK”,以及一些详细的数据信息。

上述操作说明这些插件都是可以独立使用。Nagios有很多个cfg配置文件用来定义各式各样的信息,其中template.cfg是用来定义主机和服务信息的模板文件,在目录/usr/local/nagios/etc/objects下。我们将按照这些模板来建立新的配置文件,例如同样目录下的server.cfg来定义监测内容,那么这些插件就会从server.cfg中调用。例如要定义一个需要监测的SSH服务,名称为TestSSH:

按照其格式:

define service { host_name x.x.x.x service_description check_ssh …… check_command check_ssh }

host_name项说明该服务所在的主机名,service_description项为服务的说明信息,这项内容会显示在nagios页面中。check_command项说明要使用的命令,这个例子中的命令check_ssh就是一个插件了。这个服务定义明确了nagios在需要监测的内容和监测的手段,即使用check_ssh插件来监测主机x.x.x.x上的ssh服务情况。

除了直接使用插件来做check_command项的参数以外,还可以使用自己定义的命令来做check_command参数。例如,定义一个需要监测的主机,名字是localhost.localdomain:

define host { host_name localhost.localdomain alias remotehost01 address 192.168.0.1 …… check_command check-host-alive …… }

在此例中,check_command项的参数“check-host-alive”并非一个插件,而是在commands.cfg档中定义的一个命令。那么在相同目录的command.cfg中对该命令又被定义为:

# 'check-host-alive' command definition define command{ command_name check-host-alive command_line $USER1$/check_ping -H 192.168.1.220 -w 300.0,80% -c 500.0,100% -p 1 }

首先,$USER1$这个参数在resource.cfg中定义,这个值会指向插件的目录(如:/usr/local/nagios/libexec)。“-H 192.168.1.220”定义目标主机的地址,-w说明后面的一对值对应的是“WARNING”状态,“80%”是其临界值。“-c 500.0,100%” 其中“-c”说明后面的一对值对应的是" CRITICAL",“100%”是其临界值。“-p 1”说明每次探测发送一个包。

所以归根结底就是说通过ping这种方式来证明某台主机处于alive状态。

而至于如何监听非默认端口的服务。下面我也举例说明一下这个问题:

例如:现需检查的一个运行在8080埠上的http服务。那么我们可以对commands.cfg档中对关于check_http的声明做如下修改。

# 'check_http' command definition define command{ command_name check_http command_line $USER1$/check_http -H 192.168.1.220 -p $ARG1$ }

其中$ARG1$是指在调用这个命令的时候,命令后面的第一个参数。

再把services.cfg中,对应服务的检测命令后面加一个参数:

define service { host_name ... ... check_command check_http!8080 }

这样就可以对8080埠的http服务进行监测了。如果要添加多个参数的时候,也可以类似操作。 综上所述,插件的安装和调用方法也就举例介绍完毕了,大家在使用中也可以使用自己写的检测脚本来完成比较特殊的检测功能。

所以按照上面所叙述的原理,我们开始第二步和第三步的配置,为使用check_nrpe插件建立Nagios命令定义以及服务定义:

修改配置文件/usr/local/nagios/etc/objects/command.cfg并增加下面的内容:

define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/bc2656883ccc359dac7bb9b55cc6e4d8.html