Гид по технологиям

Установка Zabbix 4.0 LTS на CentOS 8

8 min read Мониторинг. Обновлено 26 Nov 2025
Установка Zabbix 4.0 LTS на CentOS 8
Установка Zabbix 4.0 LTS на CentOS 8

Введение

Zabbix — это система мониторинга с открытым исходным кодом для сетевых сервисов, оборудования, серверов и приложений. Zabbix собирает метрики, строит графики, генерирует триггеры и уведомления. Бэкенд Zabbix написан на C, веб-интерфейс — на PHP. Для хранения данных поддерживаются MySQL/MariaDB, PostgreSQL, SQLite и IBM DB2.

Определение: LTS — Long Term Support, версия с долгосрочной поддержкой и патчами безопасности.

Важно: этот гайд рассчитан на CentOS 8 и Zabbix 4.0 LTS. Если у вас другая ОС или версия Zabbix — шаги могут отличаться.

Требования

  • Сервер с CentOS 8 (минимум 2 CPU, 2 ГБ ОЗУ для тестовой среды; для продакшна — больше).
  • Доступ root или привилегии sudo.
  • Базовые знания команд Linux и системного администрирования.

Коротко о сетевых портах: Zabbix Server слушает 10051/tcp, Zabbix Agent — 10050/tcp. Веб-интерфейс использует 80/443.

Что мы сделаем (план)

  • Установим Apache (httpd).
  • Установим и настроим PHP.
  • Установим и настроим MariaDB (БД для Zabbix).
  • Добавим репозиторий Zabbix и установим пакеты Zabbix 4.0 LTS.
  • Импортируем схему БД и настроим конфигурации.
  • Настроим firewalld и SELinux.
  • Пройдем начальную веб-установку и сменим пароль admin.

Шаг 1 — Установка Apache httpd

Для веб-интерфейса Zabbix используем Apache (httpd). Установите пакет командой:

dnf install httpd

Добавьте httpd в автозагрузку и запустите сервис:

systemctl enable httpd
systemctl start httpd

Проверьте, что порт 80 слушается:

netstat -plntu

Результат должен показать слушающий порт 0.0.0.0:80 или аналогично.

Проверка работы Apache и порта 80

Пояснение: netstat может не быть установлен по умолчанию; при необходимости используйте ss -plntu.

Критерии приёмки:

  • Сервис httpd запущен и активен.
  • Порт 80 находится в состоянии LISTEN.

Шаг 2 — Установка PHP

Zabbix требует PHP с набором расширений. Установите их так:

dnf install php-cli php-common php-devel php-pear php-gd php-mbstring php-mysqlnd php-xml php-bcmath

Откройте конфиг PHP:

vim /etc/php.ini

Измените/добавьте параметры (пример):

date.timezone = Asia/Jakarta
max_execution_time = 600
max_input_time = 600
memory_limit = 256M
post_max_size = 32M
upload_max_filesize = 16M

Сохраните, затем перезапустите Apache:

systemctl restart httpd

Проверка: создайте файл /var/www/html/info.php с содержимым и откройте http:///info.php, чтобы увидеть активные расширения.

Установленные модули PHP и проверка

Совет: установите только те расширения, которые действительно нужны — это уменьшает поверхность атаки.


Шаг 3 — Установка и настройка MariaDB

Для Zabbix мы используем MariaDB (совместима с MySQL).

Установите сервер:

dnf install mariadb-server

Добавьте в автозагрузку и запустите:

systemctl enable mariadb
systemctl start mariadb

Запустите скрипт безопасности:

mysql_secure_installation

Типичный диалог:

Set a root password? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Создайте базу и пользователя для Zabbix (в примере пароль hakase-labs@; используйте сложный пароль в реальной среде):

mysql -u root -p
# Введите пароль root и затем в mysql shell выполните:
create database zabbix;
grant all privileges on zabbix.* to zabbix@'localhost' identified by 'hakase-labs@';
grant all privileges on zabbix.* to zabbix@'%' identified by 'hakase-labs@';
flush privileges;

Проверка: подключитесь под пользователем zabbix и попробуйте SHOW TABLES; (до импорта схемы таблиц не будет).

Создание БД zabbix и пользователя

Замечание по безопасности: избыточно давать доступ ‘%’ (всенаправленный доступ) в продакшене; ограничивайте источники подключений по IP.


Шаг 4 — Установка и настройка Zabbix 4.0 LTS

Добавление репозитория Zabbix и установка пакетов

Добавьте RPM-репозиторий Zabbix:

rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/8/x86_64/zabbix-release-4.0-2.el8.noarch.rpm

Очистите кэш и проверьте репозитории:

dnf clean all
dnf repolist

Установите сервер и веб-пакеты:

dnf -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent

Если dnf выдаёт конфликты — прочитайте вывод и удалите конфликтующие пакеты или решите зависимости.

Добавление репозитория Zabbix показано в выводе RPM

Импорт схемы базы данных

Перейдите в каталог с документацией пакета и распакуйте схему:

cd /usr/share/doc/zabbix-server-mysql
gunzip create.sql.gz

Импортируйте схему в базу zabbix:

mysql -u root -p zabbix < create.sql

После этого таблицы Zabbix появятся в базе.

Импорт схемы БД Zabbix

Настройка zabbix_server.conf

Отредактируйте /etc/zabbix/zabbix_server.conf:

vim /etc/zabbix/zabbix_server.conf

Укажите хост и пароль БД:

DBHost=localhost
DBPassword=hakase-labs@

Сохраните файл и добавьте сервис в автозагрузку:

systemctl enable zabbix-server

Настройка агента zabbix_agentd

Агент должен быть установлен на каждой мониторимой машине. На сервере Zabbix отредактируйте:

vim /etc/zabbix/zabbix_agentd.conf

Укажите IP сервера Zabbix в полях Server и ServerActive:

Server=10.5.5.50
ServerActive=10.5.5.50

Добавьте агент в автозагрузку:

systemctl enable zabbix-agent

Настройка Zabbix Server конфигурации

Пояснение: если у вас несколько серверов Zabbix или кластер, укажите соответствующие IP/hostnames.


Шаг 5 — Настройка firewalld

Откройте HTTP(S) и порты Zabbix:

firewall-cmd --add-service={http,https} --permanent
firewall-cmd --add-port={10051/tcp,10050/tcp} --permanent
firewall-cmd --reload
firewall-cmd --list-all

Проверка: убедитесь, что порты добавлены и доступны извне (telnet/ss, nmap с другого хоста).

Параметры firewalld с открытыми портами Zabbix

Важно: на серверах-агентах обычно нужен исходящий доступ на 10051/tcp к серверу Zabbix.


Шаг 6 — Настройка SELinux

Если SELinux включён (Enforcing), потребуется настроить дополнительные политики.

Установите утилиты:

dnf install policycoreutils checkpolicy setroubleshoot-server

Создайте рабочую директорию и файл модуля:

mkdir -p ~/zabbix-selinux
cd ~/zabbix-selinux/
vim zabbix_server_add.te

Вставьте содержимое модуля (пример):

module zabbix_server_add 1.1;

require {
        type zabbix_var_run_t;
        type tmp_t;
        type zabbix_t;
        class sock_file { create unlink write };
        class unix_stream_socket connectto;
        class process setrlimit;
        class capability dac_override;
}

#============= zabbix_t ==============

#!!!! This avc is allowed in the current policy
allow zabbix_t self:process setrlimit;

#!!!! This avc is allowed in the current policy
allow zabbix_t self:unix_stream_socket connectto;

#!!!! This avc is allowed in the current policy
allow zabbix_t tmp_t:sock_file { create unlink write };

#!!!! This avc is allowed in the current policy
allow zabbix_t zabbix_var_run_t:sock_file { create unlink write };

#!!!! This avc is allowed in the current policy
allow zabbix_t self:capability dac_override;

Скомпилируйте и установите модуль:

checkmodule -M -m -o zabbix_server_add.mod zabbix_server_add.te
semodule_package -m zabbix_server_add.mod -o zabbix_server_add.pp
semodule -i zabbix_server_add.pp

Дополнительно задайте булевые флаги:

setsebool -P httpd_can_network_connect 1
setsebool -P httpd_can_connect_zabbix 1
setsebool zabbix_can_network on

Пояснение: без этих правил веб-интерфейс и сервер Zabbix могут быть ограничены в сетевых соединениях и доступе к сокетам.

Загрузка SELinux модуля для Zabbix

Совет: используйте audit2allow для генерации правил по логам AVC отладки.


Шаг 7 — Первичная веб-настройка Zabbix

Запустите сервисы и проверьте их состояние:

systemctl start zabbix-server
systemctl status zabbix-server

systemctl start zabbix-agent
systemctl status zabbix-agent

systemctl restart httpd

Откройте в браузере: http://10.5.5.50/zabbix/ (замените адрес на IP/hostname вашего сервера).

Вы увидите приветственный экран веб-установщика. Нажмите Next Step, убедитесь, что все требования удовлетворены (no errors), затем пропишите параметры БД (user, password, db name). Далее укажите Host для сервера Zabbix и имя хоста/домена.

Веб-установщик Zabbix — стартовая страница

Проверка системных требований веб-инсталлятора

Ввод параметров базы данных в веб-инсталляторе

Детали сервера Zabbix в веб-инсталляторе

Сводка перед установкой

После успешной установки нажмите Finish. Вход в систему: admin / zabbix (по умолчанию).

Успешная установка Zabbix

Страница входа Zabbix

Дашборд Zabbix после первого входа

Критерии приёмки:

  • Успешный вход в веб-интерфейс под admin.
  • Дашборд отображает метрики/элементы по умолчанию.

Шаг 8 — Смена пароля admin

Обязательно смените пароль администратора по умолчанию.

В веб-интерфейсе нажмите на иконку пользователя (правый верхний угол) и выберите Change Password. Введите старый пароль и новый.

Нажмите иконку пользователя для смены пароля

Форма подтверждения нового пароля

После обновления используйте новый пароль для входа.


Безопасность и рекомендации после установки

  • Обновляйте систему и Zabbix-пакеты регулярно (yum/dnf update).
  • Отключите доступ к веб-интерфейсу по HTTP, включите HTTPS (сертификаты Let’s Encrypt или корпоративные).
  • Ограничьте доступ к портам 10050/10051 по IP-фильтрам.
  • Используйте отдельного пользователя БД с минимальными правами (не root).
  • Настройте ротацию логов и резервное копирование базы данных.

Тестовые сценарии и приёмка

  1. Проверка подключения агента: с сервера Zabbix telnet 10050. Ожидаем соединение.
  2. Проверка отправки активных checks: в логах Zabbix server посмотреть ошибки /var/log/zabbix/zabbix_server.log.
  3. Веб-интерфейс: авторизация под новым паролем admin.
  4. Создание простого хоста и проверка шаблона “Template OS Linux” — получение первых метрик.

Критерии приёмки: все тесты пройдены, сотрудники оповещены о завершении установки.


Частые ошибки и их устранение (Runbook)

  • Проблема: На шаге веб-инсталлятора ошибка подключения к базе.
    Действие: проверьте DBHost, DBPassword, права пользователя zabbix, доступность порта 3306, SELinux и firewalld.

  • Проблема: Агент не отвечает.
    Действие: проверьте /etc/zabbix/zabbix_agentd.conf (Server, ServerActive), запущен ли агент, открыты ли порты, нет ли локального firewall/iptables.

  • Проблема: SELinux блокирует соединения.
    Действие: посмотрите /var/log/audit/audit.log, примените audit2allow или загрузите кастомный модуль (описано выше).

  • Проблема: Ошибки PHP (расширения).
    Действие: убедитесь, что установлены php-mbstring, php-gd, php-mysqlnd и другие, перезапустите httpd.


Альтернативные подходы

  • База данных: вместо MariaDB можно использовать PostgreSQL (рекомендуется для больших установок). Потребуются пакеты zabbix-server-pgsql и соответствующая схема.
  • Веб-сервер: использовать Nginx + PHP-FPM вместо Apache. Потребуется настроить конфигурацию fastcgi для Zabbix frontend.
  • Контейнеризация: запускать Zabbix Server/Frontend в Docker/Kubernetes — упрощает масштабирование, но добавляет слои сетевой и персистентной конфигурации.

Режни зрелости развертывания (Maturity levels)

  • Уровень 0 — PoC: односерверная установка (Server+DB+Frontend на одном хосте).
  • Уровень 1 — Стандарт: отдельный DB-хост, сервер Zabbix и frontend вместе.
  • Уровень 2 — Резервирование: репликация БД, кластеризация фронтенда за балансировщиком.
  • Уровень 3 — Enterprise: распределённая архитектура, HA, масштабирование проксей и агентов.

Роль‑ориентированные чек‑листы

Администратор (сеть/системы):

  • Убедиться в доступности портов 80/443, 10050, 10051.
  • Настроить бэкапы БД.
  • Настроить мониторинг самого Zabbix.

DBA:

  • Подготовить базу данных, правах пользователей, параметры производительности (innodb_buffer_pool_size).
  • Настроить резервные копии и восстановление.

Инженер безопасности:

  • Настроить HTTPS для веб-интерфейса.
  • Минимизировать открытые сервисы.
  • Проверить SELinux и применить политики.

Чеклист SOP (короткая инструкция для повтора)

  1. Установить httpd.
  2. Установить PHP и нужные расширения, настроить php.ini.
  3. Установить MariaDB, выполнить mysql_secure_installation.
  4. Создать БД zabbix и пользователя.
  5. Добавить репозиторий Zabbix, установить пакеты.
  6. Импортировать create.sql в БД zabbix.
  7. Настроить /etc/zabbix/zabbix_server.conf, /etc/zabbix/zabbix_agentd.conf.
  8. Настроить firewall и SELinux.
  9. Запустить сервисы, пройти веб-инсталлятор и сменить пароль.

Тестовые кейсы

  • При добавлении хоста с IP агента, все элементы данных начинают получать значения в течение 5–10 минут.
  • При выключении агента Zabbix генерирует триггер недоступности.
  • При росте CPU выше порога приходят уведомления по заранее настроенному медиа-тейпу.

Советы по миграции и совместимости

  • При переходе с MySQL на PostgreSQL потребуется экспорт данных и миграция — прямой импорт схемы не поможет.
  • Обновление Zabbix: сначала протестируйте upgrade на стенде. Обновления между мажорными версиями требуют проверки совместимости схемы.

Заключение

Вы установили и настроили Zabbix 4.0 LTS на CentOS 8: от Apache и PHP до MariaDB, самого Zabbix и веб-инсталлятора. Далее рекомендуем настроить резервные копии, HTTPS и интеграцию уведомлений (SMTP, Telegram, Slack) и постепенно подключать хосты и шаблоны.

Important: храните пароли в менеджере секретов, а не в открытых скриптах.

Дополнительные ресурсы

  • Официальный сайт Zabbix: https://www.zabbix.com/
  • Документация по SELinux и audit2allow — для отладки политик.

Резюме

  • Установка LAMP и MariaDB.
  • Добавление репозитория Zabbix 4.0 и установка пакетов.
  • Импорт схемы, конфигурация сервера и агента.
  • Настройка firewalld и SELinux.
  • Завершение через веб-инсталлятор и смена пароля admin.

Ключевые следующие шаги: включить HTTPS, настроить уведомления и подключить шаблоны мониторинга.

Контакты и ссылки

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Умный выключатель света на Raspberry Pi
Raspberry Pi

Умный выключатель света на Raspberry Pi

Wireless PowerShare на Samsung: как использовать
Гаджеты

Wireless PowerShare на Samsung: как использовать

Форматирование USB в Ubuntu с GParted
Linux

Форматирование USB в Ubuntu с GParted

Ошибка Invalid MMI Code на Android — как исправить
Android.

Ошибка Invalid MMI Code на Android — как исправить

Штатив: как выбрать и использовать
Фотография

Штатив: как выбрать и использовать

Как не допустить сон Windows: PowerToys, Insomnia, Don't Sleep
Windows

Как не допустить сон Windows: PowerToys, Insomnia, Don't Sleep