work:zabbix:zabbix-ubuntu2404-postgresql-nginx

Т.к. мне понравилась работа PostgreSQL с Timescaledb, то решил не заморачиваться на стандартную связку MySQL и Apache. Будем сразу по жесткому:)

Для начала обновим систему. Обновим список пакетов

sudo apt-get update

Далее и саму систему

sudo apt-get dist-upgrade

Проверяем установленное время на сервере

timedatectl

Ставим свой. У меня такой:

timedatectl set-timezone Europe/Kaliningrad

Скачиваем с официального сервера пакет для подключения репозитория

wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-2+ubuntu24.04_all.deb

Ставим его

sudo dpkg -i zabbix-release_7.0-2+ubuntu24.04_all.deb

Теперь официальный репозиторий Zabbix подключен к нашей системе. Обновим список пакетов.

sudo apt-get update

Ставим необходимые пакеты.

sudo apt install zabbix-server-pgsql zabbix-frontend-php php8.3-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-agent

Настраиваем веб-сервер. Открываем любимым редактором файл /etc/zabbix/nginx.conf. И раскомментируем в нем две строки.

listen 80;
server_name zabbix.local;
Обратите внимание, что порт сервера по-умолчанию стоит 8080. Если не планируете использовать еще как-либо сайты на сервере, то проще поставить 80 и закинуть этот конфиг как default в настройки NGINX.

Далее открываем /etc/zabbix/php-fpm.conf и ставим такие значения:

php_value[post_max_size] = 128M
php_value[upload_max_filesize] = 128M

Первая отвечает за максимальный размер данных, отправляемых на сервер за один запрос, вторая определяет максимальный размер загружаемого файла.

Далее перезапускаем службы

sudo systemctl restart nginx php8.3-fpm

Ставим актуальную версию

sudo apt install postgresql postgresql-contrib

Теперь создадим новую роль (пользователя) сервера PostgreSQL и зададим ему новый пароль:

sudo -u postgres createuser --pwprompt zabbix
Обратите внимание, что sudo -u postgres обозначает, что команда выполняется от имени пользователя postgres, а не root.

Cоздадим новую базу данных zabbix с владельцем zabbix

sudo -u postgres createdb -O zabbix zabbix

Загрузим в нее схему и начальные данные

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

В ходе выполнения данной команды система может попросить пароль, который вы установили на предыдущем шаге.

Затем откроем файл /etc/zabbix/zabbix_server.conf и найдем там опцию DBPassword, раскомментируем ее и приведем к виду

DBPassword=пароль установленный ранее

Ставим необходимые пакеты

sudo apt install gnupg apt-transport-https

Добавляем официальный репозиторий

echo "deb https://packagecloud.io/timescale/timescaledb/ubuntu/ $(lsb_release -c -s) main" | sudo tee /etc/apt/sources.list.d/timescaledb.list

Качаем и ставим ключ репозитория

wget --quiet -O - https://packagecloud.io/timescale/timescaledb/gpgkey | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/timescaledb.gpg

Обновляем список пакетов

sudo apt-get update

И установим нужные компоненты.

Обратите внимание, что версия TimescaleDB должна соответствовать установленной версии PostgreSQL, в Ubuntu 24.04 это версия 16. Еще один момент - Zabbix поддерживает строго определенные версии TimescaleDB 2.13 - 2.15, поэтому выполним установку с явным указанием версии, при этом вы потом можете смело обновляться, на работу это не повлияет
sudo apt install timescaledb-2-postgresql-16='2.15.*' timescaledb-2-loader-postgresql-16='2.15.*' postgresql-client-16

После установки запустим утилиту конфигурирования TimescaleDB и ответим утвердительно на все вопросы

sudo timescaledb-tune

Утилита timescaledb-tune анализирует текущую конфигурацию PostgreSQL и предлагает оптимальные настройки для работы с TimescaleDB. Она автоматически изменяет параметры в файле postgresql.conf, чтобы улучшить производительность базы данных для работы с временными рядами.

На данном этапе мы не будем углубляться в настройку параметров через timescaledb-tune, поэтому просто отвечаем утвердительно на все вопросы утилиты.

После завершения работы утилиты все изменения будут внесены в файл конфигурации PostgreSQL.

Перезапускаем PostgreSQL

sudo systemctl restart postgresql

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

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

И выполним специальный скрипт для конвертации данных

cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb/schema.sql | sudo -u zabbix psql zabbix
Сообщения в ходе выполнения скрипта о том, что вы не следуете лучшим практикам (not follow best practices) можно смело проигнорировать.

На этом установка и настройка TimescaleDB завершена.

Для завершения установки добавим службы Zabbix в автозагрузку и одновременно запустим их

sudo systemctl enable --now zabbix-server zabbix-agent

Далее переходим по адресу, забитому в конфиге nginx выше или просто по ip и завершаем настройку.

Логин по-умолчанию Admin и пароль zabbix

Благодарю следующие источники за информацию: https://interface31.ru/tech_it/2024/07/ustanovka-zabbix-7-c-nginx-postgresql-timescaledb-na-ubuntu-server.html https://sysadminhub.ru/other/zabbix/how-to-install-zabbix-7-ubuntu-nginx-postgresql-timescaledb https://www.timescale.com/blog/how-to-install-timescaledb-on-aws

  • work/zabbix/zabbix-ubuntu2404-postgresql-nginx.txt
  • Последнее изменение: 2025/03/20 10:38
  • rolland