У меня проблема с мониторингом nagios. Я пытаюсь проверить процесс на удаленном хосте с помощью nrpe.
Хост уже контролировался nagios, поэтому мне нужно было только добавить строку в файл nrpe.cfg. Там даже уже была определена проверка check_procs, поэтому я могу использовать этот пример.
Так просто, что ты мог бы быть толстым, но нет. Проверяю, могу ли я запустить команду вручную и никаких проблем!
ubuntu@host:/usr/lib/nagios/plugins$ ./check_procs -w 1:1 -c 1:1 -a delayed_job
PROCS OK: 1 process with args 'delayed_job'
ubuntu@host:/usr/lib/nagios/plugins$ sudo ./check_procs -w 1:1 -c 1:1 -a delayed_job
PROCS OK: 1 process with args 'delayed_job'
Это кусок моего файла nrpe.cfg:
command[check_procs]=/usr/lib/nagios/plugins/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$
command[check_proc_name]=/usr/lib/nagios/plugins/check_procs -w $ARG1$ -c $ARG2$ -a $ARG3$
Первая проверка check_procs отслеживается правильно, последняя строка была моей, которую я добавил, но отвечает следующим образом: КРИТИЧЕСКИЕ ПРОЦЕССЫ: 2 процесса с аргументами 'delayed_job'
Это мой служебный файл:
define service {
use generic-service
host_name imobiel.limburger.nl
service_description Check Delayed Job Proces
check_command check_nrpe!check_proc_name!1:1 1:1 delayed_job
}
Есть у кого-нибудь идея? Я уже несколько раз перезапускал сервер nagios и сервер nrpe! Надеюсь, кто-то выяснил те же проблемы?
Заранее большое спасибо.
Я думаю, что это ошибка в check_procs: кажется, что он сам подхватывает себя при запуске из nrpe, в отличие от командной строки. Может быть, какое-то состояние гонки.
Я вижу, что вы используете Ubuntu, учитывая вашу командную строку. Имея check_procs в Lucid, я могу делать что-то вроде:
/usr/lib/nagios/plugins/check_procs --ereg-argument-array="[s]tring" -w 1:1
Итак, мы выполним сопоставление с образцом в списке аргументов, но таким образом, чтобы процесс check_procs не был сопоставлен. Помещение одного символа шаблона в квадратные скобки приводит к тому, что выражение будет соответствовать «строке», но, очевидно, не будет соответствовать аргументу check_procs «[s] tring».
Однако check_procs, доступный на Hardy, не имеет опции регулярного выражения.
Проблема с выводом / bin / ps на хосте. По умолчанию двоичный файл "check_procs" выполняет команду "/ bin / ps -axwo" в проверенной системе, которая вырезает строку arg. Просто перекомпилируйте nagios-плагины из исходников. В версии 1.4.15 необходимо установить параметры настройки:
./configure --enable-extra-opts=yes --with-ps-command="/bin/ps -axwwo 'stat uid pid ppid vsz rss pcpu ucomm command'" --with-ps-format="%s %d %d %d %d %d %f %s %n" --with-ps-cols=9 --with-ps-varlist="procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos"
Когда мы устанавливаем -axWWo - ps получаем полную строку аргументов. Извините за мой ingreesh.
У меня тоже была эта проблема, потому что я определял, что пользователь работал. Например -u root. поскольку сервер NRPE запускает свою проверку от имени пользователя Nagios, особый вызов пользователя позволяет избежать этой проблемы.
Какая у вас версия nagios-плагинов? check_procs в 1.4.15 не демонстрирует такого поведения. Однако я не проверял более ранние версии.
Добавьте «-vv» или «-vvv» в конец вашего ручного теста, и вы сможете точно проверить, какую команду «ps» он выполняет, что видит и что считает совпадающими.
Если ты фактически если Nagios запускает и "check_procs", и "check_proc_name", как они определены в вашем фрагменте nrpe.cfg, в то же время, с одними и теми же точными аргументами ... тогда вполне возможно, что они бы подбирали друг друга в счет. Но зачем вам проводить две проверки, которые делают одно и то же?