Debian. Установка и настройка мониторинга Nagios

В предыдущей статье я рассказывал как установить и настроить Nagios 3 под FreeBSD, но так как есть небольшие отличия для Debian, я решил описать их. В основном они связаны с установкой и настройкой php/cgi, а не настройками самого Nagios.
Предполагается, что у вас уже установлены git, nginx и wget.
А также какой-либо текстовой редактор, например emacs.
Обсуждаемая версия Nagios 3.2.1.
Установка
Нам надо установить "Nagios 3", "php5-fpm" и "fcgiwrap":
sudo apt-get update && apt-get upgrade sudo apt-get install nagios3 php5-fpm
Не так давно я уже рассказывал как установить свежую версию fcgiwrap для Debian, в которой есть необходимые нам возможности:
sudo apt-get install libfcgi-dev autoconf2.13 cd ~/Downloads git clone git://github.com/gnosek/fcgiwrap.git fcgiwrap cd fcgiwrap autoreconf -i ./configure make sudo make install
Настройка fcgiwrap
После того как установили fcgiwrap, скопируйте себе init-скрипт и создайте каталог для unix-socket:
wget -O /etc/init.d/fcgiwrap mkdir /var/run/fcgiwrap chown www-data:www-data /var/run/fcgiwrap/
Откройте на редактирование /etc/init.d/fcgiwrap, найдите FCGI_SOCKET и отредактируйте его:
FCGI_SOCKET="/var/run/$NAME/$NAME.socket" #FCGI_PORT="8088" #FCGI_ADDR="127.0.0.1"
Запустите его:
sudo /etc/init.d/fcgiwrap start
Настройка php5-fpm
Мой конфиг /etc/php5/fpm/pool.d/www.conf выглядил так:
[www] user = www-data group = www-data listen = /var/run/php5/fpm.sock; listen.owner = www-data listen.group = www-data listen.mode = 0666 ...
Запустите его:
sudo /etc/init.d/php5-fpm start
Настройка Nagios
Откройте на редактирование файл /etc/nagios3/cgi.cfg и найдите строку с "url_html_path", замените её на:
url_html_path=/
В остальном все конфиги идентичны тем, о которых я писал в предыдущей статье, главное помнить, что команды храняться в каталоге /etc/nagios-plugins/config/ и для добавления своих команд вы можете редактировать существующие файлы *.cfg или создавать свои.
/etc/nagios-plugins/config ├── apt.cfg ├── breeze.cfg ├── dhcp.cfg ├── disk.cfg ├── disk-smb.cfg ├── dns.cfg ├── dummy.cfg ├── flexlm.cfg ├── fping.cfg ├── ftp.cfg ├── games.cfg ├── hppjd.cfg ├── http.cfg ├── ifstatus.cfg ├── ldap.cfg ├── load.cfg ├── mail.cfg ├── mailq.cfg ├── mrtg.cfg ├── mysql.cfg ├── netware.cfg ├── news.cfg ├── nt.cfg ├── ntp.cfg ├── pgsql.cfg ├── ping.cfg ├── procs.cfg ├── radius.cfg ├── real.cfg ├── rpc-nfs.cfg ├── snmp.cfg ├── ssh.cfg ├── tcp_udp.cfg ├── telnet.cfg └── users.cfg
Команды для оповещений (например для sms) надо определять в файле /etc/nagios3/commands.cfg.
/etc/nagios3 ├── cgi.cfg ├── commands.cfg ├── conf.d │ ├── contacts_nagios2.cfg │ ├── extinfo_nagios2.cfg │ ├── generic-host_nagios2.cfg │ ├── generic-service_nagios2.cfg │ ├── hostgroups_nagios2.cfg │ ├── localhost_nagios2.cfg │ ├── services_nagios2.cfg │ └── timeperiods_nagios2.cfg ├── htpasswd.users ├── nagios.cfg └── resource.cfg
Для настройки контактов, сервисов, хостов, и групп для всего этого, надо использовать каталог /etc/nagios3/conf.d, но я думаю вы и сами разберетесь.
Теперь запустите Nagios:
sudo /etc/init.d/nagios3 start
Настройка Nginx
Для того, чтобы проксировать веб-интерфейс Nagios через Nginx мы должны создать новый конфиг /etc/nginx/sites-available/nagios.conf:
server { listen 80; server_name nagios.example.org; auth_basic "Password, please!"; auth_basic_user_file /path/to/htpasswd; root /usr/share/nagios3/htdocs; index index.php index.html; location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/var/run/php5/fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location /stylesheets/ { alias /etc/nagios3/stylesheets/; } location ~ ^/cgi-bin/nagios3/.+\.cgi$ { rewrite ^/cgi-bin/nagios3/(.+\.cgi)$ /$1 break; root /usr/lib/cgi-bin/nagios3; include fastcgi_params; fastcgi_pass unix:/var/run/fcgiwrap.socket; # У нас свой htpasswd файл, в котором нет пользователя "nagiosadmin", но так как мы доверяем своему файлу, # то подменяем $remote_user с нашим пользователем на "nagiosadmin" чтобы Nagios не паниковал: fastcgi_param AUTH_USER "nagiosadmin"; fastcgi_param REMOTE_USER "nagiosadmin"; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
Не забываем сгенерировать htpasswd:
# Создаем новый htpasswd -cmb /path/to/htpasswd <username> <password> # Или обновляем существующий htpasswd -mb /path/to/htpasswd <username> <password>
Делаем симлинк на конфиг и перезагружаем Nginx:
sudo ln -s /etc/nginx/sites-available/nagios.conf /etc/nginx/sites-enabled/nagios.conf sudo nginx -s reload
Что почитать?
- FreeBSD. Установка и настройка мониторинга Nagios
- Nagios. Отправка смс через сервис LittleSMS
- How to serve nagios with nginx - A guide to configuring nginx for serving Nagios3 on Ubuntu 11.10 using fcgiwrap and php-fpm
- Вызов удаленных команд для Nagios с помощью NRPE
- Nagios. Частые проблемы с использование NRPE
Комментарии
Совет создать директорию для fcgiwrap.sock помог. Иначе файл создавался в /var/run с правами root:root, и Nagios выдавал ошибку 502. Bad gateway. Правда, когда я создавал директорию fcgiwrap в /var/run, при перезапуске системы она удалялась, поэтому создал ее прямо в /var, присвоил ей владельца www-data:www-data, и все заработало. Спасибо!
Оставьте свой комментарий