【发布时间】:2016-07-24 11:34:19
【问题描述】:
这是对正确监控方法的一些建议和选择。
有一个 RHEL6 服务器运行在多个 SILO 和沙箱下运行的多个进程,我们需要监控这些进程以确保这些进程启动并运行。
目前我已经制作了一个脚本,该脚本循环遍历所有沙箱并检查进程状态,然后我向相应的团队发送一封邮件,其中包含未运行的作业列表,作为附件。
问题: 现在由于沙箱和作业的数量很多,检查处理和发送邮件需要时间,有时会导致其他团队中断。 当服务器资源不足时,也会崩溃的子shell进程。
我正在寻找一种方法来使这种监控变得快速而简单。
我的想法
下面的命令非常方便,它给了我正在运行的进程列表。
ps -ef|grep pset| awk '{print $9}'
结果,例如:
/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
我想通过脚本使用这个命令,然后处理生成的文本。
-
1234563 em>sheet_pset 并显示结果(基于应用的条件),可以通过单击按钮或下拉菜单来实现。
创建一个 cient 端 java 程序,该程序将连接到 RHEL6 服务器并获取 ps 命令的结果。然后在客户端将处理并显示结果。 但这需要在 RHEL6 上进行一些身份验证设置,我不确定这是否会得到帮助。
请建议哪种方法是合适的,或者我可以采取的任何其他合适的方法。
【问题讨论】:
-
这听起来不是很复杂,因此您可以使用多种语言来实现。不过,我不认为需要 Java 桌面应用程序 - 它不能只是基于浏览器吗?几页php和一个sqlite数据库,也许吧?无论如何,下一个看到这个的人可能会建议他的首选语言/数据库组合,我认为不可能说什么是最好的。
-
听起来你可能正在寻找
supervisord... -
我无法在此服务器上安装任何数据库.. 权限问题...
-
我无法在此服务器上安装任何数据库.. 权限问题... 我唯一的语言支持是 shell 脚本、python 和 java.... 甚至无法安装 supervisord.. 支持有限。 .需要一个最好的和quock的方式来处理思想......
-
考虑更正确、更高效的
ps -e -o args= | awk '/ps[e]t/{print $2}'。更正确,因为模式匹配命令不会在进程表中匹配自身(例如,ps -ef | grep FOO通常在其参数 FOO 上匹配 grep 进程本身)。效率更高,因为管道更短(grep 和 awk 通常可以组合使用)并且因为 ps 只输出您关心的内容。也考虑转移到 serverfault.com
标签: unix monitoring monitor ps unix-socket