===== Установка Zabbix 7.0 на Ubuntu 24.04 с PostgreSQL и NGINX ===== Т.к. мне понравилась работа PostgreSQL с Timescaledb, то решил не заморачиваться на стандартную связку MySQL и Apache. Будем сразу по жесткому:) ==== Подготовка ==== Для начала обновим систему. Обновим список пакетов sudo apt-get update Далее и саму систему sudo apt-get dist-upgrade Проверяем установленное время на сервере timedatectl Ставим свой. У меня такой: timedatectl set-timezone Europe/Kaliningrad ==== Установка Zabbix ==== Скачиваем с официального сервера пакет для подключения репозитория 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 ==== Настройка веб-сервера и PHP-FPM ==== Настраиваем веб-сервер. Открываем любимым редактором файл **/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 ==== Установка PostgreSQL ==== Ставим актуальную версию 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=пароль установленный ранее ==== Установка TimescaleDB ==== Ставим необходимые пакеты 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]]