Система:
# cat /etc/redhat-release CentOS release 6.5 (Final)
Содержание
Установка NGINX + PHP-FPM
Устанавливаем:
# yum install nginx php php-fpm php-common gcc glibc glibc-common gd gd-devel make net-snmp unzip
Выключаем (не удаляем) Apache HTTP:
# service httpd status httpd is stopped # chkconfig httpd off # chkconfig --list httpd httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
Запускаем NGINX:
# service nginx start Starting nginx: [ OK ] # chkconfig nginx on # chkconfig --list nginx nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Открываем порт в IPTABLES:
# iptables -I INPUT 2 -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT # service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
Проверяем:
Установка и настройка Nagios
Важно: у Nagios 3.5 есть проблемы при работе с NGINX. Поэтому – будем устанавливать 4.
Находим тут>>> последнюю версию (на момент написания – это была 4.1), качаем:
# cd /tmp/ # wget http://downloads.sourceforge.net/project/nagios/nagios-4.x/nagios-4.1.0/nagios-4.1.0rc1.tar.gz # tar xfp nagios-4.1.0rc1.tar.gz
Создаём пользователя и группу:
# adduser --system --no-create-home nagios # cat /etc/group | grep nagios nagios:x:497: # cat /etc/shadow | grep nagios nagios:!!:16622::::::
Добавляем пользователя nginx
в группу nagios
:
# usermod -G nagios nginx
Собираем и устанавливаем Nagios:
# cd nagios-4.1.0rc1 # ./configure # make all # make install # make install-init # make install-config # make install-commandmode # make install-webconf
Проверяем файл конфигурации:
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg ... Total Warnings: 0 Total Errors: 0 Things look okay - No serious problems were detected during the pre-flight check
Nagios будет установлен в /usr/local/nagios
:
# ls -l /usr/local/nagios/ total 24 drwxrwxr-x 2 nagios nagios 4096 Jul 6 09:08 bin drwxrwxr-x 3 nagios nagios 4096 Jul 6 09:08 etc drwxrwxr-x 2 nagios nagios 4096 Jul 6 09:08 libexec drwxrwxr-x 2 nagios nagios 4096 Jul 6 09:08 sbin drwxrwxr-x 14 nagios nagios 4096 Jul 6 09:08 share drwxrwxr-x 5 nagios nagios 4096 Jul 6 09:10 var
Устанавливаем плагины:
# yum install nagios-plugins-all
Подключаем плагины:
# rm -rf /usr/local/nagios/libexec # ln -s /usr/lib64/nagios/plugins /usr/local/nagios/libexec # chown -R nagios:nagios /usr/local/nagios/libexec
Запускаем Nagios:
# service nagios start Starting nagios: done.
Добавляем в автозапуск:
# chkconfig --add nagios
Создаём пользователя и пароль для HTTP-авторизации:
# htpasswd -c /usr/local/nagios/passwd nagiosadmin New password: Re-type new password: Adding password for user nagiosadmin
Создаём симлинки (не помню зачем – но без них что-то не работало 🙂 ):
# mkdir /usr/local/nagios/share/nagios # cd /usr/local/nagios/share/nagios/ # ln -s /usr/local/nagios/share/stylesheets/ stylesheets # ln -s /usr/local/nagios/share/js js
# ls -l total 0 lrwxrwxrwx 1 root root 26 Jul 6 09:15 js -> /usr/local/nagios/share/js lrwxrwxrwx 1 root root 36 Jul 6 09:15 stylesheets -> /usr/local/nagios/share/stylesheets/
Настройка PHP-FPM
Создаём файл настроек PHP для Nagios – /etc/php-fpm.d/nagios.conf
:
[nagios] ;listen = 127.0.0.1:9000 listen = /var/run/php-fpm/nagios.socket listen.owner = nginx listen.group = nginx listen.mode=0660 listen.allowed_clients = 127.0.0.1 user = nagios group = nagios pm = dynamic pm.max_children = 50 pm.start_servers = 5 pm.min_spare_servers = 5 pm.max_spare_servers = 35 ;request_slowlog_timeout = 0 slowlog = /var/log/php-fpm/www-slow.log ;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f [email protected] php_flag[display_errors] = on php_admin_value[error_log] = /var/log/php-fpm/nagios-error.log php_admin_flag[log_errors] = on ;php_admin_value[memory_limit] = 128M php_value[session.save_handler] = files php_value[session.save_path] = /var/lib/php/session
Запускаем и проверяем:
# service php-fpm start Starting php-fpm: [ OK ]
# chkconfig php-fpm on
# file /var/run/php-fpm/nagios.socket /var/run/php-fpm/nagios.socket: socket
Установка spawn-fcgi и fcgiwrap
Т.к. fciwrap
в репозиториях нет – устанавливаем вручную:
# yum groupinstall 'Development Tools' # yum install fcgi-devel spawn-fcgi
Загружаем и собираем его:
# cd /usr/local/src/ # git clone git://github.com/gnosek/fcgiwrap.git # cd fcgiwrap # autoreconf -i # ./configure # make # make install
Проверяем:
# file /usr/local/sbin/fcgiwrap /usr/local/sbin/fcgiwrap: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped
Редактируем файл /etc/sysconfig/spawn-fcgi
и приводим его к такому виду:
FCGI_SOCKET=/var/run/fcgiwrap.socket FCGI_PROGRAM=/usr/local/sbin/fcgiwrap FCGI_USER=nginx FCGI_GROUP=nginx FCGI_EXTRA_OPTIONS="-M 0700" OPTIONS="-u $FCGI_USER -g $FCGI_GROUP -s $FCGI_SOCKET -S $FCGI_EXTRA_OPTIONS -F 1 -P /var/run/spawn-fcgi.pid -- $FCGI_PROGRAM"
Запускаем его:
# service spawn-fcgi start Starting spawn-fcgi: [ OK ]
# chkconfig spawn-fcgi on
Проверяем, что бы появился файл сокета:
# file /var/run/fcgiwrap.socket /var/run/fcgiwrap.socket: socket
Настройка NGINX
Создаём файл /etc/nginx/conf.d/nagios.conf
:
server { listen 80; server_name 52.***.***.174; access_log /var/log/nginx/nagios-access.log; error_log /var/log/nginx/nagios-error.log info; root /usr/local/nagios/share; index index.php; auth_basic "Nagios Restricted Access"; auth_basic_user_file /usr/local/nagios/passwd; location /stylesheets { alias /usr/local/nagios/share/stylesheets; } location ~ .cgi$ { root /usr/local/nagios/sbin/; include fastcgi_params; rewrite ^/nagios/cgi-bin/(.*).cgi /$1.cgi break; fastcgi_param AUTH_USER $remote_user; fastcgi_param REMOTE_USER $remote_user; fastcgi_pass unix:/var/run/fcgiwrap.socket; fastcgi_param SCRIPT_FILENAME /usr/local/nagios/sbin/$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_script_name; } location ~ .php$ { include fastcgi_params; fastcgi_pass unix:/var/run/php-fpm/nagios.socket; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/local/nagios/share$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_script_name; } location ~ (.*.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf))$ { root /usr/local/nagios/share/; rewrite ^/nagios/(.*) /$1 break; access_log off; expires max; } }
Убираем файл /etc/nginx/conf.d/default.conf
:
# mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/conf.d/default.conf.bkp
Проверяем, и перезапускаем:
# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
# service nginx restart Stopping nginx: [ OK ] Starting nginx: [ OK ]