查看源代码

打印帮助0chmod +x /usr/local/nagios/libexec/submit_host_check_result

1chown nagios.nagios submit_host_check_result

3.在command.cfg文件中定义submit_service_check_result,submit_host_check_result命令

查看源代码

打印帮助0vi /usr/local/nagios/etc/objects/command.cfg #加入以下内容

1define command{

2command_name submit_service_check_result

3command_line /usr/local/nagios/libexec/submit_service_check_result $HOSTNAME$ '$SERVICEDESC$' $SERVICESTATE$ '$SERVICEOUTPUT$'

4}

5define command{

6command_name submit_host_check_result

7command_line /usr/local/nagios/libexec/submit_host_check_result $HOSTNAME$ $HOSTSTATE$ '$HOSTOUTPUT$'

8}

4.配置示例

查看源代码

打印帮助00define host{

01name test

02use generic-host

03address 192.168.0.8 #分布式服务端内监控的主机地址

04}

05define service{

06use generic-service #根据实际情况修改

07host_name test

08service_description CPU Load

09check_command check_nrpe!check_load

10}

BTW:请注意分布式服务端与主服务端定义主机与服务配置的区别,当分布式服务端定义了主机与服务时,同样需要在主服务端定义一次。以下几个参数无需在分布式服务端特殊定义。

check_freshness,freshness_threshold,passive_checks_enabled,active_checks_enabled

freshness_threshold 强制刷新时间,主要的作用是当分布式服务端未提交新的数据时,服务端可以强制进行状态刷新,进行及时的预警。

如何在不安装分布式nagios的情况下,监控另一防火墙后的内网主机呢?其实方法很多,比如check_ssh,这里共享一个方法,该方法是同事nonamexz想到的。

通过nagios的自定义变量,在nrpe的命令行增加一个端口的参数,自定义端口,通过防火墙进行映射至内网不同的服务器

查看源代码

打印帮助00define command{

01command_name check_NRPE #定义一个新的命令

02command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -p $_HOSTPORT$ -t 60

03}

04define host{

05name test

06use generic-host

07address 2.2.2.2 #需要监控的服务器的外网地址,比如防火墙地址

08_PORT 5668 #自定义的外网端口,改端口是通过防火墙进行内的需要监控的服务器的nrpe的端口映射

09}

10define service{

11use generic-service

12host_name test

13service_description CPU Load

14check_command check_NRPE!check_load #这里定义的时候,使用自定义的nrpe

通过文章的介绍,我们清楚的知道了nagios分布式配置全过程!

  • RHEL安装nagios
  • Nagios :扩展提示信息发送方式(smtp, msn, fetion)
  • nagios 安装过程
  • 启动nagios服务
  • 如何编写 Nagios 插件
  • 配置 新的Nagios


相关内容