Nagios NRPE: команда "my_command" не определена

Я установил Nagios® Core™ 3.5.1 а также NRPE v2.14 на моем клиенте, который работает RHEL 6.3

У меня есть это сообщение об ошибке на моем Nagios

NRPE: Command 'check_mysql_connections' not defined

На моем nrpe.cfg Я уже настроил allowed_host, include_dir:

allowed_hosts=xx.xx.xx.xx
dont_blame_nrpe=1
include_dir=/etc/nagios/services

моя команда включена /etc/nagios/services/check_mysql_connections.cfg

command[check_mysql_connections]=/usr/lib64/nagios/plugins/check_mysql_all -K connections -H myHOST -u myUSERNAME -p myPASSWORD

На Nagios Server я уже настроил nagios.cfg файл, и добавьте commands-custom.cfg на /etc/nagios/objects который содержит как это:

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

и на /etc/nagios/servers Я добавил mysql.cfg

## Define Host Group ##

define hostgroup {
hostgroup_name          mysql-databases
alias                   MySQL Databases
}

#######################
## Define Hosts ##

define host {
use             linux-server
host_name       bdgbnbpmydb02
alias           MySQL Database
address         xx.xx.xx.xx
hostgroups      mysql-databases
contact_groups  admins
check_command   check-host-alive
}

#######################
## Define Service ##

define service {
use                     generic-service
hostgroup_name          mysql-databases
service_description     MySQL Connections
check_command           check_mysql_connections
}

Я уже убиваю NRPE процесс, удаление /var/run/nrpe.pidи снова запустите процесс NRPE. А также мой NRPE не работает под xinet.d

Когда я пытаюсь выполнить команду локально на удаленном хосте, это дает результат. И когда я пытаюсь выполнить с сервера nagios, используя эту команду:

/usr/lib64/nagios/plugins/check_nrpe -H xx.xx.xx.xx -c check_mysql_connections

это также дает результат. Я не знаю, что пошло не так, потому что все мои другие команды работают нормально.

6 ответов

Выполните следующие шаги для добавления проверки диска удаленного клиента. Эти шаги могут быть выполнены для настройки MySQL также.

клиент


vi /etc/nagios/nrpe.cfg

allowed_hosts=127.0.0.1,nagios_server_ip_here
dont_blame_nrpe=1
#checking root  partion
command[check_disk]=/usr/lib/nagios/plugins/check_disk -w 25% -c 20% -p /

сервер


Из файла /usr/local/nagios/etc/resource.cfg это дано как $USER1$=/usr/local/nagios/libexec:

Итак, запустите команды в терминале:

locate check_nrpe                              //find the location of check_nrpe
cp /usr/lib/nagios/plugins/check_nrpe /usr/local/nagios/libexec/
cd /usr/local/nagios/libexec/
chown nagios:nagios check_nrpe

Редактировать файл /usr/local/nagios/etc/objects/commands.cfg:

define command{
    command_name    check_disk
    command_line    $USER1$/check_nrpe -H '$HOSTADDRESS$' -t 30 -c check_disk
     }

редактировать /usr/local/nagios/etc/servers/clients.cfg:

define service {
    use                             generic-service
    host_name                       BI Server
    service_description             Disk
    check_command                   check_disk
    notifications_enabled           1
    }

Перезапустите сервисы

/etc/init.d/nagios restart                          //server side
/etc/init.d/nagios-nrpe-server restart             //client side

Вы также можете проверить команды в терминале как пользователь nagios,

su - nagios
cd /usr/local/nagios/libexec/
./check_nrpe -H nagios_client_ip_here -t 30 -c check_mysql
./check_nrpe -H nagios_client_ip_here -t 30 -c check_disk

Начните с одного конца и продолжайте свой путь назад.

  • Вы сказали, что "/usr/lib64/nagios/plugins/check_mysql_all -K соединения -H myHOST -u myUSERNAME -p myPASSWORD" работает в командной строке.
  • Вы сказали, что NRPE работает на этом сервере с другими командами.
  • Вы сказали, что команда не выполняется в командной строке с сервера nagios.

Это говорит мне о том, что проблема в определении на сервере NRPE. Возможно ли, что ваши запутанные переменные для myHOST, myUSERNAME или myPASSWORD содержат символ, который не буквально интерпретируется NRPE? (Я предполагаю, что вы уже проверили на наличие опечаток и дубликатов определений!)

У меня был такой же симптом. Так что, возможно, это сэкономит кому-то еще время. Моя проблема заключалась в том, что мне не хватало расширения.cfg для файлов в каталоге include.

Мой включенный каталог был include_dir=/etc/nagios/nrpe.d

Машина работает под управлением Ubuntu 14.04 для справки, используя NRPE v2.15

Обычно я подозреваю, что проблема с разрешениями для этого плагина. Обязательно запустите ручные тесты от имени пользователя nagios (или nrpe).

Но в этом случае он заявляет, что команда NRPE даже не определена, так что она даже не заходит так далеко, как ее запуск...

Поместите команду NRPE def непосредственно в nrpe.cfg, а не во включаемый файл. (А затем перезапустите NRPE.)

Я вспоминаю, как несколько лет назад у меня была похожая проблема (но с NRPE от EPEL), когда по какой-то причине он не включал другой файл в nrpe.cfg. Я так и не выяснил, почему включаемый файл не работает.

У меня была такая же проблема для одной из новых проверок, которые я реализовал. Пробовал запустить проверку вручную с Nagios Server

[foo@nagios.example.com]$ /usr/lib64/nagios/plugins/check_nrpe -H db1.example.com -c check_mysql
NRPE: Command 'check_mysql' not defined

Оказалось, что Nagios NRPE Daemon на Nagios Client Server необходимо перезапустить, поскольку он получает все данные из nrpe.d в программную память

[foo@db1.example.com]$ sudo  /etc/init.d/nrpe restart
Shutting down Nagios NRPE daemon (nrpe):                   [  OK  ]
Starting Nagios NRPE daemon (nrpe):                        [  OK  ]

Снова проверил проверку и на этот раз добился успеха

[foo@nagios.example.com]$ /usr/lib64/nagios/plugins/check_nrpe -H db1.example.com -c check_mysql
OK: MySQL is running fine.

Когда-то у меня была похожая проблема, оказалось, что кто-то уже установил NRPE на сервере (я не знал), и когда я попытался получить доступ, он взял старую версию и конфигурацию NRPE, решение было искать старый NRPE. и перенаправить доступ...

Другие вопросы по тегам