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

Nagios на RHEL 6 (пакет EPEL) перестал работать после обновления

Пакет EPEL для Nagios в RedHat Enterprise Linux 6 был обновлен несколько недель назад с версии 3.4 до версии 4.3. Обновление было выполнено простым yum update команда, и ничто не указывает на изменение основной версии.

Хотя после обновления Nagios, казалось, работал нормально (все службы правильно отображаются в веб-интерфейсе), на самом деле мало что работает: проверки служб не выполняются, и письма тоже не отправляются. Десятки сообщений об ошибках видны в /var/log/messages:

Jan 26 15:58:55 srv1 nagios: Unable to send check for host 'srv3' to worker (ret=-2)
Jan 26 15:58:58 srv1 nagios: Unable to run check for service 'Total Processes' on host 'srv4'
Jan 26 15:59:05 srv1 nagios: Unable to run check for service 'Lab Home Partition' on host 'srv1'

Более того, попытка перезапуска nagios заканчивается ошибкой, которой не было до обновления: No usable PID found in /var/run/nagios/nagios.pid. Кажется, у этой части проблемы есть решение: Nagios Woudn't Start, теперь не остановится!

Заметив, что обновление создало /etc/nagios/nagios.cfg.rpmnew файл, я запустил diff с исходным файлом конфигурации из 3.5.1 RPM, чтобы увидеть, в чем заключаются различия, и соответствующим образом изменили фактический файл конфигурации. Изменения в основном касаются положения некоторых файлов, используемых во время выполнения (вот значения новой версии):

object_cache_file=/var/spool/nagios/objects.cache
precached_object_file=/var/spool/nagios/objects.precache
lock_file=/var/run/nagios/nagios.pid
temp_file=/var/spool/nagios/nagios.tmp
check_result_path=/var/spool/nagios/checkresults

Это решает проблему остановки / перезапуска, упомянутую выше, однако нарушает работу веб-интерфейса, который теперь отображает Error: Could not read object configuration data!. И сервисные проверки по-прежнему не выполняются.

Сообщения об ошибках также присутствуют в /var/log/audit/audit.log, что указывает на то, что проблема, вероятно, связана с SELinux (система работает в принудительном режиме):

type=AVC msg=audit(1516991640.421:263116): avc:  denied  { getattr } for  pid=29_exec_t:s0 tclass=file
type=SYSCALL msg=audit(1516991640.421:263116): arch=c000003e syscall=4 success=n fsgid=494 tty=(none) ses=4000 comm="check_procs" exe="/usr/lib64/nagios/plugins

Действительно, временная установка SELinux в разрешающий режим полностью решает проблему; однако это не решение. Как правильно обновить настройки SELinux, сохраняя SELinux в принудительном режиме?

Необходимые профили SELinux доступны в nagios-selinux пакет также доступен на EPEL. К сожалению, обновление не устанавливает его автоматически при переходе с Nagios 3.5.1 на Nagios 4.3.4, поэтому его необходимо добавить вручную:

yum install nagios-selinux

Конечно, изменения в файлах конфигурации (импорт новых путей из .rpmnew config) также необходимы для правильной работы Nagios.