В предыдущей статье я рассказывал как установить и настроить Nagios 3 под FreeBSD, но так как есть небольшие отличия для Debian, я решил описать их. В основном они связаны с установкой и настройкой php/cgi, а не настройками самого Nagios.
Предполагается, что у вас уже установлены git, nginx и wget.
А также какой-либо текстовой редактор, например emacs.
Обсуждаемая версия Nagios 3.2.1.
Установка
Нам надо установить "Nagios 3", "php5-fpm" и "fcgiwrap":
Не так давно я уже рассказывал как установить свежую версию 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:
[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/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>
Совет создать директорию для fcgiwrap.sock помог. Иначе файл создавался в /var/run с правами root:root, и Nagios выдавал ошибку 502. Bad gateway. Правда, когда я создавал директорию fcgiwrap в /var/run, при перезапуске системы она удалялась, поэтому создал ее прямо в /var, присвоил ей владельца www-data:www-data, и все заработало. Спасибо!
Комментарии
Совет создать директорию для fcgiwrap.sock помог. Иначе файл создавался в /var/run с правами root:root, и Nagios выдавал ошибку 502. Bad gateway. Правда, когда я создавал директорию fcgiwrap в /var/run, при перезапуске системы она удалялась, поэтому создал ее прямо в /var, присвоил ей владельца www-data:www-data, и все заработало. Спасибо!
Оставьте свой комментарий