python:当ping到超过3000个IP地址时,我应该注意什么



我每次都必须写一些东西来ping超过3000个IP地址(不间断),我应该检查IP是否连续x次没有响应ping,并将其报告给操作员。我不知道我需要处理什么样的主题:例如资源检查、线程或处理、使用芹菜或 RabbitMQ(因为我没有任何使用它们的经验)或其他任何东西?我真的不知道从哪里开始?

我提前感谢任何想法。

你必须重新发明这个吗?已经有很多优秀的监控应用程序(包括免费的开源应用程序),例如Nagios,Splunk,Ganglia等等。

你自己做的时候会遇到很多问题,一些想法会立即浮现在脑海中:

    监控
  • 盒本身的资源不足(即缺乏 CPU/网络来执行所有这些监控)。对于这些数字来说,这应该不是问题,但在更大的规模上,这将是问题。
  • 在 Python 应用中处理多线程。这总是很难的,尤其是当事情出错时。
  • 处理这些服务的抖动(可能不是仅针对 ping 的问题)。
  • "谁监视监视器?"
  • 防火墙/路由器放弃对健康盒子上的 ping 的响应。
  • 检测该机器的更高级别问题(即 ping 仍在响应,但该机器上其他所有有用的东西都死了、磁盘不足等)。

如果您仍然想自己做,我会从使用循环方法的基本执行队列开始。

您可以尝试使用生成器调度这些任务(但可能很难理解/调试),或者直接进入多线程。正如你所说,使用像 RabbitMQ 这样的 AMQP 实现会很好,允许持久性(这样你就可以重新启动你的 python 程序等),但听起来有点矫枉过正。

相关内容

最新更新