路由器的信号传输系统

我的networking有一台服务器和许多路由器(大约300台,而且会更多,都在OpenWRT上工作)。 路由器不具有公共IP,服务器无法连接到它们。 但是我需要知道路由器是在线的。 对此,路由器每分钟发一个信号给服务器。

这是信号:

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

而当使用PHP写的接收器从路由器获取查询时,只需将路由器的date和MAC地址保存在数据库中即可。 现在我们知道路由器是活着的或者它已经被禁用了。

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

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

现在服务器知道命令的结果,并可以显示给用户。 这对我很好。 但有时候命令的结果很大,我不能把它放在GET中。 发送一个命令后,我应该等待一分钟得到结果,然后发送。 如果您尝试debugging路由器,这并不好。 我想一次发送一个命令到所有的路由器,并从所有路由器得到答案。 这是理想的情况。 对于这个我想我可以使用stream式(实时)应用程序,例如在networking技术中使用的东西。 像http://pusher.com/一样。 我希望我的networking能够实时查看路由器的状态并实时发送命令给路由器。 当然,这不会加载networking,应该是安全的。 请帮助search更好的解决scheme。 也为我的英语道歉。

硬件是否足够安装puppet或其他基于代理的configurationpipe理工具? 傀儡客户端可以被configuration为定期检入,并且当它检入时会向傀儡服务器报告大量有用的事实,这些事实可以被捕获存储,并以许多有用的方式被使用。 这几乎肯定是做你想要的正确和标准的方式。 但是大多数stream行的configurationpipe理工具需要大量的资源。

如果这不是一个选项,你可以在所有的路由器上build立一个简单的VPN客户端,这些客户端将build立一个连接并且保持一个监控系统的连接。 不要通过VPN路由任何东西,只是使用它来点对点连接到pipe理系统。 从那里你可以SSH连接到所有连接的节点。

如果你想坚持你的http请求设置,那么你可能会想看看curl。 用CURL发送POST请求是非常容易的。

我build议你帮个忙,停止重新发明轮子。 适当的监视系统,如Zabbix , Nagios或Monit允许你监视你的路由器和其他硬件。 至lessZabbix还有一些机制,用于监视防火墙后难以触及的目标,例如使用Zabbix代理

安装它们很简单,除了简单的“这个目标是否响应ping?” 你可以监视和绘制有关磁盘空间使用情况,CPU使用情况,服务器负载,服务实际运行情况的testing趋势,通过电子邮件/短信/即时消息发送警报,无论出现什么情况,都不会有任何借口。缺乏实际的监测。