Установка Zabbix 3 на nginx + php-fpm

Понадобилось настроить работу сервера мониторинга Zabbix на web-сервере с nginx + php-fpm. По-умолчанию zabbix рассчитан на работу с apache, настройки есть только под него. Пришлось некоторое время повозиться, пока не разобрался со всеми необходимыми параметрами, чтобы все корректно заработало. Хочу поделиться своими наработками, так как в сети готовый вариант мне не попался, разбирался сам.

Введение

Я обычно под Zabbix выделяю отдельный сервер и ставлю там по-умолчанию apache, чтобы не заморачиваться. В этот раз понадобилось поднять заббикс на уже готовом веб сервере, который крутится на связке nginx + php-fpm на centos 7, настроенной примерно так же, как в указанной статье.

Ничего сложного тут нет, но с конфигурацией виртуального хоста nginx пришлось немного повозиться, перебирая некоторые настройки и подправляя синтаксис. Поделюсь своими настройками с вами, чтобы не пришлось лишний раз разбираться.

Создаем виртуальный хост в nginx для zabbix

У меня заббикс будет работать на отдельном виртуальном хосте. Для примера будем считать, что имя этого виртуального хоста будет zabbix.site.ru. Веб сервер уже полностью настроен по приведенной выше статье и готов к работе.

Для начала сделаю небольшую пометку. В моей статье про настройку веб сервера все виртуальные хосты описаны в основном файле конфигурации nginx.conf. Это не очень удобно, но статью уже не хочется переделывать. Сейчас мы вынесем настройки хоста для заббикса в отдельный конфигурационный файл в папку /etc/nginx/conf.d.

Для этого в файл nginx.conf в секцию с настройками http нужно добавить строку:

include  /etc/nginx/conf.d/*.conf

Теперь все файлы из этой папки с расширением .conf будут подключаться к основной конфигурации. Создаем в этой папке файл конфигурации виртуального хоста для zabbix следующего содержания:

# mcedit /etc/nginx/conf.d/zabbix.conf

server {

listen 80;



root /usr/share/zabbix;

access_log /var/log/nginx/zabbix.access.log;

server_name zabbix.site.ru;



location / {

index index.php index.html index.htm;

}



location ~ .php$ {

fastcgi_pass unix:/var/run/php-fpm/php5-fpm.sock;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

fastcgi_param PHP_VALUE "

max_execution_time = 300

memory_limit = 128M

post_max_size = 16M

upload_max_filesize = 2M

max_input_time = 300

date.timezone = Europe/Moscow

always_populate_raw_post_data = -1

";

fastcgi_buffers 8 256k;

fastcgi_buffer_size 128k;

fastcgi_intercept_errors on;

fastcgi_busy_buffers_size 256k;

fastcgi_temp_file_write_size 256k;

}

}

Обращаю внимание, что у меня nginx работает с php-fpm через сокет. Если у вас по tcp порту, то ставьте

fastcgi_pass 127.0.0.1:9000;

Сохраняете файл и проверяете конфигурацию на ошибки:

# nginx -t

Если все ОК, то дальше можно приступать к установке zabbix 3.0 как рассказано у меня в статье. Все этапы в точности совпадают, кроме настройки httpd. Его можно не ставить, пропустить все, что его касается. Параметры для php мы уже задали в свойствах виртуального хоста.

Редактируем права доступа к каталогам

После того, как вы выполните все предварительные действия, установите пакеты с заббиксом из репозитория, и будете готовы перейти по адресу виртуального хоста в браузере для продолжения установки через web интерфейс, вам нужно будет внести некоторые изменения в конфигурационные файлы.

Дело в том, что zabbix рассчитан на работу с apache и поэтому владельцем некоторых файлов устанавливается он. Как вариант, можно запустить nginx от пользователя apache, но мне кажется более правильным изменить права доступа к файлам. Нужно сделать владельцем самих исходников web панели и папки с конфигурацией пользователя nginx.

# chown -R nginx. /etc/zabbix/web

# chown -R nginx. /usr/share/zabbix

После этого можно заходить по адресу http://zabbix.site.ru и приступать к установке. Если не изменить права доступа, то в логах вы увидите ошибки:

PHP message: PHP Fatal error:  require_once(): Failed opening required '/etc/zabbix/web/maintenance.inc.php' (include_path='.:/usr/share/pear:/usr/share/php') in /usr/share/zabbix/include/classes/core/ZBase.php on line 286" while reading response header from upstream, client: 109.188.124.35, server: zabbix.site.ru, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm/php5-fpm.sock:", host: "zabbix.site.ru"

Заключение

Подведем итог. Чтобы установить zabbix на веб сервер с nginx + php-fpm нужно воспользоваться моей статьей по настройке веб сервера. После этого создать виртуальный хост для заббикс из этой статьи. Когда это сделаете, открываете статью по установке zabbix на centos, делаете все по ней, только пропускаете установку и настройку httpd. Доходите до момента, где нужно переходить по веб адресу для продолжения установки и меняете права доступа на каталоги. Потом продолжаете установку и настройку.

Помогла статья? Подписывайся на telegram канал автора


Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Дополнительные материалы по Zabbix










Рекомендую полезные материалы по Zabbix:
Настройки системы


  • Установка 4.0
  • Обновление 3.0 -> 3.2
  • Обновление 3.4 -> 4.0
  • Установка Zabbix Proxy
  • Работа на NGINX


Видео и подробное описание установки и настройки Zabbix 4.0, а также установка агентов на linux и windows и подключение их к мониторингу.



Подробное описание обновления системы мониторинга zabbix версии 3.4 до новой версии 4.0.



Пошаговая процедура обновления сервера мониторинга zabbix 2.4 до 3.0. Подробное описание каждого шага с пояснениями и рекомендациями.



Подробное описание установки и настройки zabbix proxy для организации распределенной системы мониторинга. Все показано на примерах.



Подробное описание установки системы мониторинга Zabbix на веб сервер на базе nginx + php-fpm.


Мониторинг служб и сервисов
 

  • Температура процессора
  • Nginx и php-fpm
  • Mysql репликация
  • Службы Linux
  • Рейд mdadm
  • Транки Asterisk
  • Synology


Мониторинг температуры процессора с помощью zabbix на Windows сервере с использованием пользовательских скриптов.



Настройка полноценного мониторинга web сервера nginx и php-fpm в zabbix с помощью скриптов и пользовательских параметров.



Мониторинг репликации mysql с помощью Zabbix. Подробный разбор методики и тестирование работы.



Описание настройки мониторинга tcp служб с помощью zabbix и его инструмента простых проверок (simple checks)



Настройка мониторинга рейда mdadm с помощью zabbix. Подробное пояснение принципа работы и пошаговая инструкция.



Подробное описание мониторинга регистраций транков (trunk) в asterisk с помощью сервера мониторинга zabbix.



Подробная инструкция со скриншотами по настройке мониторинга по snmp дискового хранилища synology с помощью сервера мониторинга zabbix.


Мониторинг различных значений


  • Мониторинг сайта
  • Мониторинг бэкапов
  • Размер бэкапа
  • Делегирование домена
  • Значения из текстового файла
  • Мониторинг логов


Настройка мониторинга web сайта в zabbix. Параметры для наблюдения — доступность сайта, время отклика, скорость доступа к сайту.



Один из способов мониторинга бэкапов с помощью zabbix через проверку даты последнего изменения файла из архивной копии с помощью vfs.file.time.



Подробное описание настройки мониторинга размера бэкапов в Zabbix с помощью внешних скриптов.



Пример настройки мониторинга за временем делегирования домена с помощью Zabbix и внешнего скрипта. Все скрипты и готовый шаблон представлены.




Описание мониторинга лог файлов в zabbix на примере анализа лога программы apcupsd. Отправка оповещений по событиям из лога.












2016-07-18T12:26:41
Zabbix