Поиск по сайту

telegram

Интересуешься IT и системным администрированием? Подпишись на наш канал, где мы делимся инсайдами, новостями и практическими советами! Прокачай свои навыки вместе с нами!

Как установить Zabbix 7 на Ubuntu 24.04 с использованием веб-сервера NGINX, БД PostgreSQL, и расширением TimescaleDB

Zabbix — это мощная и популярная платформа для мониторинга и управления инфраструктурой. Она позволяет собирать данные о состоянии серверов, сетевых устройств, приложений, баз данных и других компонентов IT-инфраструктуры. Zabbix хоть и популярен, но достаточно сложен, и разобраться с ним на ходу вряд ли получится.

Так что давайте разбираться вместе!

Онлайн-курс: Zabbix 6. Мониторинг IT инфраструктуры предприятия.

Курс предлагает глубокое изучение Zabbix 6 и охватывает все ключевые аспекты: от установки и конфигурации до продвинутого мониторинга и автоматизации. Курс подходит как для начинающих, так и для опытных администраторов.

Конфигурации установки Zabbix

Zabbix поддерживает широкий выбор операционных систем, СУБД и веб-серверов, поэтому на старте важно определиться с основой: какую ОС выбрать для установки, какой веб-сервер использовать и какую базу данных подключить.

Для операционной системы я остановлюсь на Ubuntu Server 24.04. Почему? Просто потому, что среди Linux-систем мне она нравится больше всего. Простота, стабильность и удобство — всё, что нужно.

Теперь о веб-сервере и СУБД. Тут у меня есть два основных варианта:

  1. Apache + MySQL — классическая и проверенная временем связка. Надёжная и понятная.
  2. NGINX + PostgreSQL с расширением TimescaleDB — современное решение с упором на производительность и масштабируемость.

Встаёт вопрос: А какую конфигурацию выбрать?

Все довольно просто. Если вы новичок в Zabbix или работаете в небольшой компании, я рекомендую остановиться на связке Apache + MySQL. Эта конфигурация проста и интуитивно понятна, а значит, вы быстрее с ней разберётесь.

Но, если вы опытный системный администратор или работаете в крупной компании, где ключевую роль играет производительность, то ваш выбор — это NGINX + PostgreSQL с расширением TimescaleDB. Такая комбинация обеспечит высокую скорость работы и масштабируемость системы.

Чтобы не путать новичков, я решил разделить эти две конфигурации на разные статьи. Если вы только начинаете изучать Zabbix, переходите к статье Как установить Zabbix 7 на Ubuntu 24.04 с использованием веб-сервера Apache и базы данных MySQL. А если вы опытный пользователь и нацелены на максимальную производительность, продолжайте читать эту статью.

Важно: Все последующие команды нужно выполнять с правами суперпользователя (root).

Подготовка сервера

Сначала подготовим серверную систему: обновим все пакеты до актуальных версий и очистим систему.

Начнем с подготовки серверной системы. Для этого обновим список доступных пакетов, установим последние версии программного обеспечения и удалим ненужные компоненты. Всё это можно выполнить одной командой:


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.

Важно: Инструкции по установке 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:


nano /etc/zabbix/nginx.conf

Находим два необходимых параметра, редактируем их и обязательно убираем символ # комментария.


listen 80;
server_name zabbix7.itadminlab.ru;

  • listen 80 — указывает порт для работы веб-интерфейса (в данном случае порт 80).
  • server_name — задаёт доменное имя, которое будет обслуживать веб-сервер. В моём случае это zabbix7.itadminlab.ru, а вам следует указать имя, соответствующее вашей конфигурации.

Чтобы сохранить файл в Ubuntu, нажмите сочетание клавиш CTRL + X, затем Y для подтверждения сохранения и ENTER для завершения.

Настройка 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

После этого сервер установится и автоматически запустится — никаких дополнительных действий не потребуется!

Теперь необходимо создать нового пользователя, установить для него пароль и создать базу данных для работы. Для этого выполните следующие команды:


sudo -u postgres createuser --pwprompt zabbix

Эта команда создаёт нового пользователя PostgreSQL с именем zabbix. --pwprompt - позволяет сразу задать пароль для этого пользователя.

Важно: Обратите внимание: префикс sudo -u postgres указывает, что команда выполняется от имени пользователя PostgreSQL postgres, а не от имени суперпользователя root. Это важно, поскольку именно пользователь postgres управляет базами данных и их пользователями в PostgreSQL.

Далее создаём базу данных:


sudo -u postgres createdb -O zabbix zabbix

Эта команда создаёт новую базу данных с именем zabbix и назначает её владельцем пользователя zabbix, которого мы только что создали (опция -O zabbix). Это значит, что пользователь zabbix получит полный контроль над этой базой данных.

Теперь необходимо импортировать начальную схему и данные в созданную базу данных. Для этого выполните следующую команду:


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

Во время выполнения этой команды система запросить ввести пароль, который вы указали для пользователя zabbix на предыдущем шаге. После импорта данных база готова к работе, но чтобы Zabbix сервер мог взаимодействовать с ней, необходимо выполнить небольшую настройку.

  1. Откройте для редактирования файл конфигурации Zabbix сервера:

nano /etc/zabbix/zabbix_server.conf

  1. Найдите параметр DBPassword и задайте пароль, который вы устанавливали для пользователя zabbix на предыдущем шаге, и обязательно не забываем раскомментировать данный параметр.

DBPassword=P@ssw0rd

Замените P@ssw0rd на ваш реальный пароль. Это позволит Zabbix серверу подключаться к базе данных с правильными учётными данными. После сохранения изменений сервер будет готов к полноценной работе с базой данных!

Установка TimescaleDB

Для установки TimescaleDB необходимо выполнить несколько простых шагов.

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

Перед началом работы установите утилиты, которые могут потребоваться для добавления репозитория и работы с ключами:


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 с нужной версией

Важный момент: версия TimescaleDB должна соответствовать версии PostgreSQL, установленной в системе. В Ubuntu 24.04 используется PostgreSQL 16. Кроме того, Zabbix поддерживает строго определённые версии TimescaleDB (2.13–2.15), поэтому установим подходящую версию с указанием диапазона:


apt install timescaledb-2-postgresql-16='2.15.*' timescaledb-2-loader-postgresql-16='2.15.*' postgresql-client-16

После установки вы можете обновлять TimescaleDB, не опасаясь проблем — это не повлияет на работу Zabbix.

Теперь TimescaleDB готова к работе с PostgreSQL и интеграции с Zabbix!

После установки TimescaleDB необходимо запустить утилиту конфигурации TimescaleDB и настроить её параметры. Это можно сделать с помощью команды:


timescaledb-tune

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

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

После завершения работы утилиты все изменения будут внесены в файл конфигурации PostgreSQL. Остаётся перезапустить сервер, чтобы настройки вступили в силу:


systemctl restart postgresql

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

Подключение расширения

Выполните следующую команду:


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

Эта команда создаёт расширение TimescaleDB в базе данных zabbix, если оно ещё не было подключено. Опция CASCADE автоматически подключает любые необходимые зависимости.

Конвертация структуры данных

Далее запустите специальный скрипт для настройки схемы базы данных:


cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb/schema.sql | sudo -u zabbix psql zabbix

Этот скрипт изменяет структуру таблиц Zabbix для использования возможностей TimescaleDB, таких как партиционирование данных. Команда выполняется от имени пользователя zabbix для работы с базой данных zabbix.

Важное замечание! Во время выполнения скрипта вы можете увидеть сообщения о том, что некоторые настройки не соответствуют «Лучшим практикам» (not follow best practices). Эти предупреждения можно игнорировать — они не влияют на работоспособность.

На этом установка и настройка 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 по имени zabbix.local, без необходимости вводить IP-адрес.

Завершение установки Zabbix 7

Чтобы завершить установку, добавим службы Zabbix в автозагрузку и сразу же запустим их:


systemctl enable --now zabbix-server zabbix-agent

Эта команда одновременно включает автоматический запуск сервисов zabbix-server и zabbix-agent при загрузке системы и сразу запускает их в текущей сессии.

Теперь откройте веб-интерфейс по адресу http://zabbix7.itadminlab.ru/ (здесь укажите свой собственный FQDN для сервера Zabbix) и завершите установку. Если эта ссылка не сработала, добавьте в конце /setup.php, то есть перейдите по адресу http://zabbix7.itadminlab.ru/setup.php.

Открылся мастер первоначальной настройки Zabbix, который приветствует нас сообщением «Добро пожаловать в Zabbix 7». Здесь можно выбрать язык установки.

Как видно, у меня на сервере доступен только один язык — английский. Однако если вам понадобятся другие языки, вы сможете добавить их позже. На этом этапе оставляем язык по умолчанию — английский, и переходим к следующему шагу.

Рекомендую использовать Zabbix, а также другие продукты, на языке оригинала — то есть на английском. Это обеспечит лучшую совместимость с документацией и упростит поиск решений и настройку.

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

На следующем экране введите пароль пользователя базы данных, который вы установили при настройке PostgreSQL. Остальные параметры оставляем по умолчанию и нажимаем Далее.

На следующем шаге указываем имя сервера — я использую Zabbix7, вы можете выбрать любое другое. Затем выбираем часовой пояс (я выбираю +3 Москва, вы — свой). В последнем пункте выбираем тему — оставляю голубую по умолчанию, она самая приятная. Нажимаем Далее.

На следующем шаге отображается сводка всех настроек, которые вы выбрали. Проверяем и нажимаем Далее.

Установка веб-интерфейса Zabbix завершена успешно, о чём свидетельствует сообщение на экране. Если потребуется изменить настройки, конфигурационный файл был создан в папке conf. Нажимаем Завершить.

Перед нами форма входа в панель управления Zabbix. Для входа используйте имя пользователя Admin (с большой буквы) и пароль zabbix.

Мы успешно вошли в сервер Zabbix. Поскольку имя пользователя и пароль установлены по умолчанию, их нужно сразу изменить.

Переходим в меню Administration → Users, находим нашего пользователя и выбираем его для редактирования.

Теперь нажимаем кнопку Change Password для смены пароля.

Придумываем более сложный пароль и нажимаем кнопку Update для его сохранения.

Вот и все!

Заключение

В этой статье вы узнали, как настроить Zabbix 7 в связке с веб-сервером NGINX, базой данных PostgreSQL и расширением TimescaleDB. Такая комбинация обеспечивает высокую производительность и масштабируемость, позволяя эффективно обрабатывать большие объемы данных. NGINX обеспечит стабильную работу веб-интерфейса, PostgreSQL гарантирует надежное хранение данных, а TimescaleDB, с его возможностями для работы с временными рядами, улучшит обработку и хранение метрик, что особенно важно для мониторинга и анализа в реальном времени.

Вам понравилась эта статья? Тогда вам, скорее всего, будет интересна другая полезная статья Как установить Zabbix 7 на Ubuntu 24.04 с использованием веб-сервера Apache и базы данных MySQL.

Интересуешься IT и системным администрированием? Подпишись на SysAdminHub в Телеграмм или Макс, чтобы узнавать обо всем первым!

Комментарии (5)

This comment was minimized by the moderator on the site

Подключение официального репозитория TimescaleDB все что указано, не работает ....

  Александр
This comment was minimized by the moderator on the site

А почему не сказано как сделать доступ по https и установить свой ssl ключ?:)

  Ilich
This comment was minimized by the moderator on the site

прошел по ходу установки, в итоге не открывается

  Alex
This comment was minimized by the moderator on the site

Работает - спасибо!

  Oleg
This comment was minimized by the moderator on the site

Все прошло отлично, спасибо, хороший мануал!

  eduard
Здесь не опубликовано еще ни одного комментария

Оставьте свой комментарий

0 Значки
Вложения (0 / 5)
Поделитесь своим местоположением