В данной статье рассмотрим установку системы мониторинга Zabbix 7 на операционную систему Linux Ubuntu 24.04 c web сервером Nginx, базы данных Postgresql и расширением TimescaleDB.
TimescaleDB — очень перспективная технология. Она хорошо работает с Zabbix и дает заметные преимущества по сравнению со стандартной базой данный PostgreSQL.
Подробнее о TimescaleDB можно прочесть здесь: https://habr.com/ru/companies/zabbix/articles/458530/
Если необходимо получать сведения о работоспособности огромного кол-во серверов и сервисов, то в первую очередь от системы мониторинга нам потребуется высокая производительность и масштабируемость, останавливаем выбор на решении — NGINX + PostgreSQL с расширением TimescaleDB.
- Подготовительные работы
- Установка Zabbix 7
- Заходим с правами root
- Установка репозитория Zabbix
- Установка необходимых пакетов для работы Zabbix: сервер, веб-интерфейс и агент
- Настройка WEB-сервера
- Настройка PHP-FPM
- Сохраняем изменения и перезапускаем службы
- Установка PostgreSQL
- Установка TimescaleDB
- Подключаем официальный репозиторий TimescaleDB, импортируем GPG ключ
- Установка TimescaleDB
Подготовительные работы
Запускаем обновление всех пакетов до актуальной версии:
sudo -i
apt update && apt upgrade -y
Удаляем ненужные зависимости:
apt autoremove -y
Проверяем что на сервере установлен правильный часовой пояс:
timedatectl
Если часовой пояс настроен неверно, установим правильный:
timedatectl set-timezone Europe/Moscow
Предварительная настройка сервера завершена.
Установка Zabbix 7
На официальном сайте Zabbix в разделе загрузок выбираем операционную систему и компоненты:

- Операционная система: Ubuntu 24.04
- Компоненты Zabbix: Server, Frontend, Agent
- Сервер БД: PostgreSQL
- Web-сервер: NGINX
Заходим с правами root
sudo -s
Установка репозитория Zabbix
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb
dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb
apt update
Установка необходимых пакетов для работы Zabbix: сервер, веб-интерфейс и агент
apt install zabbix-server-pgsql zabbix-frontend-php php8.3-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-agent -y
Настройка WEB-сервера
редактируем файл /etc/zabbix/nginx.conf
nano /etc/zabbix/nginx.conf
Находим два параметра, редактируем и убираем символ #
listen 80;
server_name zabbix.clubit24.ru;
сохраняем.
Настройка PHP-FPM
Редактируем файл /etc/zabbix/php-fpm.conf
nano /etc/zabbix/php-fpm.conf
Изменяем параметры:
php_value[post_max_size] = 128M
php_value[upload_max_filesize] = 128M
Сохраняем.
Сохраняем изменения и перезапускаем службы
systemctl restart nginx php8.3-fpm
Установка PostgreSQL
Устанавливаем актуальную версию:
apt install postgresql postgresql-contrib
Cоздаем пользователя, установим для него пароль и создадим базу данных для работы. Для этого выполните следующие команды:
sudo -u postgres createuser --pwprompt zabbix
Создаем базу данных:
sudo -u postgres createdb -O zabbix zabbix
Импортируем начальную схему и данные в созданную базу:
zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix
Проведем настройку конфигурационного файла Zabbix:
nano /etc/zabbix/zabbix_server.conf
В параметре DBPassword= укажем пароль пароль, который вводили для учетной записи zabbix
Установка TimescaleDB
Установим необходимые пакеты:
apt install gnupg apt-transport-https
Подключаем официальный репозиторий TimescaleDB, импортируем GPG ключ
echo "deb https://packagecloud.io/timescale/timescaledb/ubuntu/ $(lsb_release -c -s) main" > /etc/apt/sources.list.d/timescaledb.list
wget --quiet -O - https://packagecloud.io/timescale/timescaledb/gpgkey | gpg --dearmor -o /etc/apt/trusted.gpg.d/timescaledb.gpg
apt update
Установка TimescaleDB
apt install timescaledb-2-postgresql-16='2.15.*' timescaledb-2-loader-postgresql-16='2.15.*' postgresql-client-16
После установки TimescaleDB необходимо запустить утилиту конфигурации TimescaleDB и настроить её параметры. Это можно сделать с помощью команды:
timescaledb-tune
Утилита timescaledb-tune анализирует текущую конфигурацию PostgreSQL и предлагает оптимальные настройки для работы с TimescaleDB. Она автоматически изменяет параметры в файле postgresql.conf, чтобы улучшить производительность базы данных для работы с временными рядами.
После завершения работы утилиты все изменения будут внесены в файл конфигурации PostgreSQL. Остаётся перезапустить сервер, чтобы настройки вступили в силу:
systemctl restart postgresql
Теперь подключим расширение TimescaleDB к базе данных Zabbix и выполним дополнительные настройки.
echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix
Эта команда создаёт расширение TimescaleDB в базе данных zabbix, если оно ещё не было подключено. Опция CASCADE автоматически подключает любые необходимые зависимости.
Конвертация структуры данных
Далее запустите специальный скрипт для настройки схемы базы данных:
cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb/schema.sql | sudo -u zabbix psql zabbix