我有一个Linksys WRT54GL正在运行的路由器开源软件。我有一个主互联网连接和一个辅助连接,后者在主链接断开时充当故障转移连接。两个连接都有公共 IP。
我现在想使用 nagios 监控这两个连接,这样当其中一个出现故障时我就能收到通知。我还使用 pnp4nagios 进行绘图,并打算找出每个连接的中断统计数据。
现在我的问题是,您推荐使用哪个 nagios 插件来监控这些连接。是否有适合这种情况的插件,您如何操作?
答案1
奇怪的是,我会使用 check_http 脚本。让它每 N 分钟向你相对确定会启动的某个东西(google、facebook、yahoo)发出一次 http 请求。如果你不想让它在 DNS 不工作时发出抱怨,请使用远程服务器的 IP 而不是 DNS 名称。
答案2
NAGIOS 监控链路状态的常用方法稍微简单一些,至少就其状态图和主机依赖性概念而言:它希望能够立即联系链路另一端的设备。“联系”的定义通常是 ICMP 回显请求 (ping),但它是任意可配置的。
是的,您可以设计一些针对 openwrt 的测试来告诉您路由器对链路状态的看法,但是:让我们假设可以编写这样的测试。
- 要么它总是会给出与测试链路另一端连通性相同的结果,在这种情况下,既然一个简单的事情就足够了,为什么还要费心去做复杂的事情呢?
- 或者偶尔会对链路另一端的连接测试给出不同的结果,在这种情况下,我认为测试有问题;路由器向你保证链路已连接有什么用处如果它不承载流量。
我坚信测试你真正想知道的东西。在这种情况下,我假设你想知道链接是否会承载流量;如果是,那么不要将答案委托给另一台设备 - 自己测试一下。
如果这不能说服你,请查看 openwrt 代码并找出答案它确定链接是否正常 - 并从 NAGIOS 重复该测试。
答案3
check_http 无法完成这项工作,因为 WRT54GL 路由器生成了一个 SSLv1 证书(在我的情况下是 Tomato 1.28),而 check_http nagios 插件不接受该证书(nagios-plugins 1.4 中仅接受 SSLv2 和 SSLv3)。
nagios@host:~# ./check_http --ssl -H cacert.org
HTTP OK: HTTP/1.1 302 Found - 412 bytes in 0.446 second response time |time=0.445800s;;;0.000000 size=412B;;;0
nagios@host:~# ./check_http --ssl -H myrouter.local
CRITICAL - Cannot make SSL connection
20391:error:14077417:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert illegal parameter:s23_clnt.c:602:
HTTP CRITICAL - Error on receive
改用 check_tcp
nagios@host:~# ./check_tcp -p 443 -H myrouter.local
TCP OK - 0.059 second response time on port 443|time=0.059017s;;;0.000000;10.000000