Система мониторинга Zabbix, а точнее, её веб-интерфейс идёт в комплекте с конфигурационным файлом для веб-сервера Apache.
Для Nginx же в интернете есть множество инструкций, ни одна из которых полноценно у меня не завелась.
В связи с этим была разработана своя конфигурация Nginx, которой я здесь и поделюсь.
1. Установим zabbix по инструкции на официальном сайте https://www.zabbix.com/documentation/3.4/manual/installation/getting_zabbix, где, среди прочего, есть вариант установки zabbix через «apt-get install zabbix», при этом, Apache ставить не нужно!
2. Установим Nginx:
# apt-get install nginx |
3. Создадим конфигурационный файл в /etc/nginx/sites-enabled/zabbix.conf с контентом:
(подразумевается, что домен будет называться zabbix.mihanentalpo.me, разумеется, у вас он будет другой)
server { #имя сервера server_name zabbix.mihanentalpo.me; #Используем HTTP (пока, скоро перейдём на HTTPS) listen *:80; #Корень такой, потому что zabbix лежит в /usr/share/zabbix, а открывается он только по адресу /zabbix root /usr/share; # Логи error_log /var/log/nginx/zabbix-error.log; access_log /var/log/nginx/zabbix-access.log; # Этот блок для получения SSL-сертификата Letsencrypt location ~ /.well-known { location ~ /.well-known/acme-challenge/(.*) { default_type "text/plain"; root /var/www/letsencrypt; } } # Запретим доступ к скрытым файлам location ~ /\. { deny all; access_log off; log_not_found off; } # При входе по адресу / перенаправляем в адрес /zabbix - только он и должен работать location / { return 301 http://$host/zabbix; } # Главная локация - всё что в папке /zabbix location ~ ^/zabbix/(.+)? { index index.php; # Все файлы *.php в этом location обрабатываются через php-fpm location ~ ^/zabbix/.*\.php(.*)$ { index index.php; # Файл сокета, где будет слушать php-fpm fastcgi_pass unix:/var/run/php5-fpm-zabbix.sock; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_index index.php; include fastcgi_params; } } }
4. Создадим конфигурационный файл для PHP-FPM /etc/php5/fpm/pool.d/zabbix.conf.
Файл создан на базе стандартного файла /etc/php5/fpm/pool.d/www.conf, стандартные комментарии удалены:
[zabbix] ; Пользователь и группа user = zabbix group = www-data ; Файл сокета listen = /var/run/php5-fpm-zabbix.sock ; Пользователь и группа владельца сокета listen.owner = zabbix listen.group = www-data ; Права доступа listen.mode = 0660 ; Менеджер процессов pm = dynamic ; Настройки менеджера процессов pm.max_children = 5 pm.start_servers = 1 pm.min_spare_servers = 1 pm.max_spare_servers = 3 pm.max_requests = 600 ; Ограничиваем расширения только php-файлами security.limit_extensions = .php
5. Перезапустим nginx и php-fpm
service nginx restart service php5-fpm restart |
6. Убедимся что интерфейс открывается по адресу http://zabbix.mihanentalpo.me/zabbix (подставить ваш хост)
7. Теперь получим для вашего хоста SSL-сертификат, чтобы можно было открывать интерфейс по протоколу HTTPS, чем обеспечить невозможность подслушивать ваш сетевой трафик с интерфейсом, в моменты, когда вы пользуетесь им из общедоступных сетей (например через WiFi в кафе) Действовать будем по методу, описанному здесь
8. После получения сертификата нужно изменить конфигурационный файл nginx таким образом, чтобы он мог работать по HTTPS-протоколу:
server { # Слушаем 80-й порт чтобы перенаправить пользователя на HTTPS listen *:80; server_name zabbix.mihanentalpo.me; # Перенаправляем на https return 301 https://$server_name$request_uri; } server { #имя сервера server_name zabbix.mihanentalpo.me; #Используем HTTPS listen *:443 ssl; #Настраиваем SSL: ssl on; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_certificate /etc/letsencrypt/live/mihanentalpo.me/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/mihanentalpo.me/privkey.pem; #Корень такой, потому что zabbix лежит в /usr/share/zabbix, а открывается он только по адресу /zabbix root /usr/share; # Логи error_log /var/log/nginx/zabbix-error.log; access_log /var/log/nginx/zabbix-access.log; # Этот блок для получения SSL-сертификата Letsencrypt location ~ /.well-known { location ~ /.well-known/acme-challenge/(.*) { default_type "text/plain"; root /var/www/letsencrypt; } } # Запретим доступ к скрытым файлам location ~ /\. { deny all; access_log off; log_not_found off; } # При входе по адресу / перенаправляем в адрес /zabbix - только он и должен работать location / { return 301 http://$host/zabbix; } # Главная локация - всё что в папке /zabbix location ~ ^/zabbix/(.+)? { index index.php; # Все файлы *.php в этом location обрабатываются через php-fpm location ~ ^/zabbix/.*\.php(.*)$ { index index.php; # Файл сокета, где будет слушать php-fpm fastcgi_pass unix:/var/run/php5-fpm-zabbix.sock; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_index index.php; include fastcgi_params; } } }
Оставить комментарий