Как я могу вручную запустить проверку nagios из командной строки?

24

При определении и тестировании новых сервисов в nagios я перезапускал nagios, затем щелкал по сервису и планировал повторную проверку как можно скорее, а затем ждал, пока проверка не произойдет.

Есть ли более эффективный способ сделать это? Я хотел бы использовать командную строку для запуска этой конкретной проверки и получить вывод.

УХО
источник

Ответы:

31

Иногда мне сложно понять, что именно делает плагин. Чтобы понять это, я установил nagios в режим отладки с такой конфигурацией. debug_level=2048 С нагиосом в режиме отладки я просто хватаю debug_logфайл debug_file=/var/log/nagios3/nagios.debug. Выполните проверку, и вы увидите, как именно выполняется команда. Я бы не стал оставлять этот параметр включенным, хотя он очень многословен и быстро заполняет ваш лог-файл.

Zoredache
источник
здорово. это больше похоже на то, что я имел в виду. только потому, что я уже посмотрел в файле commands.cfg, чтобы выяснить, какие команды выполнялись, но я хотел знать, какие флаги были установлены. Благодарность! :)
cwd
2
Я также буду отмечать для новых пользователей, что использование tail -fпозволит вам продолжать видеть обновления файла в режиме реального времени, и control+cотменит это.
cwd
2
Уровни debug_levels являются двоичными - 2048 включает только сообщения из макросов. Чтобы включить все, что вы хотите, установите debug_level = 4095. (1 + 2 + ... + 2048)
JWG
18

Это довольно просто. Просто перейдите в каталог плагинов (или нет) (это расположение каталога зависит от того, как вы его установили, но проверьте / usr / local / nagios или / usr / lib / nagios).

Найдите плагин, который вы хотите запустить (если вы не уверены, сравните то, что вы видите в каталоге плагинов на вашем компьютере с Linux, с плагинами, расположенными здесь: http://exchange.nagios.org/directory/Plugins , или попробуйте запустить "./plugin-name -h", чтобы получить справочную информацию о плагине).

Метод использования любого из этих «плагинов» из командной строки такой же, как и у любого другого скрипта Linux: просто запустите «./plugin-name» с соответствующими флагами, которые вы хотите проверить, и вуаля!

Дэвид В.
источник
1
+1 ... и если это кажется слишком большой проблемой, вы всегда можете посмотреть конфигурационные файлы Nagios, чтобы увидеть, какие команды и параметры необходимо выполнить. Даже местоположение каталога плагинов находится там.
Джон Гарденье
5
И имейте в виду, что всегда делайте это с nagiosпользователем su - nagios -s /bin/bash.
кванты
хороший. и -загружает переменные среды для этого пользователя?
cwd
Да, как и любой другой флаг Linux, "-" с любыми флагами, которые вы используете, загрузит флаг. (Если я запускал df -h в CLI linux, я использую флаг "h" - в случае команды df h обозначает "читабельный человеком".) Так что, если вы хотите запустить проверку check_http из CLI вы можете запустить ./check_http -I, где флаг I обозначает IP-адрес ( nagiosplugins.org/man/check_http ). Может быть полезным nagiosplugins.org/man , а также каталог плагинов, на который я ссылался ранее.
Дэвид W
Параметр справки должен быть --help. nagios-plugins.org/doc/guidelines.html
dmourati
5

Я беру немного более грубое направление, чем @Zoredache, я захожу на сервер nagios и делаю "пока true; делаю ps awwlx | grep NAGIOS_CHECK_NAME; done", в то время как я вынуждаю повторную проверку службы, где NAGIOS_CHECK_NAME либо часть имени чека или IP-адрес сервера, который я ищу. Обычно в течение нескольких секунд появляется полная команда проверки, а затем я завершаю цикл while и запускаю команду проверки.

Да, это просто грубая сила, но <пожимание плечами> это работает для меня.

Шон Рейфшнайдер
источник
Попробуйте «смотреть» вместо цикла while. linux.about.com/library/cmd/blcmdl1_watch.htm
dmourati
3

Вы также можете попробовать подключаемый модуль 'capture'. По сути, он делает то же самое, что и уровень отладки 2048, но может использоваться отдельно для каждого плагина. Это дает меньше выхода, чтобы копаться.

http://www.waggy.at/nagios/capture_plugin.htm

Кит
источник
1
Я изо всех сил пытался заставить это работать, не уверен, что я делал неправильно (noob), но трюк debug_level работал для меня :)
sbditto85
2

Перейдите в каталог плагинов - в моем примере это

/usr/lib64/nagios/plugins/

Введите название вашего плагина - в моем примере это

check_tcp

Теперь выполните полную команду - (имя плагина) -H (имя хоста) -p (номер порта)

/usr/lib64/nagios/plugins/check_tcp -H myservername -p 8080

выход

TCP OK - 0.004 second response time on port 8080|time=0.004146s;;;0.000000;10.000000

Однако в этом примере номер порта не является обязательным

другой пример -

в вашем конфигурационном файле, который выглядит примерно так (myserver.cfg), и вы хотите запустить check_cpu из командной строки

define service{
  use                             generic-service
  host_name                       myserver
  servicegroups                   windows
  service_description             CPU
  contact_groups                  sysadmin_email_only
  notification_options            w,c,r
  check_command                   check_nrpe!check_cpu
}

проверить мгновенно (без графического интерфейса зеленый или красный)

Попробуйте это - (полный путь к плагину) - H (имя сервера) -c (контрольное имя)

/usr/lib64/nagios/plugins/check_nrpe -H spc7atc01 -c check_cpu

выход -

OK CPU Load ok.|'5'=4;80;90; '10'=3;80;90; '15'=3;80;90;

Это оно

Шариат Чоудхури
источник