如何从check_procs检查sshd中排除登录

时间:2013-03-27 17:42:17

标签: plugins nagios sshd

我希望使用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连接。有没有办法实现这个目标?

1 个答案:

答案 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选项。