CentOS: Невозможно прочитать вывод агента nrpe/snmp на удаленном сервере, хотя локально все работает. Что я делаю не так?

CentOS: Невозможно прочитать вывод агента nrpe/snmp на удаленном сервере, хотя локально все работает. Что я делаю не так?

Я установил NRPE и SNMP на каком-то сервере, так как я хотел бы контролировать этот сервер с помощью Nagios. У меня есть несколько проверок, которые уже работают должным образом, и я получаю вывод, как и предполагалось. Сегодня я установил команду check_ifstatusNagios, чтобы контролировать состояние сетевых интерфейсных карт на одном из моих mysqlсерверов. При check_ifstatusлокальном запуске на сервере я получаю соответствующую информацию правильно:

[root@dbr4 nagios]# /usr/lib64/nagios/plugins/check_ifstatus -H localhost
    OK: host 'localhost', interfaces up: 4, down: 0, dormant: 0, excluded: 0, unused: 0    |up=4,down=0,dormant=0,excluded=0,unused=0
[root@dbr4 nagios]#

но когда я запускаю команду с моего сервера Nagios, я получаю следующую ошибку:

[root@monitorvm ~]# /usr/lib64/nagios/plugins/check_ifstatus -H amadbr4
CRITICAL: No response from remote host 'dbr4' for 1.3.6.1.2.1.2.2.1.8  with snmp version 1
[root@monitorvm ~]#

Означает ли это, что мне нужно включить snmp на сервере, который я хочу проверить? Есть ли способ использовать NRPE для запуска этой проверки? SELINUX отключен на всех машинах.

решение1

Почему вы используете NRPE для проверки чего-либо через SNMP? Вы можете проверить это прямо из блока Nagios, предполагая, что snmp прослушивает внешний интерфейс (что вам, судя по комментариям netstat, и нужно, несмотря на то, что вы ищете не тот порт).

Вам не следует использовать -n, если вы не скомпилировали NRPE без поддержки SSL.

(Также вам не нужно указывать-п 5666, так как это значение по умолчанию. То же самое с-т 10.)

  1. Убедитесь, что IP-адрес вашего сервера Nagios находится в списке allowed_hosts.
  2. Посмотрите, можете ли вы вообще общаться с демоном NRPE, запустив "check_nrpe -H dbr4" без дополнительных аргументов. Вы должны получить номер версии NRPE
  3. Проверьте, что строка «command[check_ifstatus]» в nrpe.cfg соответствует вашему ручному тесту.

решение2

Ответ Кейта самый правильный: вам не нужно использовать NRPE для выполнения проверок SNMP, и это добавляет ненужную сложность.

Тем не менее, наиболее вероятной непосредственной проблемой здесь является SELinux, если вы не знаете, что вы его отключили. Запустите getenforceна хосте NRPE; если там написано "Enforcing", SELinux включен. Если SELinux включен, выполните команду check_nrpeс хоста Nagios, а затем проверьте /var/log/audit/audit.logна хосте NRPE. Если там есть строки с "type=AVC", которые говорят "avc: denied", вы, вероятно, столкнулись с ограничением SELinux.

Самый простой способ избежать этого — отключить SELinux, отредактировав /etc/selinux/configи установив SELINUXзначение permissive(если вы планируете снова включить SELinux на этой системе в какой-то момент) или disabled(если вы уверены, что больше не захотите запускать SELinux на этой системе). Конечно, если вы это сделаете, вы, очевидно, потеряете все преимущества SELinux.

Вы можете решить эту проблему, изменив контекст SELinux плагина check_ifstatus. Вы можете проверить его контекст с помощью ls -Z. В моей системе (со стандартной целевой политикой) он имеет контекст "system_u:object_r:nagios_system_plugin_exec_t:s0", из которых "nagios_system_plugin_exec_t" является важной частью. Если установка его в "nagios_system_plugin_exec_t" (с chcon -t nagios_system_plugin_exec_t check_ifstatus) не работает, попробуйте с "nagios_unconfined_plugin_exec_t". Если любое из этих изменений сработает, вам придется сделать их постоянными с помощью semanage fcontext -a -t nagios_system_plugin_exec_t '/usr/lib(64)?/nagios/plugins/check_ifstatus'.

Если ничего из этого не работает, вы, вероятно, сталкиваетесь с некоторыми ограничениями процессов, использующих адрес обратной связи, и вам придется просмотреть сообщения AVC и создать собственные политики SELinux. Я не сделал достаточно, чтобы дать совет (кроме "проверьте SNMP напрямую с вашего хоста Nagios; для этого и нужен SNMP"), но в сети есть несколько ссылок на то, как это сделать. ВЫ можете заглянуть в audit2allow, что помогает в процессе адаптации к политике SELinux.

Связанный контент