Назад | Перейти на главную страницу

Плагин Nagios для мониторинга FreeSWITCH

Я пытаюсь настроить Nagios для мониторинга FreeSWITCH, как указано на https://github.com/kjhosein/nagios-freeswitch-plugin .

Я загрузил скрипт с git и выполнил перечисленные шаги.

На удаленном (NRPE) сервере я добавил строку ниже в файл nrpe.cfg

command[check_freeswitch_health]=/usr/lib64/nagios/plugins/check_freeswitch_health.pl $ARG1$

На сервере Nagios добавлен в файл commands.cfg

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

и в файле services.cfg

define service {
    host_name       freeswitch01
    service_description     FreeSWITCH - Calls Count
    check_command   check_freeswitch_health!-a '-q show-calls-count'!!!!!!!
  }

Но в веб-интерфейсе Nagios я получаю

CHECK_NRPE: Received 0 bytes from daemon. Check the remote server logs for error messages.

На удаленном сервере журналы (/ var / log / syslog) показывают ошибку ниже

Request contained command arguments!
Client request was invalid, bailing out...

Что мне здесь не хватает? Может ли кто-нибудь помочь мне с правильными настройками?

Спасибо,

Руту

  1. Убедитесь, что вы можете запустить этот сценарий perl локально, как пользователь nagios / nrpe.
  2. Убедитесь, что скрипт perl не зависит от ENV (например, $ PATH). Проверить, пройдя через env -i /usr/lib64/nagios/plugins/check_freeswitch_health.pl ...
  3. Используйте свой общий check_nrpe определение команды вместо того, чтобы писать check_ {something} для каждой отдельной команды NRPE, которую вы хотите запустить.
  4. Чтобы передать аргументы с помощью -a, вы должны включить аргументы команды в nrpe.cfg, установив dont_blame_nrpe=1

Например, если ваш check_nrpe команда выглядит так:

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

Тогда ваше определение службы будет:

define service {
    host_name       freeswitch01
    service_description     FreeSWITCH - Calls Count
    check_command   check_nrpe!check_freeswitch_health!-q show-calls-count
}

(Почему у вас есть !!!!!!! в конце вашей команды?)

Или, если единственный вариант, который вы когда-либо передаете этому сценарию perl, это -q, вы можете поместить его в определение команды в конфигурации NRPE:

command[check_freeswitch_health]=/usr/lib64/nagios/plugins/check_freeswitch_health.pl -q $ARG1$

Тогда твой check_command было бы просто check_nrpe!check_freeswitch_health!show-calls-count