我希望使用Nagios插件check_procs来监控我的CentOS服务器上运行的ssh守护进程的数量。立即考虑我的服务器:
$ ps auxww | grep ssh
root 6750 0.0 0.0 31812 1224 ? Ss 2012 0:01 /usr/sbin/sshd
root 23375 0.0 0.0 65464 3244 ? Ss 16:53 0:00 sshd: user [priv]
user 23377 0.0 0.0 65464 1908 ? S 16:53 0:00 sshd: user@pts/1
root 23404 0.0 0.0 65464 3248 ? Ss 16:53 0:00 sshd: user [priv]
user 23406 0.0 0.0 65464 1912 ? S 16:53 0:00 sshd: user@pts/2
我只想知道有多少'/ usr / sbin / sshd'实例正在运行,而不是已经启动了多少个守护进程来处理传入的ssh连接。有没有办法实现这个目标?
答案 0 :(得分:1)
您可以使用以下方法检查“root”专门启动的'sshd'守护进程:
check_procs -p 1 -C sshd
PROCS OK: 1 process with PPID = 1, command name 'sshd'
这应该消除开始处理用户连接的分支。 '-p'选项告诉check_procs只计算具有给定PPID的那些进程,在这种情况下'1'属于root。 check_procs命令不允许您添加路径。
如果您需要查看正在运行的'/ usr / sbin / sshd'特定守护进程的数量,不管他们运行的用户是谁,您可以围绕以下内容构建检查:
ps -ef | grep "/usr/sbin/sshd" | grep -v grep | wc -l
1
这会给你计数,你可以在bash / perl / ...中检查并根据需要抛出警报。
在查看check_procs的源代码后,我将使用以下检查配置:
check_procs -p 1 --ereg-argument-array=^\/usr\/sbin\/sshd
这应该可以为您提供您正在寻找的内容,并且会在正在检查的内容中包含“路径” - 这不适用于-C选项。