路由器的信号传输系统

路由器的信号传输系统

我的网络有一台服务器和多台路由器(大约 300 台,甚至更多,全部在 OpenWRT 上运行)。路由器没有公共 IP,服务器无法连接到它们。但我需要知道路由器是否在线。为此,路由器每分钟向服务器发送一次信号。

这是信号:

wget http://server.com/ping?mac=MACOFTHEROUTER

当用 PHP 编写的接收器从路由器获得查询时,只需在数据库中保存路由器的日期和 mac 地址。现在我们知道路由器是否处于活动状态或何时被禁用。

如果我想向路由器发送一些命令,我​​会将命令发送给接收器的答案,结果将保存在路由器上的文件中,文件获得运行权限后,运行后删除。并向路由器发送另一个任务完成的信号,也是通过 wget,但发送到不同的 URL。

 wget http://server.com/done?mac=MACOFTHEROUTER&result=Stout+of+the+command

现在服务器知道命令的结果,并可以将其显示给用户。对我来说,这很好用。但有时命令的结果非常大,我无法将其放入 GET 中。此外,发送命令后,我应该等待一分钟才能获得结果并发送下一个命令。如果您尝试调试路由器,这不太好。我想一次向所有路由器发送一个命令并从所有路由器获得答案。这是理想的情况。为此,我认为我可以使用一些流式(实时)应用程序,例如在 Web 技术中使用。比如http://pusher.com/。我希望我的网络有类似的东西,可以实时查看路由器的状态,并实时向路由器发送命令。当然,这不会加载网络,应该是安全的。请帮忙寻找更好的解决方案。也请原谅我的英语不好。

答案1

硬件是否足以安装 puppet 或其他基于代理的配置管理工具?puppet 客户端可以配置为定期签入,签入时它会向 puppet 服务器报告大量有用的信息,这些信息可以被捕获、存储并以多种有用的方式使用。这几乎肯定是做你想做的事情的正确和标准方法。但大多数流行的配置管理工具都需要大量资源。

如果那不是一个选项,您可以在所有路由器上设置一个简单的 VPN 客户端,以便建立并保持与监控系统的连接。不要通过 VPN 路由任何内容,只需将其用于与管理系统的点对点连接。从那里,您只需通过 SSH 即可连接到所有连接的节点。

如果您想坚持使用 http 请求设置,那么您可能需要查看 curl。使用 CURL 可以非常轻松地发送 POST 请求。

答案2

我建议你帮自己一个忙,不要再重新发明轮子了。适当的监控系统,如扎比克斯纳吉奥斯或者监控允许您监控路由器和其他硬件。至少 Zabbix 还具有监控防火墙后面难以触及的目标的机制,例如Zabbix 代理

安装它们很容易,除了简单的“这个目标是否响应 ping?”之外,您还可以监视和绘制磁盘空间使用情况、CPU 使用情况、服务器负载的趋势图,测试服务是否实际运行,在出现问题时通过电子邮件/短信/即时通讯/任何方式发送警报……没有理由缺乏实际的监视。

相关内容