Идея в том, чтоб настроить веб-интерфейс zabbix 3 на nginx и php-fpm на одном сервере, а zabbix-server на другом.
Настраиваем веб-сервер
Ставим nginx
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm yum install nginx systemctl start nginx systemctl enable nginx
Конфиг nginx
vim /etc/nginx/conf.d/zabbix.conf
server { listen 80; root /usr/share/zabbix; access_log /var/log/nginx/zabbix.access.log; server_name 172.16.16.10; location / { index index.php index.html index.htm; } location ~ \.php$ { #fastcgi_pass 127.0.0.1:9000; fastcgi_pass unix:/var/run/php-fpm/php-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; } client_max_body_size 32m; }
Обращаю внимание, что у меня nginx работает с php-fpm через сокет. Если у вас по tcp порту, то ставьте
fastcgi_pass 127.0.0.1:9000;
Открываем 80, 443 порты
firewall-cmd --add-service=http --permanent firewall-cmd --add-service=https --permanent firewall-cmd --reload
Ставим php-fpm
rpm -ivh http://rpms.remirepo.net/enterprise/remi-release-7.rpm yum install epel-release yum-utils yum-config-manager --enable remi-php71 yum install php71 yum install php-fpm php-cli php-mysql php-gd php-ldap php-odbc php-pdo php-pecl-memcache php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap systemctl start php-fpm systemctl enable php-fpm
Настроим php-fpm
yum install net-tools netstat -tulpn | grep php-fpm
Все в порядке, повис на порту 9000. Запустим его через unix сокет. Для этого открываем конфиг /etc/php-fpm.d/www.conf и комментируем строку:
vim /etc/php-fpm.d/www.conf ;listen = 127.0.0.1:9000
Вместо нее добавляем несколько других:
listen = /var/run/php-fpm/php-fpm.sock listen.mode = 0660 listen.owner = nginx listen.group = nginx
Заодно измените пользователя, от которого будет работать php-fpm. Вместо apache укажите nginx
user = nginx group = nginx
Ставим zabbix
rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm yum install zabbix-web-mysql
Настроим selinux
Дадим права на подключение к удаленной базе mysql
getsebool -a | grep httpd_can_network_connect_db setsebool -P httpd_can_network_connect_db 1
Дадим возможность вебморде подключаться к серверной части
getsebool -a | grep zabbix setsebool -P httpd_can_connect_zabbix 1
Настроим права
chown -R nginx. /etc/zabbix/web chown -R nginx. /usr/share/zabbix
Дабы не получать ошибку
PHP message: PHP Fatal error: Uncaught Exception: Cannot start session. in /usr/share/zabbix/include/classes/core/CSession.php:50
в /etc/php-fpm.d/www.conf ищем строку
php_value[session.save_path] = /var/lib/php/session
И выставляем полные права на директорию /var/lib/php/session
chmod 770 /var/lib/php/session chown :nginx /var/lib/php/session systemctl restart php-fpm
Перезапускаем nginx
systemctl restart nginx.service
Настраиваем второй сервер
Ставим mariadb
yum install mariadb-server mariadb-devel systemctl enable mariadb.service systemctl start mariadb.service
Создадим базу и дадим права
create database zabbix; grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'пароль'; grant all privileges on zabbix.* to 'zabbix'@'172.16.16.10' identified by 'пароль'; flush privileges;
где 172.16.16.10 — ip адрес веб-сервера
Ставим zabbix-сервер
rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm yum install zabbix-server-mysql zabbix-agent
Указываем пароль базы
vim /etc/zabbix/zabbix_server.conf DBPassword=пароль
Запускаем
systemctl start zabbix-server.service systemctl enable zabbix-server.service systemctl start zabbix-agent.service systemctl enable zabbix-agent.service
Откроем порт mysql
firewall-cmd --add-service=mysql --permanent firewall-cmd --reload
Открываем порты 10051, 10050, snmp
firewall-cmd --permanent --new-service=zabbix firewall-cmd --service=zabbix --add-port=10051/tcp --permanent firewall-cmd --service=zabbix --add-port=10050/tcp --permanent firewall-cmd --add-service=zabbix --permanent firewall-cmd --add-service=snmp --permanent firewall-cmd --reload
По мотивам:
https://serveradmin.ru/ustanovka-i-nastroyka-nginx-php-fpm-php7-1-na-centos-7/
https://serveradmin.ru/ustanovka-zabbix-3-na-nginx-php-fpm/