
Сервер Zabbix является средством сбора и анализа информации о состоянии оборудования в сети. В данной статье мы рассмотрим процесс его установки и развертывания веб-интерфейса для его управления. В качестве сервера баз данных мы будем использовать MySQL 8.4.
Подготовка сервера
Будем считать что у вас уже есть готовый сервер с установленной на него OS Linux CentOS 9 Stream. Перед установкой Zabbix выполняем некоторые подготовительные процедуры.
1. Правильное время
Для получения актуальной информации необходимо, чтобы на сервере было правильное время.
Для этого сначала задаем правильную временную зону:
1 | \ cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime |
* в данном примере задается московское время.
Затем устанавливаем и запускаем сервис синхронизации времени:
1 2 3 | sudo dnf install chrony systemctl enable chronyd systemctl start chronyd |
2. Настройка брандмауэра
Для работы сервера, открываем следующие порты:
1 2 | firewall-cmd --permanent --add-port={80 /tcp ,443 /tcp ,10051 /tcp ,10050 /tcp ,10050 /udp ,10051 /udp } firewall-cmd --reload |
* где 80 — порт для http запросов (веб-интерфейс); 443 — для https запросов (веб-интерфейс); 10050 — порты для получения информации от zabbix агентов.
3. SELinux
В данной инструкции выполняется установка Zabbix на сервере с отключенным SELinux.
Для отключения SELinux вводим две команды:
1 2 | setenforce 0 sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config |
Установка MySQL 8.4
Вам необходимо загрузить пакет репозитория MySQL из официального репозитория MySQL. Используйте следующие команды для загрузки и установки пакета репозитория:
1 | sudo dnf install -y http: //repo .mysql.com /mysql84-community-release-el9-1 .noarch.rpm |
После установки пакета репозитория включите репозиторий MySQL 8.4 с помощью следующей команды:
1 | sudo dnf module enable mysql:8.4 |
Теперь вы можете установить MySQL 8.4 с помощью следующей команды:
1 | sudo dnf install mysql-server |
Запустите службу MySQL
1 2 | sudo systemctl start mysqld sudo systemctl enable mysqld |
Задаем root пароль
1 | mysql |
Выполните следующий запрос, заменив слово «пароль» на нужное вам значение:
1 | ALTER USER 'root' @ 'localhost' IDENTIFIED BY 'пароль' ; |
Примените изменения:
1 | FLUSH PRIVILEGES ; |
Выйдите из консоли MySQL командой:
1 | quit; |
Восстановление пароля
Всякое бывает и поэтому тоже напишу это здесь, может кому и понадобится, останавливаем MySQL следующей командой:
1 | sudo systemctl stop mysqld |
Отредактируйте файл /etc/my.cnf
, чтобы запустить службу без проверки прав доступа.
В секцию [mysqld]
добавьте следующую строку:
1 | skip-grant-tables |
Должно получиться примерно так:

Сохраните изменения и запустите MySQL сервер
1 | sudo systemctl start mysqld |
Снова откройте файл /etc/my.cnf
и удалите добавленную строку. Сохраните изменения.
Подключитесь к MySQL как root без пароля:
1 | mysql |
Выберите активную БД:
1 | use mysql; |
Перезагрузите таблицы привилегий:
1 | FLUSH PRIVILEGES ; |
Обновите пароль:
1 | ALTER USER 'root' @ 'localhost' IDENTIFIED WITH mysql_native_password BY 'ваш_новый_пароль' ; |
Примените изменения:
1 | FLUSH PRIVILEGES ; |
Выйдите из MySQL и перезагрузите службу в обычном режиме:
1 | sudo systemctl restart mysqld |
Веб-сервер
Для наших целей будем использовать веб-сервер NGINX.
Для его установки необходимо добавить новый репозиторий:
1 | sudo dnf install epel-release |
Теперь вводим команду:
1 | sudo dnf install nginx |
Запускаем nginx и добавляем его автозапуск:
1 2 | systemctl start nginx systemctl enable nginx |
Открываем веб-браузер и переходим по ссылке http://<IP-адрес сервера>/ — мы должны увидеть окно приветствия:
PHP и PHP-FPM
Интерфейс zabbix разработан на PHP — наш веб-сервер должен обрабатывать скрипы, написанные на нем. Очень важно установить подходящую версию PHP. Мы будем устанавливать PHP 8.0
1 | sudo dnf install php php-fpm php-mysqlnd php-pear php-cgi php-common php-ldap php-mbstring php-snmp php-gd php-xml php-gettext php-bcmath |
Для настройки php, открываем файл /etc/php.ini и редактируем его
1 2 3 4 5 | date.timezone = "Europe/Moscow" max_execution_time = 300 post_max_size = 16M max_input_time = 300 max_input_vars = 10000 |
Запустим php-fpm:
1 2 | systemctl enable php-fpm systemctl start php-fpm |
NGINX + PHP
Для того, чтобы NGINX обрабатывал PHP, открываем конфигурационный файл /etc/nginx/nginx.conf и приводим блок server его к виду
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | server { listen 80; listen [::]:80; server_name _; set $root_path /usr/share/nginx/html; root $root_path; location / { index index.php; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_buffer_size 32k; fastcgi_buffers 4 32k; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name; include fastcgi_params; fastcgi_param DOCUMENT_ROOT $root_path; fastcgi_read_timeout 300; } } |
где /usr/share/nginx/html — корневой путь хранения скриптов; 9000 — порт php-fpm.
Проверяем настройки nginx:
1 | nginx -t |
И перезагружаем его:
1 | systemctl restart nginx |
Заходим в каталог хранения настроенного сайта:
1 | cd /usr/share/nginx/html |
Создаем файл index.php со следующим содержимым:
1 | <?php phpinfo(); ?> |
Открываем веб-браузер и переходим по ссылке http://<IP-адрес сервера>/ — теперь мы должны увидеть сводную информацию по PHP и его настройкам:

Установка и настройка сервера Zabbix
Временно отключаем репозиторий EPEL
1 | sudo dnf config-manager -- set -disabled epel |
Подключаем репозиторий Zabbix
1 2 | rpm -Uvh https: //repo .zabbix.com /zabbix/7 .2 /release/centos/9/noarch/zabbix-release-latest-7 .2.el9.noarch.rpm sudo dnf clean all |
Устанавливаем Zabbix server, frontend и agent
1 | sudo dnf install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent |
Заходим в MySQL и создаем базу данных и пользователя zabbix
1 2 3 4 5 6 7 | # mysql -uroot -p password mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin; mysql> create user zabbix@localhost identified by 'ваш_пароль' ; mysql> grant all privileges on zabbix.* to zabbix@localhost; mysql> set global log_bin_trust_function_creators = 1; mysql> quit; |
Перед импортом данных необходимо добавить некоторые значения в файл /etc/my.cnf в секцию [mysqld]
это необходимо для того, чтобы на следующем шаге не возникало ошибок. Значение подбирается опытным путем, можете начать со 100M
1 | max_allowed_packet = 500M |
Далее импортируем структуру базы данных, вам будет предложено ввести пароль для пользователя zabbix который вы создали ранее
1 | zcat /usr/share/zabbix/sql-scripts/mysql/server .sql.gz | mysql --default-character- set =utf8mb4 -uzabbix -p zabbix |
Далее необходимо отключить опцию log_bin_trust_function_creators после импорта
1 2 3 4 | # mysql -uroot -p password mysql> set global log_bin_trust_function_creators = 0; mysql> quit; |
Откройте и отредактируйте файл /etc/zabbix/zabbix_server.conf
1 | DBPassword=ваш_пароль |
Разрешаем автозапуск сервера
1 | systemctl enable zabbix-server |
После запускаем сам сервер zabbix:
1 | systemctl start zabbix-server |
Настройка nginx
При установке zabbix-web файлы портала копируются в каталог /usr/share/zabbix/ui. Наш веб-сервер работает с каталогом /usr/share/nginx/html. Необходимо изменить.
Снова открываем конфигурационный файл /etc/nginx/nginx.conf и меняем
1 | set $root_path /usr/share/nginx/html; |
на
1 | set $root_path /usr/share/zabbix/ui; |
Перезапускаем NGINX
1 | systemctl restart nginx |
Установка портала для управления Zabbix
Открываем браузер и переходим по адресу http://<IP-адрес сервера>/ — откроется страница установки Zabbix Web.
Обратите внимание, что установка английского языка
(en_US) также включит формат времени/даты США во внешнем интерфейсе.

Убедитесь, что выполнены все обязательные предварительные условия Zabbix.

Введите данные для подключения к базе данных. База данных Zabbix должна быть уже создана.

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

Просмотрите список настроек

Завершите установку.

Авторизоваться
Интерфейс Zabbix готов! Имя пользователя по умолчанию Admin , пароль zabbix .
