Идея в том, чтоб настроить веб-интерфейс 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/