【发布时间】:2014-08-18 08:39:06
【问题描述】:
所以我正在构建一个应用程序来监控网络上基于 rasp pi 的设备。设备正在运行一个程序,该程序提供有关我们需要记录的设备性能的统计数组,您可以通过与端口上的设备的套接字连接访问该数组。该网络目前有 100 台这样的设备,但很快就会在单个网络上增长到数百台设备。
目前,应用程序通过 ssh2_scp 将脚本部署到每个设备来解决此问题,然后应用程序通过本地 ips 列表运行并使用 stream_context_create && get_file_contents 在远程设备上 ping 监控文件。监控文件,然后从本地机器获取 stat 数组,然后 $_POSTS 将数据返回到应用程序,该应用程序将其存储在数据库中。
目前这并不是很理想,因为我记录它需要大约 1.45 分钟来循环检查 ip(以欺骗方式使用计数器 $i++ 并循环遍历一系列数字而不是获取所有来自数据库的 ips,当添加更多 ips 和新位置时需要执行此操作)并检索结果并将它们插入到数据库中,cron 作业设置为每 2 分钟运行一次 ping 脚本,因为设备数量增加了这个将超过 2 分钟的周期性间隙并开始获取积压的数据。这样做的问题是,实际上没有任何方法可以检查流获取上下文检索任何数据的天气,或者根据单独提交的数据检查该设备是否正常运行。
应用程序所在的服务器是一个巨大的野兽,所以那一侧的计算能力不是问题,但在 rasp pi 设备上,它运行的 id 不希望它运行任何 Web 服务器,最多可能是内置的 php Web 服务器,但出于安全考虑,他们不希望他们运行任何 Web 服务器,而且他们的主要目标不是 Web 服务器。
我一直在研究从命令行运行 php 守护程序服务,并想知道它是否更适合将监控应用程序作为守护程序服务运行,以直接与机器建立套接字连接以来回检索数据。如果我要走这条路,我将如何处理它,我是否会为监听端口并通过该端口返回 stat 数组的受监控设备创建一个守护程序脚本,然后监控应用程序守护程序建立与每个设备的连接并提供里面的数据?
任何关于最佳方法/最有效方式的建议都非常感谢
【问题讨论】:
标签: php performance sockets monitoring daemon