2015-10-14 3 views
1

В /usr/local/nagios/etc/nrpe.cfg я добавил новую команду check_this_process к уже предварительно определенных из них:Nagios - NRPE: Команда '...' не определено

command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10 
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20 
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/$ 
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s$ 
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200 
command[check_this_process]=/usr/local/nagios/libexec/check_procs -w 15 -c 20 -C name 

Это работает:

define service{ 
     use      generic-service 
     host_name    my_host 
     service_description  CPU Load 
     check_command   check_nrpe!check_load 
} 

Это Безразлично «т:

define service{ 
     use        local-service 
     host_name      my_host 
     service_description    cron 
     check_command     check_nrpe!check_this_process 
} 

и возвращает: NRPE: Command 'check_this_process' not defined

+0

Вы пытались перезапустить службу nrpe на удаленном сервере? Вы перезапустили службу nagios на своем сервере Nagios? –

+0

Да, я сделал. Я заметил, что в '/ usr/local/nagios/etc/nrpe.cfg' есть nrpe.cfg, а также nrpe.cfg в'/etc/nagios/nrpe.cfg'. И на сервере Nagios, который был тем, кем я до сих пор редактировался. Я удалил плагин nrpe с моего сервера Nagios с apt-get remove и теперь отредактировал nrpe.cfg на контролируемом сервере. Все еще такая же проблема больше и не слишком уверенная, где должен быть отредактирован nrpe.cfg. –

+0

Можете ли вы опубликовать конфигурацию с вашего сервера Nagios, где определена команда 'check_nrpe'? Также вы можете публиковать любые файлы 'nrpe.cfg' (вместе с их путями) на вашем контролируемом сервере, который вы можете найти? –

ответ

1

Терминология, используемая в поставляемой документации немного сбивает с толку, но я помещу это так:

Как написано в странице 10 из https://assets.nagios.com/downloads/nagioscore/docs/nrpe/NRPE.pdf, вам необходимо изменить /usr/local/nagios/etc/commands.cfgна сервере Nagios и добавьте Ниже определить check_nrpe команду:

define command{ 
    command_name check_nrpe 
    command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ 
} 

на сервере Nagios, определить ваше определение сервиса, как вы уже сделали:

define service{ 
     use        local-service 
     host_name      my_host 
     service_description    cron 
     check_command     check_nrpe!check_this_process 
} 

На удаленном хосте, чтобы контролировать, следующее будет отличаться в зависимости от того, установлен ли вы NRPE:

Если вы использовали метод тарболом/XINETD, ваш конфигурационный файл NRPE, скорее всего, будет находиться в /usr/local/nagios/etc/nrpe.cfg на вашем удаленном хосте для мониторинга. (Чтобы не набирать это время, Я просто назову его «my_host»). Итак, на my_host, modify /usr/local/nagios/etc/nrpe.cfg.

Добавить

command[check_this_process]=/usr/local/nagios/libexec/check_procs -w 15 -c 20 -C name 

Так что это выглядит следующим образом:

command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10 
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20 
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/$ 
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s$ 
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200 
command[check_this_process]=/usr/local/nagios/libexec/check_procs -w 15 -c 20 -C name 

(Примечание: вышеперечисленное если у вас есть процесс, называемый name Если нет, то замените name с вашим реальным. название процесса: то есть crond)

Restart Xinetd:

service xinetd restart 

(Примечание: перезапуск xinted не может быть необходимым, но я не использую его, так что я немного нечеткой на этом.)

Однако если вы установили NRPE на my_host с помощью менеджера пакетов, ни, ваш конфигурационный файл NRPE, вероятно, будет расположенными в /etc/nagios/nrpe.cfg. Итак, на my_host, modify /etc/nagios/nrpe.cfg.

Добавить

command[check_this_process]=/usr/local/nagios/libexec/check_procs -w 15 -c 20 -C name 

Так что это выглядит следующим образом:

command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10 
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20 
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/$ 
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s$ 
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200 
command[check_this_process]=/usr/local/nagios/libexec/check_procs -w 15 -c 20 -C name 

Перезапустите службу NRPE:

служба NRPE перезагружать

Назад на сервере Nagios, запустите проверка вашего Nagios confi настройки:

nagios -v /usr/local/nagios/etc/nagios.cfg 

Проверьте ошибки на наличие ошибок. Если нет ошибок, перезагрузите Nagios:

service nagios restart 

На сервере Nagios вы должны иметь check_nrpe утилиты установлена ​​somehwere в результате установки «check_nrpe плагина» на сервере Nagios. См страницы 9 и 10:https://assets.nagios.com/downloads/nagioscore/docs/nrpe/NRPE.pdf

Это check_nrpe утилита, скорее всего, будет расположен по адресу: /usr/local/nagios/libexec/check_nrpe Использование информации хоста my_host вручную проверить соединение NRPE с сервера Nagios. Выполните следующие действия:

/usr/local/nagios/libexec/check_nrpe -H <IP Address of my_host> -c check_this_process 

Если все настроено правильно, вы должны получить некоторый вывод в командной строке.

+0

Большое спасибо за это подробное решение :) Пока я закончил полностью переделав установку, переключился на Nagios3 из Nagios4 и пришлось менять некоторые пути, это действительно помогло настроить его снова и теперь отлично работает до сих пор :) –

+0

Мое удовольствие. Ура! –

1

Мой справочник по устранению неисправностей для 'NRPE: Command ... not found.' Упорядочено от наиболее распространенных до наименее распространенных - в моей среде.

  1. Был ли перезапущен демон NRPE ПОСЛЕ добавления новой команды? Если это новая команда, то NRPE ДОЛЖЕН быть перезапущен.
  2. Опечатки/орфографические ошибки. Соответствует ли сконфигурированное имя команды на стороне Nagios той, что находится в конфигурации NRPE?
  3. Права доступа. Использует ли ПОЛЬЗОВАТЕЛЬ, который работает NRPE, имеет ли READABLE и EXECUTABLE доступ к текущей запущенной команде? Вы проверили выполнение команды, как пользователь NRPE? На этой же системе? СОВЕТ. Используйте тире (-) при переключении на пользователя NRPE в Linux (su - ...), чтобы вы также импортировали указанную среду пользователей.
  4. Путь проблемы. Была ли FULL PATH фактической команде помещена в конфигурационный файл NRPE? Обычно это устраняет проблемы с PATH, поэтому не делайте этого иначе.
  5. Плохие команды. Выполняется ли фактическая команда? Или это просто бросает ошибку и выходит? У вас есть правильная версия (INSERT SOMETHING HERE) для запуска команды, установленной в удаленной системе? Вы должны иметь возможность запускать любую команду, определенную в nrpe.cfg из командной строки, и все новые команды должны быть проверены перед добавлением в nrpe.cfg.
  6. ЕСЛИ ВСЕ ВЫШЕИЗЛОЖЕННЫЕ НЕИСПРАВНОСТИ: Включите DEBUGGING в NRPE и проверьте файлы журнала (на удаленном хосте). Это немного сложный процесс, описанный в документации - прочитайте его. Важно отключить DEBUGGING, как только вы получите результат, который выглядит так, как будто это было бы полезно.

Этот контрольный список ДОПУСКАЕТ, что вы сделали необходимые вещи для различных конфигураций Nagios и NRPE, чтобы заставить его работать в первую очередь. Надеемся, что другие прочтут это, прежде чем публиковать еще один вопрос о том, почему они видят эту ошибку.

+0

Ваш первый пункт сделал трюк для меня. все было на месте, за исключением того, что я не перезапускал nrpe, после перезапуска проблема nrpe была решена. Благодаря! –

+0

Вот хороший, который через меня для цикла в течение 2 дней. Оказалось, что у меня есть IP-адрес, настроенный в файле host.cfg для другого компьютера. Только когда я заметил, что статистика, о которой сообщалось, была * одинаковой *, которую я наконец-то проследил. Надеюсь, это помогает кому-то другому. – AfroJoe