Подробный гайд по установке Zabbix в Alt Linux с PostgreSQL и Apache - Часть 1
Установка Zabbix в Alt Linux с PostgreSQL и Apache
0. Что будет установлено
Устанавливаем набор:
- Zabbix Server;
- Zabbix Web/Frontend;
- PostgreSQL;
- Apache;
- PHP и необходимые расширения;
- Zabbix Agent для мониторинга самого сервера.
1. Подготовка системы
Проверьте версию Alt Linux:
cat /etc/os-release
uname -a
Обновите списки пакетов и систему:
sudo apt-get update
sudo apt-get upgrade -y
Если sudo не настроен, используйте su -.
Установите полезные утилиты:
sudo apt-get install -y curl wget vim net-tools mc
2. Поиск доступных пакетов Zabbix
В Alt Linux используется apt-get для RPM-пакетов. Имена пакетов могут отличаться в зависимости от ветки репозитория.
Сначала посмотрите, что доступно:
apt-cache search zabbix | grep -Ei "server|agent|frontend|web"
Типичные пакеты могут называться примерно так:
zabbix-server-pgsql
zabbix-agent
zabbix-frontend-apache2
zabbix-get
zabbix-sender
Если пакет называется иначе, используйте то имя, которое показал apt-cache search.
Например, если видите:
zabbix-server-pgsql
zabbix-agent
zabbix-web-apache2-pgsql
устанавливайте именно их.
3. Установка PostgreSQL, Apache, PHP и Zabbix
Установите PostgreSQL:
sudo apt-get install -y postgresql-server postgresql-client
Установите Apache:
sudo apt-get install -y apache2
Установите PHP и расширения. В разных ветках Alt Linux версии PHP могут отличаться.
Сначала найдите доступные пакеты:
apt-cache search php | grep -E "^php[0-9]"
Пример установки для PHP 8.3:
sudo apt-get install -y \
php8.3 \
php8.3-fpm \
php8.3-pgsql \
php8.3-gd2 \
php8.3-mbstring \
php8.3-xml \
php8.3-bcmath \
php8.3-ldap \
php8.3-curl \
php8.3-ctype
Если в репозитории другая версия PHP, например 8.2, замените php8.3 на php8.2.
Также установите сам Zabbix. Пример:
sudo apt-get install -y \
zabbix-server-pgsql \
zabbix-agent \
zabbix-frontend-apache2
Если пакет фронтенда называется иначе, установите его по имени из apt-cache search.
Дополнительно можно установить утилиты диагностики:
sudo apt-get install -y zabbix-get zabbix-sender
Проверьте версии:
zabbix_server --version
psql --version
apachectl -v
php --version || php8.3 --version
4. Инициализация PostgreSQL
Проверьте, инициализирован ли кластер:
ls -l /var/lib/pgsql/data/PG_VERSION 2>/dev/null
Если файла нет, выполните инициализацию.
Вариант через стандартную утилиту:
sudo postgresql-setup initdb
Если такой команды нет:
sudo -u postgres /usr/bin/initdb -D /var/lib/pgsql/data
Запустите PostgreSQL:
sudo systemctl enable --now postgresql
Проверьте статус:
sudo systemctl status postgresql
Проверьте, что сервер слушает порт:
ss -tulpn | grep 5432
5. Настройка PostgreSQL для Zabbix
Зайдите в PostgreSQL под пользователем postgres:
sudo -u postgres psql
Создайте пользователя и базу данных:
CREATE ROLE zabbix WITH LOGIN PASSWORD 'Очень_Сложный_Пароль';
CREATE DATABASE zabbix
OWNER zabbix
ENCODING 'UTF8'
LC_COLLATE='C'
LC_CTYPE='C'
TEMPLATE template0;
Подключитесь к базе zabbix:
\c zabbix
Для PostgreSQL 15+ обязательно выдайте права на схему public:
GRANT ALL ON SCHEMA public TO zabbix;
ALTER SCHEMA public OWNER TO zabbix;
Выход:
\q
6. Настройка pg_hba.conf
Нужно разрешить пользователю zabbix подключаться к базе zabbix локально.
Найдите файл pg_hba.conf:
PG_HBA=$(sudo -u postgres psql -t -c "SHOW hba_file;" | xargs)
echo "$PG_HBA"
Откройте его:
sudo vim "$PG_HBA"
Добавьте в конец строки:
host zabbix zabbix 127.0.0.1/32 scram-sha-256
host zabbix zabbix ::1/128 scram-sha-256
Если старый клиент не поддерживает scram-sha-256, можно использовать:
host zabbix zabbix 127.0.0.1/32 md5
host zabbix zabbix ::1/128 md5
Проверьте, что в postgresql.conf разрешено локальное прослушивание:
sudo vim /var/lib/pgsql/data/postgresql.conf
Найдите или добавьте:
listen_addresses = 'localhost'
Перезапустите PostgreSQL:
sudo systemctl restart postgresql
Проверьте подключение:
psql -U zabbix -h 127.0.0.1 -d zabbix
При запросе пароля введите пароль пользователя zabbix.
Выход:
\q
7. Импорт схемы базы данных Zabbix
Найдите файл схемы:
rpm -ql zabbix-server-pgsql | grep -E "schema\.psql(\.gz)?$"
Если файл не найден, выполните поиск вручную:
find /usr/share /usr/share/doc -name "schema.psql*" -path "*zabbix*" 2>/dev/null
Файл может быть, например, здесь:
/usr/share/doc/zabbix-server-pgsql-7.0.x/schema.psql.gz
/usr/share/zabbix-server-pgsql/schema.psql
Импортируйте схему.
Если файл .gz:
sudo cp /путь/к/schema.psql.gz /tmp/zabbix_schema.psql.gz
sudo chmod 644 /tmp/zabbix_schema.psql.gz
sudo -u postgres bash -c "zcat /tmp/zabbix_schema.psql.gz | psql zabbix"
Если файл обычный .psql:
sudo cp /путь/к/schema.psql /tmp/zabbix_schema.psql
sudo chmod 644 /tmp/zabbix_schema.psql
sudo -u postgres psql zabbix < /tmp/zabbix_schema.psql
Проверьте таблицы:
sudo -u postgres psql -d zabbix -c "\dt" | head
Вы должны увидеть таблицы Zabbix, например:
hosts
items
triggers
users
Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.