Так что давайте разбираться вместе!
Конфигурации установки Zabbix
Zabbix поддерживает широкий выбор операционных систем, СУБД и веб-серверов, поэтому на старте важно определиться с основой: какую ОС выбрать для установки, какой веб-сервер использовать и какую базу данных подключить.
Для операционной системы я остановлюсь на Ubuntu Server 24.04. Почему? Просто потому, что среди Linux-систем мне она нравится больше всего. Простота, стабильность и удобство — всё, что нужно.
Теперь о веб-сервере и СУБД. Тут у меня есть два основных варианта:
- Apache + MySQL — классическая и проверенная временем связка. Надёжная и понятная.
- NGINX + PostgreSQL с расширением TimescaleDB — современное решение с упором на производительность и масштабируемость.
Встаёт вопрос: А какую конфигурацию выбрать?
Все довольно просто. Если вы новичок в Zabbix или работаете в небольшой компании, я рекомендую остановиться на связке Apache + MySQL. Эта конфигурация проста и интуитивно понятна, а значит, вы быстрее с ней разберётесь.
Но, если вы опытный системный администратор или работаете в крупной компании, где ключевую роль играет производительность, то ваш выбор — это NGINX + PostgreSQL с расширением TimescaleDB. Такая комбинация обеспечит высокую скорость работы и масштабируемость системы.
Чтобы не путать новичков, я решил разделить эти две конфигурации на разные статьи. Если вы только начинаете изучать Zabbix, переходите к статье Как установить Zabbix 7 на Ubuntu 24.04 с использованием веб-сервера Apache и базы данных MySQL. А если вы опытный пользователь и нацелены на максимальную производительность, продолжайте читать эту статью.
Подготовка сервера
Сначала подготовим серверную систему: обновим все пакеты до актуальных версий и очистим систему.
Начнем с подготовки серверной системы. Для этого обновим список доступных пакетов, установим последние версии программного обеспечения и удалим ненужные компоненты. Всё это можно выполнить одной командой:
apt update -y && apt full-upgrade -y && apt autoremove -y
apt update -y — обновляет список доступных пакетов и их версий.
apt full-upgrade -y — устанавливает все доступные обновления и обновляет пакеты до последних версий, даже если это требует удаления устаревших компонентов.
apt autoremove -y — удаляет ненужные зависимости, которые больше не используются.
Эта команда приведёт систему в актуальное состояние и освободит место за счёт удаления лишних файлов.
Следующим шагом нужно убедиться, что на сервере установлен правильный часовой пояс. Проверить это можно с помощью команды timedatectl:
root@zabbix7:~# timedatectl
Local time: Tue 2024-12-03 20:50:58 UTC
Universal time: Tue 2024-12-03 20:50:58 UTC
RTC time: Tue 2024-12-03 20:50:59
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
Как видим, часовой пояс на сервере настроен неверно. Исправим это, установив правильный. В моём случае это часовой пояс +3 (Москва). Для этого используем следующую команду:
timedatectl set-timezone Europe/Moscow
Если ваш часовой пояс отличается от моего и вы не знаете, как его указать, воспользуйтесь командой:
timedatectl list-timezones
Она покажет полный список доступных часовых поясов.
Предварительная настройка сервера завершена — продолжаем дальше!
Установка Zabbix 7
Переходим на официальный сайт Zabbix в раздел загрузок, выбираем операционную систему Ubuntu 24.04 и необходимые компоненты: Server, Frontend, Agent, а также PostgreSQL в качестве базы данных и NGINX как веб-сервер.
На этой же странице представлены инструкции по установке Zabbix. Приступим! Первый шаг — установка репозитория Zabbix.
Сначала вводим команду:
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb
Эта команда скачивает пакет zabbix-release с официального репозитория Zabbix. Пакет содержит настройки, необходимые для подключения репозитория Zabbix к вашей системе.
Далее устанавливаем этот пакет командой:
dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb
Эта команда добавляет репозиторий Zabbix в вашу систему, откуда будут загружаться все нужные компоненты.
После этого обновим список доступных пакетов, включая те, что добавились из репозитория Zabbix:
apt update
Теперь система знает о всех доступных пакетах Zabbix.
Далее установим необходимые пакеты для работы Zabbix: сервер, веб-интерфейс и агент:
apt install zabbix-server-pgsql zabbix-frontend-php php8.3-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
Эта команда установит всё необходимое для работы Zabbix: сервер с поддержкой PostgreSQL, веб-интерфейс для управления системой, PHP-модуль для взаимодействия с базой данных, конфигурацию для NGINX, SQL-скрипты для инициализации базы данных и Zabbix-агент для сбора данных.
Настройка веб-сервера и PHP-FPM
Настроим веб-сервер и PHP-FPM, которые обеспечивают работу веб-интерфейса Zabbix.
Настройка веб-сервера NGINX
Сначала открываем файл конфигурации веб-сервера NGINX:
nano /etc/zabbix/nginx.conf
Находим два необходимых параметра, редактируем их и обязательно убираем символ # комментария:
listen 80;
server_name zabbix7.itadminlab.ru;
- listen 80 — указывает порт для работы веб-интерфейса, в данном случае порт 80.
- server_name — задаёт доменное имя, которое будет обслуживать веб-сервер. В моём случае это zabbix7.itadminlab.ru, а вам следует указать имя, соответствующее вашей конфигурации.
Настройка PHP-FPM
Теперь открываем файл:
nano /etc/zabbix/php-fpm.conf
Изменяем следующие параметры:
php_value[post_max_size] = 128M
php_value[upload_max_filesize] = 128M
- post_max_size — задаёт максимальный объём данных, отправляемых серверу за один запрос.
- upload_max_filesize — определяет максимальный размер загружаемого файла.
Эти значения увеличены, чтобы избежать проблем с загрузкой крупных файлов, например, карт или других данных.
Сохранение изменений и перезапуск служб
После внесения изменений сохраняем файлы и перезапускаем службы NGINX и PHP-FPM:
systemctl restart nginx php8.3-fpm
Это базовые настройки, которых достаточно для начала работы. При необходимости вы можете настроить службы более детально под ваши задачи.
Установка СУБД PostgreSQL
Чтобы установить PostgreSQL, выполните следующую команду:
apt install postgresql postgresql-contrib
После этого сервер установится и автоматически запустится.
Теперь необходимо создать нового пользователя, установить для него пароль и создать базу данных для работы Zabbix. Для этого выполните следующую команду:
sudo -u postgres createuser --pwprompt zabbix
Эта команда создаёт нового пользователя PostgreSQL с именем zabbix. Параметр --pwprompt позволяет сразу задать пароль для этого пользователя.
Далее создаём базу данных:
sudo -u postgres createdb -O zabbix zabbix
Эта команда создаёт новую базу данных с именем zabbix и назначает её владельцем пользователя zabbix, которого мы только что создали.
Теперь необходимо импортировать начальную схему и данные в созданную базу данных:
zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix
После импорта данных база готова к работе, но чтобы Zabbix Server мог взаимодействовать с ней, необходимо выполнить ещё одну настройку.
Настройка подключения Zabbix к PostgreSQL
Откройте для редактирования файл конфигурации Zabbix Server:
nano /etc/zabbix/zabbix_server.conf
Найдите параметр DBPassword, раскомментируйте его и задайте пароль, который вы установили для пользователя zabbix:
DBPassword=P@ssw0rd
Замените P@ssw0rd на ваш реальный пароль. После сохранения изменений Zabbix Server сможет использовать эти учётные данные для подключения к PostgreSQL.
Установка TimescaleDB
Теперь установим TimescaleDB и подключим его к базе данных Zabbix.
Установка необходимых пакетов
Перед началом работы установите утилиты, которые могут потребоваться для добавления репозитория и работы с ключами:
apt install gnupg apt-transport-https
Если эти пакеты уже установлены, повторная установка не повредит.
Подключение официального репозитория TimescaleDB
Добавьте репозиторий в список источников APT:
echo "deb https://packagecloud.io/timescale/timescaledb/ubuntu/ $(lsb_release -c -s) main" > /etc/apt/sources.list.d/timescaledb.list
Импорт GPG-ключа репозитория
Загрузите и установите ключ для проверки пакетов из этого репозитория:
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-tune
Утилита timescaledb-tune анализирует текущую конфигурацию PostgreSQL и предлагает параметры для работы с TimescaleDB. Она вносит изменения в конфигурацию PostgreSQL с учётом ресурсов сервера.
На данном этапе мы не будем углубляться в ручную настройку параметров через timescaledb-tune, поэтому подтверждаем предлагаемые изменения.
После завершения работы утилиты перезапускаем PostgreSQL:
systemctl restart postgresql
Подключение расширения TimescaleDB
Теперь подключим расширение TimescaleDB к базе данных Zabbix:
echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix
Эта команда создаёт расширение TimescaleDB в базе данных zabbix, если оно ещё не было подключено. Опция CASCADE автоматически подключает необходимые зависимости.
Конвертация структуры данных Zabbix
Далее запускаем специальный скрипт Zabbix для настройки базы данных под TimescaleDB:
cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb/schema.sql | sudo -u zabbix psql zabbix
Скрипт подготавливает таблицы Zabbix для использования возможностей TimescaleDB и хранения исторических данных.
На этом установка и настройка TimescaleDB для работы с Zabbix завершена.
Настройка локальных DNS
Чтобы получить доступ к Zabbix по имени, а не по IP-адресу, нужно настроить локальный DNS. Рассмотрим два возможных варианта.
Вариант 1: У вас есть домен и контроллер домена
Если у вас уже настроен внутренний домен и контроллер домена, добавьте A-запись о сервере Zabbix в настройки вашего DNS-сервера. Это позволит всем устройствам в домене обращаться к Zabbix по имени.
Вариант 2: У вас нет контроллера домена
Если вы не используете контроллер домена, но всё равно хотите обращаться к Zabbix по имени, можно вручную изменить файл hosts на вашем устройстве.
Для этого откройте файл /etc/hosts в Linux или C:\Windows\System32\drivers\etc\hosts в Windows и добавьте строку:
192.168.0.50 zabbix7.itadminlab.ru
Замените 192.168.0.50 на IP-адрес вашего сервера, а zabbix7.itadminlab.ru — на желаемое имя.
После этого вы сможете обращаться к веб-интерфейсу Zabbix по указанному имени без необходимости каждый раз вводить IP-адрес сервера.
Завершение установки Zabbix 7
Чтобы завершить установку, добавим службы Zabbix в автозагрузку и сразу же запустим их:
systemctl enable --now zabbix-server zabbix-agent
Эта команда одновременно включает автоматический запуск сервисов zabbix-server и zabbix-agent при загрузке системы и сразу запускает их в текущей сессии.
Также убедимся, что NGINX и PHP-FPM запущены:
systemctl status nginx php8.3-fpm zabbix-server
Если Zabbix Server не запускается, в первую очередь смотрим его журнал:
journalctl -u zabbix-server -n 100 --no-pager
Также можно посмотреть основной лог Zabbix Server:
tail -f /var/log/zabbix/zabbix_server.log
Первоначальная настройка веб-интерфейса Zabbix
Теперь откройте веб-интерфейс по адресу http://zabbix7.itadminlab.ru/ — здесь необходимо указать собственный FQDN сервера Zabbix. Если мастер установки автоматически не открылся, перейдите по адресу http://zabbix7.itadminlab.ru/setup.php.
Открылся мастер первоначальной настройки Zabbix, который приветствует нас сообщением «Добро пожаловать в Zabbix 7». Здесь можно выбрать язык установки.
Как видно, у меня на сервере доступен только один язык — английский. Однако если вам понадобятся другие языки, вы сможете добавить их позже. На этом этапе оставляем язык по умолчанию — английский и переходим к следующему шагу.
На следующем шаге мастер выполняет проверку предварительных требований. Если все требования выполнены, нажимаем Далее.
На следующем экране введите пароль пользователя базы данных, который вы установили при настройке PostgreSQL. Остальные параметры оставляем по умолчанию и нажимаем Далее.
На следующем шаге указываем имя сервера — я использую Zabbix7, вы можете выбрать любое другое. Затем выбираем часовой пояс — я выбираю +3 Москва, вы указываете свой. В последнем пункте выбираем тему — оставляю голубую по умолчанию. Нажимаем Далее.
На следующем шаге отображается сводка всех выбранных настроек. Проверяем их и нажимаем Далее.
Установка веб-интерфейса Zabbix завершена успешно, о чём свидетельствует сообщение на экране. Нажимаем Завершить.
Первый вход в Zabbix 7
Перед нами форма входа в панель управления Zabbix. Для входа используйте имя пользователя Admin с большой буквы и пароль zabbix.
Мы успешно вошли в Zabbix. Поскольку имя пользователя и пароль установлены по умолчанию, пароль администратора нужно сразу изменить.
Переходим в меню Administration → Users, находим нашего пользователя и выбираем его для редактирования.
Теперь нажимаем кнопку Change Password для смены пароля.
Придумываем более сложный пароль и нажимаем кнопку Update для его сохранения.
Вот и всё! Zabbix 7 установлен и работает с NGINX, PostgreSQL и TimescaleDB.
Часто задаваемые вопросы
Зачем использовать TimescaleDB вместе с Zabbix?
TimescaleDB расширяет PostgreSQL возможностями, ориентированными на работу с временными рядами. Для Zabbix это особенно актуально при хранении большого объёма исторических метрик.
Обязательно ли устанавливать TimescaleDB?
Нет. Zabbix может работать с обычной PostgreSQL без TimescaleDB. В этой статье рассматривается именно вариант PostgreSQL + TimescaleDB.
Можно ли использовать Apache вместо NGINX?
Да. Для более простой конфигурации с Apache и MySQL у меня есть отдельная инструкция, ссылка на которую приведена в начале и в конце этой статьи.
Как проверить, запустился ли Zabbix Server?
Используйте команду systemctl status zabbix-server. Если сервис не запускается, изучите журнал через journalctl -u zabbix-server и файл /var/log/zabbix/zabbix_server.log.
Почему веб-интерфейс Zabbix не открывается по имени?
Проверьте DNS-запись сервера, параметр server_name в конфигурации NGINX и доступность самого сервера по сети. В небольшой тестовой среде имя можно временно прописать в локальном файле hosts.
Какой логин используется для первого входа в Zabbix?
Стандартная учётная запись — Admin с большой буквы, пароль — zabbix. После первого входа стандартный пароль необходимо изменить.
Можно ли просто обновлять TimescaleDB до любой новой версии?
Нет. Перед обновлением необходимо проверить совместимость новой версии TimescaleDB с установленными версиями PostgreSQL и Zabbix.
Заключение
В этой статье вы узнали, как настроить Zabbix 7 в связке с веб-сервером NGINX, базой данных PostgreSQL и расширением TimescaleDB. Такая конфигурация хорошо подходит для инфраструктур, где важны производительность и дальнейшее масштабирование системы мониторинга. NGINX отвечает за работу веб-интерфейса, PostgreSQL — за хранение данных, а TimescaleDB расширяет возможности базы данных при работе с временными рядами и большим количеством метрик.
Вам понравилась эта статья? Тогда вам, скорее всего, будет интересна другая полезная статья Как установить Zabbix 7 на Ubuntu 24.04 с использованием веб-сервера Apache и базы данных MySQL.