Перейти к основному содержанию

Zabbix 7.4 — установка на Debian, TimescaleDB и PostgreSQL

Zabbix

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.

zabbix

Установка 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

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

Перед началом установки можно облегчить себе жизни и сгенерировать инструкцию на сайте:

https://www.zabbix.com/download?zabbix=7.4&os_distribution=debian&os_version=12&components=server_frontend_agent_2&db=pgsql&ws=nginx

zabbix

Установка репозитория 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
zabbix

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

zabbix

Репозиторий установлен.

Установка 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

При этом нас попросят указать пароль от пользователя zabbix, придумываем и запоминаем. Укажем пароль в конфигурационном файле /etc/zabbix/zabbix_server.conf:

DBPassword=password

Вместо "password" пишем пароль.

Импортируем схему БД.

zcat /usr/share/zabbix/sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix
zabbix

Подключаем расширение TimescaleDB к базе.

echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix
zabbix

Импортируем данные для TimescaleDB.

cat /usr/share/zabbix/sql-scripts/postgresql/timescaledb/schema.sql | sudo -u zabbix psql zabbix
zabbix

Настройка Nginx

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

service nginx status
zabbix

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

listen 8080;
zabbix

Редактируем файл /etc/zabbix/php-fpm.conf, раскомментируем строку и укажем свой часовой пояс:

; php_value[date.timezone] = Europe/Riga

меняем на:

php_value[date.timezone] = Europe/Moscow
zabbix

Первый запуск

Запустим процессы Zabbix сервера и агента, настроим их запуск при загрузке ОС.

systemctl restart zabbix-server zabbix-agent2 nginx php8.2-fpm
systemctl enable zabbix-server zabbix-agent2 nginx php8.2-fpm

zabbix

Дальнейшие настройки делаем через веб интерфейс http://server_ip_or_name:8080.

zabbix

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

zabbix

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

zabbix

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

zabbix

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

zabbix

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

zabbix

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

zabbix

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

zabbix

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

Теги

 

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

Перемещение базы данных postgresql в Ubuntu 18.04 LTS

При установке на Ubuntu zabbix-server база данных по умолчанию пишется в папку /var/lib/postgresql. Со временем база растёт и поднимается вопрос переноса её на другой раздел диска. Перенесём базу данных в /opt/postgresql.

Теги