Установка Zabbix (NGINX + PHP + MariaDB) в Ubuntu 18.04


0. Предварительные настройки системы

Переключитесь на root пользователя (все нижеследующие команды выполнять под root):
sudo -i
(Дополнительно) Настройте часовой пояс:
timedatectl set-timezone Europe/Moscow
Обновите систему:
apt update && apt dist-upgrade -y
Перезагрузите сервер:
reboot

1. Установка и настройка MariaDB

(Дополнительно) Добавьте официальный репозиторий для MariaDB (в данной статье 10.3) https://downloads.mariadb.org/mariadb/repositories:
apt install software-properties-common dirmngr gpg-agent
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirror.timeweb.ru/mariadb/repo/10.3/ubuntu bionic main'
Установите сервер MariaDB:
apt update
apt install mariadb-server
Настройте MariaDB (необходимо изменить пароль для root пользователя, остальное можно оставить по умолчанию):
mysql_secure_installation
 Создайте базу данных для Zabbix:
mysql -u root -p
mysql> CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
mysql> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;
mysql> QUIT;

2. Установка и настройка PHP

(Дополнительно) Добавьте репозиторий для новых версий PHP:
add-apt-repository ppa:ondrej/php
apt update
Установите PHP-FPM:
apt install php7.2 php7.2-common php7.2-cli php7.2-fpm php7.2-gd php7.2-mysql php7.2-mbstring php7.2-curl php7.2-xml php7.2-xmlrpc php7.2-zip php7.2-json php7.2-opcache php7.2-readline php7.2-imap php7.2-intl php7.2-ldap php-apcu
Так как далее будет отредактирован файл /etc/zabbix/php-fpm.conf, нижеследующие действия выполнять не нужно (оставил для примера).

Отредактируйте php.ini:
nano /etc/php/7.2/fpm/php.ini
Измените нижеследующие параметры:
cgi.fix_pathinfo = 0
date.timezone = Europe/Moscow
max_execution_time = 300
post_max_size = 16M
max_input_time = 300
Перезапустите php-fpm:
systemctl restart php7.2-fpm.service

3. Установка и настройка NGINX

(Дополнительно) Добавьте репозиторий для новых Stable версий NGINX:
add-apt-repository ppa:ondrej/nginx
apt update
Или для новых Mainline версий NGINX (т.к. это самый свежий релиз могут возникнуть разного рода проблемы, для надёжности рекомендую использовать Stable версию):
add-apt-repository ppa:ondrej/nginx-mainline
apt update
Установите NGINX:
apt install nginx
Запуск и автозагрузка NGINX:
systemctl start nginx
systemctl enable nginx
Удалите ссылку на конфигурационный файл по умолчанию:
rm /etc/nginx/sites-enabled/default
Перезапустите NGINX:
nginx -s reload
Так как далее будет установлен пакет zabbix-nginx-conf (конфиг для 4.4), нижеследующие действия выполнять не нужно (оставил для примера).

Создайте конфигурационный файл для Zabbix:
nano /etc/nginx/sites-available/zabbix.conf
Необходимо заполнить нижеследующее:
server {
    listen 80;

    server_name localhost;

    root /usr/share/zabbix;

    charset utf-8;

    access_log  /var/log/nginx/access_zabbix.log;
    error_log  /var/log/nginx/error_zabbix.log;

    location / {
     index index.php index.html index.htm;
    }

    location ~ \.php$ {
     fastcgi_pass unix:/run/php/php7.2-fpm.sock;
     fastcgi_index index.php;
     fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
     include fastcgi_params;
    }

    # Запрет доступа к .htaccess файлам, нужно если корневая директория Apache
    # совпадает с корневой директория NGINX
    location ~ /\.ht {
     deny  all;
    }

    # Запрет доступа к файлам Zabbix
    location ~* /(?:api|conf|include)/ {
     return 301 $server_name/index.php;
    }
}
Активируйте конфигурацию:
ln -s /etc/nginx/sites-available/zabbix.conf /etc/nginx/sites-enabled/
Проверьте конфигурационный файл:
nginx -t
Результат должен быть такой:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Перезапустите NGINX:
nginx -s reload

4. Установка и настройка Zabbix

Добавьте официальный репозиторий Zabbix (в данном случае 4.4, https://www.zabbix.com/ru/download):
cd /tmp && wget https://repo.zabbix.com/zabbix/4.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.4-1+bionic_all.deb
dpkg -i zabbix-release_4.4-1+bionic_all.deb
apt update
Установите Zabbix сервер, веб-интерфейс и агент (агент на сервере нужен для мониторинга собственного состояния):
apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-agent -y
Импортируйте начальные схемы в выше созданную базу данных для Zabbix (пароль password):
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -u zabbix -p zabbix
Проверьте использование NGINX в качестве веб-сервера:
netstat -tulnp | grep 80
Должен быть подобный результат:
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      17075/nginx: master
tcp6       0      0 :::80                   :::*                    LISTEN      17075/nginx: master 
Отредактируйте конфигурационный файл:
nano /etc/zabbix/nginx.conf
Раскомментируйте (удалите "решетки") и настройте директивы 'listen' и 'server_name' (например, example.com можно заменить на localhost);
# listen 80;
# server_name example.com;
Отредактируйте конфигурационный файл php-fpm.conf:
nano /etc/zabbix/php-fpm.conf
Раскомментируйте строку и укажите свой часовой пояс:
php_value[date.timezone] = Europe/Moscow
Отредактируйте конфигурационный файла Zabbix:
nano /etc/zabbix/zabbix_server.conf
Измените или добавьте следующее:
DBName=zabbix
DBUser=zabbix
DBPassword=password
Запуск и автозагрузка Zabbix, nginx и php-fpm:
systemctl restart zabbix-server zabbix-agent nginx php7.2-fpm
systemctl enable zabbix-server zabbix-agent nginx php7.2-fpm
Проверка запуска Zabbix сервера:
netstat -tulnp | grep zabbix_server
Должен быть подобный результат:
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      18049/zabbix_server
tcp6       0      0 :::10051                :::*                    LISTEN      18049/zabbix_server
Перейдите по адресу http://IP_адрес_сервера:80 и проверьте, чтобы все пункты были OK. Далее настройте подключение к базе данных и дополнительное описание сервера (можно всё оставить по умолчанию).

Данные для входа (рекомендую изменить пароль после первого входа):
Логин - Admin
Пароль - zabbix

Поздравляю, Zabbix успешно установлен.

Комментариев нет

Отправить комментарий