Найти тему

Zabbix 5.0 — установка на Ubuntu, TimescaleDB и PostgreSQL

Оглавление

Zabbix 5.0 LTS в связке с PostgreSQL поддерживает TimescaleDB. Сегодня установим с нуля Zabbix 5.0 LTS на сервер Ubuntu. Используем базу данный PostgreSQL и TimescaleDB.

Должно получиться: Ubuntu 20.04 LTS + Zabbix 5.0 LTS + Nginx + PostgreSQL12 + TimescaleDB.

TimescaleDB — расширение, которое оптимизирует работу с временными рядами в базе данных PostgreSQL.

Я ожидаю получить значительный прирост производительности, в особенности для процесса housekeeping.

Кому интересно, можете посмотреть доклад Андрея Гущина из компании Zabbix про использование TimescaleDB в Zabbix.

Подготовка виртуальной машины

Я подготовил виртуальную машину с 8 CPU, 16 Гб ОЗУ и отдельным диском на 300 Гб. Установил Ubuntu 20.04 LTS.

Установка Ubuntu Server 20.04 LTS на виртуальную машину VMware ESXi 6.7

Диск для базы данных с файловой системой ext4 примонтировал к /opt.

Установка репозитория Zabbix

Установим репозиторий:

cd /tmp
wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
dpkg -i zabbix-release_5.0-1+focal_all.deb
apt update

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

-2

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

Установка Zabbix сервера, веб-интерфейса и агента

apt install zabbix-server-pgsql zabbix-frontend-php php7.4-pgsql zabbix-nginx-conf zabbix-agent

Установка PostgreSQL 12

Установим PostgreSQL 12 на сервер с операционной системой Ubuntu 20.04 LTS. БД установим на отдельный диск объёмом 300 ГБ, примонтированный к /opt. Вынес этот этап в отдельную статью.

Установка PostgreSQL 12 на Ubuntu 20.04 LTS

Установка TimescaleDB

Не знаю, работает ли Zabbix с TimescaleDB 2, заодно проверим.

Установим репозиторий TimescaleDB:

add-apt-repository ppa:timescale/timescaledb-ppa
apt update
-3

Установим TimescaleDB 2 для PostgreSQL 12:

apt install timescaledb-2-postgresql-12
-4

Нам предлагают затюнить конфигурационный файл PostgreSQL 12.

-5

В любом случае для использования TimescaleDB это нужно сделать, как минимум для подключения соответствующих библиотек.

timescaledb-tune --quiet --yes
-6

Судя по выводу такой тюнинг нужно производить каждый раз после изменения конфигурации сервера, например, после добавления памяти или процессоров.

Перезагружаем PostgreSQL.

service postgresql restart
-7

Установка TimescaleDB завершена.

Создание базы данных Zabbix

Выполняем:

sudo -u postgres createuser --pwprompt zabbix
sudo -u postgres createdb -O zabbix zabbix
-8

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

DBPassword=password

где вместо "password" пишем пароль.

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

zcat /usr/share/doc/zabbix-server-pgsql*/create.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/doc/zabbix-server-pgsql*/timescaledb.sql | sudo -u zabbix psql zabbix

Настройка Nginx

В качестве веб-сервера у меня будет Nginx. Редактируем файл& /etc/zabbix/nginx.conf, раскомментируем и настроим директивы 'listen' и 'server_name'.

listen 80;
server_name example.com;

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

; php_value[date.timezone] = Europe/Riga

меняю на:

php_value[date.timezone] = Europe/Moscow

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

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

systemctl restart zabbix-server zabbix-agent nginx php7.4-fpm
systemctl enable zabbix-server zabbix-agent nginx php7.4-fpm

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

-9

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

-10

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

-11

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

-12

Настраиваю сервер. Next step.

-13

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

-14

Натыкаюсь на ошибку. Почему-то веб-сервер не может загрузить файл, ладно скачиваю файл. Создаю файл /etc/zabbix/web/zabbix.conf.php:

cd /etc/zabbix/web
touch zabbix.conf.php
chown www-data\: ./zabbix.conf.php

Делаю владельцем пользователя, под которым запускается nginx, сохраняю содержимое в файл.

-15

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

После входа продолжаем конфигурацию. Next step.

-16

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

-17

Интерфейс заработал, база подцепилась.

Параметры TimescaleDB

Переходим в Administration → General → Housekeeping.

-18

Enable compression (Включить сжатие) — установка или снятие флажка не активирует/деактивирует сжатие немедленно. Так как сжатием занимается процесс очистки истории (housekeeper), изменения вступят в силу в течение максимум двух периодов времени, заданных в параметре HousekeepingFrequency (в файле конфигурации сервера zabbix_server.conf). После отключения сжатия новые фрагменты, попавшие в период сжатия, не будут сжиматься. Однако все ранее сжатые данные останутся сжатыми. Чтобы распаковать ранее сжатые фрагменты, следуйте инструкциям в документации TimescaleDB. При обновлении старых версий Zabbix с поддержкой TimescaleDB сжатие не будет включено по умолчанию.

Compress records older than (Сжимать записи старше, чем) — этот параметр не может быть меньше 7 дней. Из-за неизменности сжатых фрагментов все запоздавшие данные (например, данные, задержанные прокси), которые старше этого значения, будут отброшены.

Ссылки

https://docs.timescale.com/timescaledb/latest/how-to-guides/install-timescaledb/self-hosted/ubuntu/installation-apt-ubuntu/

Источник:
https://internet-lab.ru/zabbix_5_0_install_ubuntu_timescaledb_postgresql

💰 Поддержать проект

Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.