私はetch nagiosサーバー(これをNagiosServerと呼びます)を使用しており、別のetchサーバー(MonitorEtch)を含む多くのものを正常に監視しています。 check_nrpeとcheck_procsを使用して、「/ usr/sbin/squid」などの実行中のデーモンのプロセスリストを確認できます。
NagiosServerからMonitorEtchを確認します(正しい結果)。
/usr/lib/nagios/plugins/check_nrpe -H MonitorEtch -c check_process -a /usr/sbin/squid 1:1 1:1
PROCS OK: 1 process with args '/usr/sbin/squid'
/usr/lib/nagios/plugins/check_nrpe -H MonitorEtch -c check_process -a whatever 1:1 1:1
PROCS CRITICAL: 0 processes with args 'whatever'
Lucid(MonitorLucid)を実行して、監視したい新しいサーバーを構築しました。 NagiosServerからどのようなプロセスを試みて監視しても、必要以上の結果が得られます。
NagiosServerからMonitorLucidを確認します(誤った結果):
/usr/lib/nagios/plugins/check_nrpe -H MonitorLucid -c check_process -a whatever 1:1 1:1
PROCS OK: 1 process with args 'whatever'
ps ax|grep sophie
12737 ? Ss 0:00 /usr/sbin/sophie -D
12738 ? S 0:03 /usr/sbin/sophie -D
19591 pts/0 S+ 0:00 grep --color=auto sophie
/usr/lib/nagios/plugins/check_nrpe -H 192.168.19.252 -c check_process -a sophie 1:1 1:1
PROCS CRITICAL: 3 processes with args 'sophie'
MonitorLucid/MonitorEtchの/etc/nagios/nrpe_local.cfgの内容:
allowed_hosts=NagiosServer,127.0.0.1
dont_blame_nrpe=1
command[check_process]=/usr/lib/nagios/plugins/check_procs -a $ARG1$ -m PROCS -w $ARG2$ -c $ARG3$
しかし、ローカルでチェックを実行すると、正しい結果が返されます。
MonitorLucidからMonitorLucidを確認します(正しい結果):
/usr/lib/nagios/plugins/check_procs -a whatever -m PROCS -w 1:1 -c 1:1
PROCS CRITICAL: 0 processes with args 'whatever'
/usr/lib/nagios/plugins/check_procs -a sophie -m PROCS -w 1:1 -c 1:1
PROCS CRITICAL: 2 processes with args 'sophie'
私はこの時点でアイデアがありません。必要以上に1つのインスタンスをチェックすることはできません。
私も同様の問題を抱えていました。 check_procs
は内部で/bin/ps axwo 'stat uid pid ppid vsz rss pcpu comm args'
を呼び出しており、プロセスを一覧表示してからカウントしています。別のユーザーで実行するようにnagiosを構成している場合は、Sudo
を使用してコマンドを実行しています。そして、ここに問題があります。 Sudo ps -AF | grep Sudo
と入力すると、一部の分布は「grep Sudo
」を返し、他の分布は「Sudo ps -AF
」と「grep Sudo
」を返します。 check_procsはすべてのプロセスをカウントしているため、マシンごとに異なる結果が得られます。残念ながら、check_procsがSudo
プロセスをカウントしないように強制する方法はまだありません。
Lucidのcheck_procs
のバージョンのように聞こえるのはバグがある(または少なくとも動作が変更された)。常に1つの追加を見つけているという事実は、プロセス名と引数の任意の部分で部分文字列の一致を行っており、プラグインの実行に関連するプロセスの1つを見つけていることを示しています。それについてUbuntuにバグを報告する価値があります。