如何监控centos 5.x 主机上的选择进程?

bo *_*man 2 linux monitoring top vmware-server monit

我想监视在我的 centos 6 主机上运行的一组选定进程,vmware vm。“top”为我提供了我想要的大部分内容,因为我可以使用 -p 来仅指定这些进程,并使用 -c 来获取完整的命令行,因为我最终对查看正在监视的 VM 的实际名称感兴趣。但是,完整的命令行太长而无法在屏幕上显示。我想将 top 的输出写入 /tmp 并在那里进行一些解析,但显然 top 只写了 80 个字符,截断了 VM 的名称。

我想也许我可以使用 'ps' 来做类似的事情,但是使用这种方法的 CPU 使用率永远不会改变——这怎么可能?

关于我如何解决这个问题的任何建议?

蒂亚!

eww*_*ite 5

老实说,我会为此使用Monit。它可以通过 yum 从 RPMForge 获得,适用于您的特定 Linux 版本。

Monit 是一个用于监控进程和守护进程的工具。通常这是通过 PID 完成的,但您也可以匹配进程字符串。由于 VMWare 服务器进程字符串以“vm_name.vmx”规范结尾,因此您可以设置 Monit 来检查该字符串。我手头的 VMWare Server 1.0.x 系统的唯一示例是运行一个 VM,但只要您知道 *.vmx 文件的名称,您就可以在 monit 配置文件中单独列出它们。

这是输出monit procmatch vmx

[root@abc ~]# monit procmatch vmx
List of processes matching pattern "vmx":
------------------------------------------
        /usr/lib/vmware/bin/vmware-vmx -# product=2;name=VMware Server;version=2.0.1;buildnumber=156745;licensename=VMware GSX Server for Linux;licenseversion=3.0 build-156745; -@ pipe=/tmp/vmhsdaemon-0/vmx226abb1efa53200b;readyEvent=52 /vmware/abc_Web/abc_Web.vmx
------------------------------------------
Total matches: 1
Run Code Online (Sandbox Code Playgroud)

将一个小的 VMWare 检查条目添加到 monit 配置文件(为您需要监视的每个唯一 VM 创建和条目)...

check process vmware
        matching "vmware-vmx"
Run Code Online (Sandbox Code Playgroud)

这显示了正在监视的内容的状态。

[root@abc ~]# monit status

Process 'vmware-vmx'
  status                            running
  monitoring status                 monitored
  pid                               25171
  parent pid                        1
  uptime                            992d 8h 5m 
  children                          0
  memory kilobytes                  1107796
  memory kilobytes total            1107796
  memory percent                    18.1%
  memory percent total              18.1%
  cpu percent                       0.0%
  cpu percent total                 0.0%
  data collected                    Thu Apr 26 04:49:12 2012
Run Code Online (Sandbox Code Playgroud)

然后,在http://servername:2812有一个 Web 界面来控制进程

在此处输入图片说明

在此处输入图片说明