监控Linux服务器进程

时间:2016-04-04 19:09:45

标签: unix monitoring monitor ps unix-socket

这是一些建议和选择正确的监控方法。

有一台RHEL6服务器在几个SILO和沙箱下运行多个进程,我们需要监控这些进程,确保这些进程正常运行。

目前我制作了一个循环遍历所有沙箱并检查进程状态的脚本,然后我发送一封邮件给相应的团队,其中包含未运行的作业列表,作为附件。

问题:    现在由于沙箱和工作的数量非常多,检查和处理并发送邮件需要时间,有时会导致其他团队中断。   还有服务器资源不足时崩溃的子shell进程。

我正在寻找一种快速简单的监控方法。

我的想法

以下命令非常方便,并为我提供了正在运行的进程列表。

    ps -ef|grep pset| awk '{print $9}'

结果,e.g:

  /ab_sandbox_pi/propia/pset/process_a.pset
  /ab_sandbox_pi/apsia/pset/process_b.pset
  /ab_sandbox_pi/propia/pset/process_c.pset
  /ab_sandbox_pi/apsia/pset/process_d.pset

我想通过脚本使用此命令,然后处理生成的文本。

  1. 该脚本将写入excel的特定表单,例如 sheet_pset ,这个excel会有一个预定义的宏/ vb代码作为字符串处理器,将从< em> sheet_pset 并显示结果(根据应用的条件),可以点击按钮或下拉。

  2. 创建一个客户端java程序,它将连接到RHEL6服务器并获取ps命令的结果。然后在客户端处理并显示结果。 但是这需要在RHEL6进行一些身份验证设置,我不确定是否会受到侮辱。

  3. 请建议我采取哪种方法,或采取任何其他合适的方法。

1 个答案:

答案 0 :(得分:0)

解决方案是在其他地方进行数据处理 - 而不是在您尝试监控的服务器上进行。

您应该提取整个ps -ef并将其发送到另一台服务器。将ps数据检索到另一台计算机后,即可进行过滤/表生成工作。

  • 要么通过另一台服务器执行ssh(这将是最简单的,但根据您的架构不可能达成一致),

    ssh  -o BatchMode=yes  usernam@servername " ps -ef "
    
  • 或者您继续通过邮件进行,但您只将完整的摘录邮寄给您 - &gt;您可以将邮件发送给您自己,然后在您的计算机上处​​理整个数据,然后向所有人发送电子邮件。