Подробный гайд по установке Zabbix 7.0 LTS в CentOS Stream 9 с PostgreSQL, Apache - Часть 1
Важно:
Классические версии CentOS Linux 7/8 больше не получают обновления безопасности. Для продакшена лучше использовать CentOS Stream 9, Rocky Linux 9, AlmaLinux 9 или аналогичную RHEL-совместимую систему.
Ниже буду показывать установку для CentOS Stream 9 / RHEL 9-совместимых систем с Zabbix 7.0 LTS, PostgreSQL, Apache и Zabbix Agent 2.
1. Что будем устанавливать
Схема будет такой:
- Zabbix Server;
- веб-интерфейс Zabbix Frontend;
- база данных PostgreSQL;
- веб-сервер Apache;
- Zabbix Agent 2 для мониторинга самого сервера;
- при необходимости позже добавим удалённые агенты.
Порты:
| Назначение | Порт | Комментарий |
|---|---|---|
| Zabbix Server | 10051/tcp | Сюда агенты и прокси отправляют данные |
| Zabbix Agent | 10050/tcp | Порт агента на наблюдаемых хостах |
| Web UI | 80/tcp | HTTP |
| Web UI HTTPS | 443/tcp | Рекомендуется настроить позже |
| PostgreSQL | 5432/tcp | Только локально или для отдельного DB-сервера |
2. Требования к серверу
Для небольшого или среднего Zabbix-сервера ориентируйтесь минимум на:
- 2 CPU;
- 4 GB RAM, лучше 8 GB и выше;
- 20–50 GB диска, лучше отдельный диск под БД;
- стабильное время и DNS;
- доступ в интернет для установки пакетов.
Для крупного окружения БД лучше выносить на отдельный сервер или использовать тюнинг PostgreSQL / TimescaleDB.
3. Подготовка системы
Обновите систему:
sudo dnf update -y
Задайте имя хоста:
sudo hostnamectl set-hostname zabbix.example.local
Проверьте время:
timedatectl
Установите и включите chrony:
sudo dnf install -y chrony
sudo systemctl enable --now chronyd
При необходимости установите часовой пояс, например:
sudo timedatectl set-timezone Europe/Moscow
Проверьте синхронизацию:
chronyc sources
4. Подключение репозитория Zabbix
Для CentOS Stream 9 / RHEL 9-совместимых систем подключите официальный репозиторий Zabbix 7.0 LTS:
sudo dnf install -y https://repo.zabbix.com/zabbix/7.0/rhel/9/x86_64/zabbix-release-7.0-1.el9.noarch.rpm
Если у вас ARM/aarch64, замените x86_64 на aarch64.
Обновите кэш пакетов:
sudo dnf clean all
sudo dnf makecache
Проверьте, что репозиторий подключился:
dnf repolist | grep -i zabbix
5. Установка PostgreSQL
В CentOS Stream 9 PostgreSQL обычно устанавливается через модуль.
Посмотрите доступные версии:
sudo dnf module list postgresql
Включите версию, например 16:
sudo dnf module reset postgresql -y
sudo dnf module enable postgresql:16 -y
Если версия 16 недоступна, включите 15 или другую доступную поддерживаемую версию.
Установите PostgreSQL:
sudo dnf install -y postgresql-server postgresql-contrib
Инициализируйте базу:
sudo postgresql-setup --initdb
Включите автозапуск и запустите PostgreSQL:
sudo systemctl enable --now postgresql
Проверьте статус:
sudo systemctl status postgresql --no-pager
6. Создание базы данных и пользователя Zabbix
Задайте пароль для пользователя базы данных. Пароль ниже замените на свой. Избегайте пробелов и символа #, чтобы не было проблем с конфигурационными файлами.
ZBX_DB_PASS='ChangeMe_Strong_2026'
Создайте пользователя PostgreSQL:
sudo -u postgres psql -c "CREATE ROLE zabbix WITH LOGIN PASSWORD '${ZBX_DB_PASS}';"
Создайте базу данных zabbix:
sudo -u postgres createdb -O zabbix zabbix
Проверьте пользователя:
sudo -u postgres psql -c "\du"
Проверьте базу:
sudo -u postgres psql -c "\l"
7. Настройка аутентификации PostgreSQL
По умолчанию PostgreSQL может использовать ident для локальных TCP-подключений. Zabbix будет подключаться к БД через 127.0.0.1 или localhost, поэтому нужно разрешить аутентификацию по паролю.
Найдите файл pg_hba.conf:
PG_HBA=$(sudo -u postgres psql -At -c 'SHOW hba_file;')
echo "$PG_HBA"
Сделайте резервную копию:
sudo cp -a "$PG_HBA" "${PG_HBA}.bak"
Замените ident на scram-sha-256 для локальных подключений:
sudo sed -i -E 's/^(host[[:space:]]+all[[:space:]]+all[[:space:]]+127\.0\.0\.1\/32[[:space:]]+)ident/\1scram-sha-256/' "$PG_HBA"
sudo sed -i -E 's/^(host[[:space:]]+all[[:space:]]+all[[:space:]]+::1\/128[[:space:]]+)ident/\1scram-sha-256/' "$PG_HBA"
Перечитайте конфигурацию:
sudo systemctl reload postgresql
Проверьте подключение к базе от пользователя zabbix:
PGPASSWORD="${ZBX_DB_PASS}" psql -h 127.0.0.1 -U zabbix -d zabbix -c 'SELECT current_user;'
Если команда вернула zabbix, значит подключение работает.
Если ошибка, проверьте:
sudo tail -n 50 /var/lib/pgsql/data/log/postgresql-*.log
cat "$PG_HBA"
8. Установка пакетов Zabbix
Установите сервер, веб-интерфейс, SQL-скрипты, SELinux-политики, агент и утилиту диагностики:
sudo dnf install -y \
zabbix-server-pgsql \
zabbix-web-pgsql \
zabbix-apache-conf \
zabbix-sql-scripts \
zabbix-selinux \
zabbix-agent2 \
zabbix-get
Проверьте версии:
zabbix_server --version
zabbix_agent2 --version
Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.