Nagios可以非常容易地与现有框架集成,这也就是为何Nagios被广泛地应用的一原因。有不少方式来与现有管理软件进行集成,你使用管理软件来监控你所拥有的各种各样的新型或用户定制的硬件、服务或是应用程序。
为了监控新硬件、服务或是应用程序,审视如下的文档:
为使Nagios取得外部应用程序的数据,审视如下的文档:
将状态、性能或是告警信息报送给外部应用,审视如下文档:
SNMP的无所不管除了恶长以外一无是处。接收SNMP消息并将它放到Nagio里(象强制检测结果一样)是件很繁闷的事。为使之更简单,建议你取出Alex Burger的SNMP Trap Translator项目,它位于http://www.snmptt.org,这里面在Nagios里集成了Net-SNMP、SNMPTT及增强型的消息陷井处理系统。
好了,就这么多。
本文档解释如何容易地在Nagios里用TCP Wrapper对联接尝试被拒绝而产生警报。例如,一个非授权主机试图联接SSH服务器,可以在Nagios里收到一个含有被拒绝主机名的警报。如果在Linux/Unix机器上实现了这个功能,就会惊讶地发现在网络里竟会有如此多的端口扫描。
集成的前提是:
如果条件具备,给远程主机(firestorm)创建一个主机对象定义。
下一步,给这台运行有TCP Wrapper的主机(firestorm)在对象配置文件里加一个服务对象定义,服务对象定义的可能会是这样的:
define service{ host_name firestorm service_description TCP Wrappers is_volatile 1 active_checks_enabled 0 passive_checks_enabled 1 max_check_attempts 1 check_command check_none ... }
在服务对象定义里有几个很重要:
现在需要修改在firestorm机器上的/etc/hosts.deny文件了。为使TCP wrappers对每个被拒绝的联接尝试都送出一条报警,需要加上这一行:
ALL: ALL: RFC931: twist (/usr/local/nagios/libexec/eventhandlers/handle_tcp_wrapper %h %d) &
这行里假定在firestorm机器上有个脚本名字是handle_tcp_wrapper且放在/usr/local/nagios/libexec/eventhandlers/目录下,下面会给出脚本内容。
最后一件事是在firestorm上写那个handle_tcp_wrapper脚本,它将会把报警送给Nagios监控服务器,它可能会是这样的:
#!/bin/sh /usr/local/nagios/libexec/eventhandlers/submit_check_result firestorm "TCP Wrappers" 2 "Denied $2-$1" > /dev/null 2> /dev/null
注意handle_tcp_wrapper脚本调用了submit_check_result脚本来真正地送出报警。假定Nagios服务器被命名为monitor,这个submit check_result脚本内容可能会是这样的:
#!/bin/sh # Arguments # $1 = name of host in service definition # $2 = name/description of service in service definition # $3 = return code # $4 = output /bin/echo -e "$1\t$2\t$3\t$4\n" | /usr/local/nagios/bin/send_nsca monitor -c /usr/local/nagios/etc/send_nsca.cfg
Nagios有许多"外部构件"软件包可供使用。外部构件可以扩展Nagios的应用并使之与其他软件集成。
外部构件可用于:
你可以通过访问如下站点找寻外部构件:
这里对一些我开发的外部构件给一个简洁的介绍...
NRPE是一个可在远程Linux/Unix主机上执行的插件的外部构件包。如果你需要监控远程的主机上的本地资源或属性,如磁盘利用率、CPU负荷、内存利用率等时是很有用的。象是用check_by_ssh插件来实现的功能一样,但是它不需要占用更多的监控主机的CPU负荷-当你需要监控成百上千个主机是这个很重要。
NRPE外部构件包和文档可以在http://www.nagios.org/上找到。
NSCA是一个可在远程Linux/Unix主机上执行强制检测并将结果传给Nagios守护进程的外部构件包。这在分布式和冗余/失效监控的设置时非常有用。
NSCA外部构件包和文档可以在http://www.nagios.org/上找到。
NDOUtils是一个可以把全部状态信息保存到MySQL数据库里的外部构件。外个Nagios的库实例都可以把它们监控的信息保存到统一的中心数据库并集中报告。它将为一个Nagios新的基于PHH的WEB接口程序提供数据源服务。
NDOUtils外部构件包和文档可以在http://www.nagios.org/上找到。