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

python:当ping到3000多个IP地址时,我应该注意什么,python,Python,我必须每次(不间断地)为ping超过3000个IP地址写一些东西,并且我应该检查IP是否连续多次未响应pingx,并将其报告给操作员。我不知道我必须处理什么样的主题:例如资源检查、线程或处理、使用芹菜或RabbitMQ(因为我没有任何处理它们的经验)或其他什么?我真的不知道从哪里开始 我很感激事先有任何想法 你必须重新发明这个吗?现在已经有很多优秀的监控应用程序(包括免费的开源应用程序),举几个例子 你自己做这件事会遇到很多问题,一些想法会立即浮现在脑海中: 监控箱本身的资源不足(即缺少CPU

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

我很感激事先有任何想法

你必须重新发明这个吗?现在已经有很多优秀的监控应用程序(包括免费的开源应用程序),举几个例子

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

  • 监控箱本身的资源不足(即缺少CPU/网络来进行所有监控)。对于这些数字来说,这不应该是个问题,但在更大的范围内,这将是个问题
  • 在Python应用程序中处理多线程。这总是很难,尤其是当事情出了差错时
  • 这些服务中的一部分(可能仅仅对于ping来说问题不大)
  • “谁监视监视器?”
  • 防火墙/路由器丢弃对正常机箱上ping的响应
  • 检测该机器的更高级别问题(即ping仍在响应,但该机器上其他有用的东西都已失效、磁盘不足等)
如果你仍然想自己做,我会从一个基本的循环方法开始


您可以尝试使用调度这些任务(但可能很难理解/调试),或者直接使用多线程。正如您所说,使用这样的实现可以允许持久性(这样您就可以重新启动python程序等),但从一开始听起来有点像杀伤力过大。

您的意思是同时进行?@padraickenningham是的。非常感谢您的回答。我认为这需要比我想象的更多的努力。也许在这种情况下我必须使用SNMP。