使用Python进行简单的远程过程监控

时间:2012-08-11 00:49:22

标签: python linux monitoring

我想编写一个python脚本来对linux服务器上运行的远程进程执行一些非常简单的“无代理”监视。

它将在psuedocode中执行以下任务:

for each remoteIPAddress in listOfIPAddresses:
    log into server@remoteIPAddress via ssh
    execute the equivalent of a 'ps -ef' command
    grep the result to make sure a particular process (by name) is still running

执行此操作的一种方法是在子进程中使用python调用shell脚本并解析其输出。 这似乎效率很低。有没有更好的方法通过python库来做到这一点?

我在这里和其他地方通过研究找到的只有:

  • psutil - 看起来它没有进行远程监控,因此我必须在远程计算机上运行代理以通过RPC报告统计信息。
  • pymeter - 我必须编写自己的插件来监控特定的远程服务。
  • stackoverflow #4546492 - 一些有用的链接,但海报正在寻找不同的解决方案。

谢谢,请放轻松我,这是我的第一个问题: - )

5 个答案:

答案 0 :(得分:3)

您可能会对Fabric库感兴趣。

答案 1 :(得分:1)

结帐paramiko。您可以使用它来ssh到服务器并运行命令。然后,您可以解析结果并使用它们执行您想要的操作。

答案 2 :(得分:0)

它可能比您正在寻找的更重,但Zenoss支持无代理监控。

paramiko和Fabric,在其他答案中提出,也是很好的选择。

答案 3 :(得分:0)

从上面的答案中获取线索,我调查了Fabric,发现以下介绍特别有趣/有帮助。它概述了三个库 - Fabric,Cuisine和Watchdog - 用于服务器监视和管理。 后人:

Using Fabric, Cuisine, and Watchdog for server administration in Python

答案 4 :(得分:0)

为什么不使用像Nagios这样的专用监控工具? Nagios通过NRPE插件和SSH插件等对代理和代理进行较少的监控。 尝试一下。