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

时间:2015-01-18 12:46:05

标签: python

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

我提前感谢任何想法。

1 个答案:

答案 0 :(得分:2)

重新发明吗?有很多优秀的监控应用程序(包括免费的,开源的),例如NagiosSplunkGanglia仅举几例。

你自己会遇到很多问题,有些想法会立即浮现在脑海中:

  • 监控盒本身的资源耗尽(即 it 缺乏CPU /网络来进行所有监控)。对于那些数字来说,这不应该是一个问题,但它会更大规模。
  • 在Python应用中处理多线程。它总是很难,特别是当出现问题时。
  • Dealing with flapping这些服务(可能不仅仅是针对ping的问题)。
  • "谁监控显示器?"
  • 防火墙/路由器放弃对健康盒子ping的响应。
  • 检测该计算机的更高级别问题(即ping仍然响应,但该计算机上其他所有有用的内容都已死,磁盘不足等)。

如果你仍然想自己做,我会先用基本的做法Queue使用循环法。

您可以尝试使用Generators安排这些任务(但可能很难理解/调试),或直接进行多线程。正如你所说,使用像AMQP这样的RabbitMQ实现可以很好地允许持久化(所以你可以重新启动你的python程序等),但听起来有点像开头一样。