
Zabbix 7.4 в связке с PostgreSQL поддерживает TimescaleDB. Сегодня установим с нуля Zabbix 7.4 на сервер Debian. Используем базу данный PostgreSQL и TimescaleDB.
Должно получиться: Debian 12 + Zabbix 7.4 + Nginx + PostgreSQL 17 + TimescaleDB.
TimescaleDB — расширение, которое оптимизирует работу с временными рядами в базе данных PostgreSQL.
Я ожидаю получить значительный прирост производительности, в особенности для процесса housekeeping.
Подготовка виртуальной машины
Я подготовил виртуальную машину с 2 CPU, 3 Гб ОЗУ и диском на 10 Гб. Установил Debian 12.

Установка PostgreSQL 17
Установим PostgreSQL 17на сервер с операционной системой Debian 12. БД перенесём в /opt. В репозитории Debian и так имеется Postgresql, так что установить его можно одной командой. Однако, если мы хотим получать самые последние обновления, то лучше использовать репозиторий postgresql.
Вынес этот этап в отдельную статью.
Установка PostgreSQL 17 на Debian 12
Установка TimescaleDB
TimescaleDB — расширение, которое оптимизирует работу с временными рядами в базе данных PostgreSQL.
TimescaleDB реализована как расширение над PostgreSQL и перенимает преимущества PostgreSQL: надежность, безопасность, возможность использовать другие сервисы. При этом TimescaleDB значительно изменила архитектуру базы.
Установим репозиторий TimescaleDB. Вынес этот этап в отдельную статью.
Установка TimescaleDB на PostgreSQL 17 в Debian 12
Примечание: чтобы не наступить на те же грабли что и я, следует устанавливать определённую версию TimescaleDB, потому как Zabbix не со всеми умеет работать. В этом случае действуем по той же инструкции выше, но указываем версию:
apt install timescaledb-2-postgresql-17='2.19.*' timescaledb-2-loader-postgresql-17='2.19.*'
Если вы накосячили, можно исправить:
Zabbix 7.4 — неподдерживаемая версия TimescaleDB
Перед установкой
Перед началом установки можно облегчить себе жизни и сгенерировать инструкцию на сайте:

Установка репозитория Zabbix
Установим репозиторий:
cd /tmp
wget https://repo.zabbix.com/zabbix/7.4/release/debian/pool/main/z/zabbix-release/zabbix-release_latest_7.4+debian12_all.deb
apt update

После выполнение кода в /etc/apt/source.list.d появляется файл zabbix.list.

Репозиторий установлен.
Установка Zabbix сервера, веб-интерфейса и агента
apt install zabbix-server-pgsql zabbix-frontend-php php8.2-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2
При необходимости можно установить дополнительные плагины для Zabbix agent 2:
# apt install zabbix-agent2-plugin-mongodb zabbix-agent2-plugin-mssql zabbix-agent2-plugin-postgresql
Поскольку у меня PostgreSQL, который я планирую мониторить, поставлю плагин к нему:
apt install zabbix-agent2-plugin-postgresql
Создание базы данных Zabbix
Выполняем:
sudo -u postgres createuser --pwprompt zabbix
sudo -u postgres createdb -O zabbix zabbix

При этом нас попросят указать пароль от пользователя zabbix, придумываем и запоминаем. Укажем пароль в конфигурационном файле /etc/zabbix/zabbix_server.conf
:
DBPassword=password
Вместо "password" пишем пароль.
Импортируем схему БД.
zcat /usr/share/zabbix/sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix

Подключаем расширение TimescaleDB к базе.
echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix

Импортируем данные для TimescaleDB.
cat /usr/share/zabbix/sql-scripts/postgresql/timescaledb/schema.sql | sudo -u zabbix psql zabbix

Настройка Nginx
В качестве веб-сервера у меня будет Nginx. Проверим что он запущен:
service nginx status

Редактируем файл /etc/zabbix/nginx.conf
, раскомментируем директиву 'listen'.
listen 8080;

Редактируем файл /etc/zabbix/php-fpm.conf
, раскомментируем строку и укажем свой часовой пояс:
; php_value[date.timezone] = Europe/Riga
меняем на:
php_value[date.timezone] = Europe/Moscow

Первый запуск
Запустим процессы Zabbix сервера и агента, настроим их запуск при загрузке ОС.
systemctl restart zabbix-server zabbix-agent2 nginx php8.2-fpm
systemctl enable zabbix-server zabbix-agent2 nginx php8.2-fpm
Дальнейшие настройки делаем через веб интерфейс http://server_ip_or_name:8080.

Добро пожаловать в Zabbix 7.4. Next step.

Убеждаемся, что всё OK. Next step.

Указываем настройки для базы данных и пароль. Next step.

Указываем имя хоста, временную зону, тему. Next step.

Убеждаемся, что всё указали верно. Next step.

Фронтенд настроили. Finish.

Просят логин. При первом входе используем логин "Admin", пароль "zabbix".

Zabbix Server 7.4 установлен и работает.