Nagios — программа с открытым кодом, предназначенная для мониторинга компьютерных систем и сетей: наблюдения, контроля состояния вычислительных узлов и служб, оповещения администратора в том случае, если какие-то из служб прекращают (или возобновляют) свою работу.
Обладая поддержкой всевозможных протоколов, огромного количества готовых плагинов и возможностью мониторинга при помощи скриптов собственного написания на различных языках программирования (Shell, C++, Perl, Python, PHP, C# и другие) делают Nagios незаменимым и очень мощным инструментом системного администратора.
Содержание:
- Установка Nagios (Nagios Core)
- Установка плагинов Nagios (Nagios Plugins)
- Настройка Nagios
- Настройка Apache
- Проверка конфигурации на ошибки
- Заметки
Установка Nagios
Настраиваем LAMP.
Устанавливаем необходимые пакеты:
1 |
yum -y install gd gd-devel gcc glibc glibc-common net-snmp net-snmp-utils make openssl-devel perl-Net-SNMP |
Создаём пользователя «nagios» и группу «nagcmd», которая необходима для управления через web-интерфейс. А также добавим в группу «nagcmd» пользователя вашего web-сервера.
1 2 3 4 |
useradd nagios groupadd nagcmd usermod -a -G nagcmd nagios usermod -a -G nagcmd apache |
Переходим в каталог куда мы складываем исходники, скачиваем архив с исходным кодом последней версии Nagios Core с официального сайта (на момент написания статьи доступна версия 4.1.1), разархивируем и переходим в папку nagios.
1 2 3 4 |
cd /usr/local/src/ wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.1.1.tar.gz tar -xvf nagios-*.tar.gz cd nagios-* |
Конфигурируем с указанным параметром:
1 |
./configure --with-command-group=nagcmd |
Компилируем:
1 |
make all |
Устанавливаем Nagios, командный режим, init скрипты, файлы конфигурации по умолчанию и web-интерфейс:
1 2 3 4 5 |
make install make install-commandmode make install-init make install-config make install-webconf |
Установка плагинов Nagios
Скачиваем последнюю версию Nagios Plugins с официального сайта.
1 2 3 4 |
cd /usr/local/src/ wget http://www.nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz tar -xvf nagios-plugins-*.tar.gz cd nagios-plugins-* |
Конфигурируем исходники:
1 |
./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl |
Компилируем:
1 |
make |
Устанавливаем:
1 |
make install |
Nagios установлен, осталось настроить его.
Настройка Nagios
Откройте главный конфигурационный файл Nagios в вашем любимом текстовом редакторе.
1 |
vi /usr/local/nagios/etc/nagios.cfg |
Укажем директорию в которой будут храниться наши файлы конфигурации, находим и раскоментируем строку:
1 |
#cfg_dir=/usr/local/nagios/etc/servers |
ИЛИ для удобства (ну по как по мне) назовём каталог иначе, вместо servers зададим conf.d:
1 |
cfg_dir=/usr/local/nagios/etc/conf.d |
Сохраняемся и выходим.
Теперь, создадим указанную выше директорию:
1 |
mkdir /usr/local/nagios/etc/servers |
ИЛИ
1 |
mkdir /usr/local/nagios/etc/conf.d |
Редактируем файл содержащий список контактов на которые будут отправляться уведомления:
1 |
vi /usr/local/nagios/etc/objects/contacts.cfg |
Прописываем свой email в следующую строку вместо [email protected]:
1 |
email nagios@localhost ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ****** |
Сохраняемся и выходим.
Возможно надо будет создать /usr/local/nagios/var/nagios.lock в котором хранится PID процесса nagios.
Настраиваем Apache
Используем htpasswd для создания пользователя «nagiosadmin» (лучше использовать другое имя), для доступа к web-интерфейсу Nagios:
1 |
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin |
Примечание: необходима поддержка обработки cgi-скриптов. В секции <IfModule mime_module>, файла конфигурации web-сервера httpd.conf, должна быть раскоментирована строка «AddHandler cgi-script .cgi».
Запускаем Nagios и рестартуем Apache:
1 2 |
systemctl start nagios systemctl restart httpd |
Чтобы Nagios запускался автоматически при старте системы нужно выполнить:
1 |
chkconfig nagios on |
!!!ВАЖНО!!! Лучше сразу проверить запускается ли он при старте системы, т.к. иногда он не желает корректно отрабатывать. В этом случае прийдётся редактировать /etc/rc.local.
Если настроен firewall добавляем в исключения:
1 2 |
firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --reload |
Проверка конфигурации на ошибки
После внесения изменений в конфигурацию Nagios очень важно убедиться, что нет никаких проблем, ошибок синтаксиса и программа запустится нормально. Для этого существует команда проверки конфигурации:
1 |
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg |
Эта команда сохранит ваше время и нервы, т.к. умеет, довольно точно, сообщать где именно присутствуют ошибки конфигурации.
Заметки
Если, при управлении через web-интерфейс, появляется ошибка:
Error: Could not stat() command file
Попробуйте отключить SELinux (необходима перезагрузка) или прописать setenforce 0 .
####
Для работы скрипта проверяющего Samba шару нужно установить клиент:
1 |
yum -у install samba-client |
####
При мониторинге с использованием плагинов, которые имеют warning и critical значения, используются параметры команды -c -w, которые ведут себя немного странно.
Вот несколько примеров:
No warning если значение между 0 и 60:
-w 0:60
No critical если значение между 0 и 80
-c 0:80
Или другим иначе:
critical если значение между XXX и 80
-c XXX:80
warning если значение между 80 и 60
-w 80:60
####
Для написания своих плагинов или скриптов мониторинга понадобятся Nagios Exit Codes. Это код возвращаемый от скрипта или плагина, который указывает на результат выполнения скрипта и переводит сервис или хост для Nagios в соответствующее состояние:
0 — OK
1 — WARNING
2 — CRITICAL
3 — UNKNOWN