1

我希望使用 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 连接。有没有办法做到这一点?

4

1 回答 1

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 选项不可用的。

于 2013-03-28T01:34:29.503 回答