Установка 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
И установим нужные компоненты.
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
На этом установка и настройка TimescaleDB завершена.
Завершение
Для завершения установки добавим службы Zabbix в автозагрузку и одновременно запустим их
sudo systemctl enable --now zabbix-server zabbix-agent
Далее переходим по адресу, забитому в конфиге nginx выше или просто по ip и завершаем настройку.
Благодарю следующие источники за информацию: 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