在一个复杂的nagios监控系统中,需要提供一些灵活的接口来对主机或者服务控制。如:当某台主机down机,需要禁用对改主机的检测;再如某个服务暂时进行维护,需要禁用对服务的检测等等。使用nagios自带的命令接口需要登录才能控制相关的主机和服务,我做了一个简单的CGI程序来处理这些命令(这些CGI需要放到apache的cgi-bin下,放到nagios的cgi-bin目录下需要身份认证)。
以下列出一些常用的命令:
一、主机命令:格式:http://IP/cgi-bin/cmd_host?cmd_name=命令名称&host=主机名1、禁用该主机的主动检查:cmd_name:DISABLE_HOST_CHECKhost:主机名 2、启用该主机的主动检查:cmd_name:ENABLE_HOST_CHECKhost:主机名 3、禁用该主机的通知cmd_name:DISABLE_HOST_NOTIFICATIONShost:主机名 4、启用该主机的通知cmd_name:ENABLE_HOST_NOTIFICATIONShost:主机名 5、禁用该主机上的所有服务通知cmd_name:DISABLE_HOST_SVC_NOTIFICATIONShost:主机名 6、启用该主机上的所有服务通知cmd_name:ENABLE_HOST_SVC_NOTIFICATIONShost:主机名 7、禁用该主机上的所有服务检查cmd_name:DISABLE_HOST_SVC_CHECKShost:主机名 8、启用该主机上的所有服务检查cmd_name:ENABLE_HOST_SVC_CHECKShost:主机名 9、禁用该主机接受被动检查cmd_name:DISABLE_PASSIVE_HOST_CHECKShost:主机名 10、启用该主机接受被动检查cmd_name:ENABLE_PASSIVE_HOST_CHECKShost:主机名 二、服务命令格式:http://IP/cgi-bin/cmd_svc?cmd_name=命令名称&host=主机名&service=服务名1、禁用该服务的主动检查cmd_name:DISABLE_SVC_CHECKhost:主机名service:服务名 2、启用该服务的主动检查cmd_name:ENABLE_SVC_CHECKhost:主机名service:服务名 3、停止接受该服务的被动检测结果cmd_name:DISABLE_PASSIVE_SVC_CHECKShost:主机名service:服务名 4、开始该服务的接受被动检查cmd_name:ENABLE_PASSIVE_SVC_CHECKShost:主机名service:服务名 5、禁用该服务的通知cmd_name:DISABLE_SVC_NOTIFICATIONShost:主机名service:服务名 6、启用该服务通知cmd_name:ENABLE_SVC_NOTIFICATIONShost:主机名service:服务名 下面的文件是所用到的CGI脚本,用法是将这些源码放到apache的cgi-bin目录下进行编译:gcc -o cmd_host cmd_host.cgcc -o cmd_svc cmd_svc.c
|