为什么 nrpe 'check_procs' 没有找到我的乘客进程?

eth*_*nny 2 nagios nrpe

我正在尝试使用check_procs来自 NRPE 的信息来确定Passenger是否正在我的服务器上运行。它从加载httpd但单独出现。

32135 ?        Sl     0:09 Passenger RackApp: /usr/share/puppet/rack/puppetmasterd  
32589 ?        Sl     0:01 Passenger AppPreloader: /usr/share/puppet/rack/puppetmasterd  
32629 ?        Sl     0:05 Passenger RackApp: /usr/share/puppet/rack/puppetmasterd  
32751 ?        Sl     0:05 Passenger RackApp: /usr/share/puppet/rack/puppetmasterd  
Run Code Online (Sandbox Code Playgroud)

当我尝试像这样测试它时:

 check_procs -w 2: -c 3: -C Passenger
Run Code Online (Sandbox Code Playgroud)

它告诉我找到了 0 个进程。我看到了它们 - 我如何让 NRPE 来计算它们?

eth*_*nny 9

进程名称很可能不是您认为的那样。要了解如何check_process寻找您的工作,请尝试以下操作:check_procs -vv -C Passenger。你会看到这样的东西:

/usr/lib64/nagios/plugins/check_procs -vv -C Passenger   
CMD: /bin/ps axwo 'stat uid pid ppid vsz rss pcpu comm args'  
PROCS OK: 0 processes with command name 'Passenger'  
Run Code Online (Sandbox Code Playgroud)

现在使用ps命令并像这样自己尝试:

/bin/ps axwo 'stat uid pid ppid vsz rss pcpu comm args' | grep Passenger
Run Code Online (Sandbox Code Playgroud)

请注意,有很多工作符合您的描述……只是没有像您想象的那样命名……

S+       0   841 26063 103244   852  0.0 grep            grep Passenger  
Ssl      0 30160  2134 216524  1972  0.0 PassengerWatchd PassengerWatchdog  
Sl       0 30164 30160 1108096 4980  0.2 PassengerHelper PassengerHelperAgent  
Sl      99 30170 30160 219616  4292  0.0 PassengerLoggin PassengerLoggingAgent  
Sl      52 32135     1 217972 113944 1.1 ruby            Passenger RackApp:   /usr/share/puppet/rack/puppetmasterd                
Sl      52 32629     1 235484 131480 1.9 ruby            Passenger RackApp:   /usr/share/puppet/rack/puppetmasterd                
Sl      52 32751     1 218672 114568 1.7 ruby            Passenger RackApp: /usr/share/puppet/rack/puppetmasterd     
Run Code Online (Sandbox Code Playgroud)

现在更改您的check_procs命令以匹配:

/usr/lib64/nagios/plugins/check_procs  -C ruby -a Passenger  
PROCS OK: 3 processes with command name 'ruby', args 'Passenger'
Run Code Online (Sandbox Code Playgroud)