Установка и настройка Zabbix c нуля в Ubuntu Linux
Zabbix — система мониторинга с открытым исходным кодом. Она предназначена для контроля состояния серверов, сетевого оборудования, виртуальных машин, приложений и различных IT-сервисов в режиме реального времени. Рассказываем, как установить и настроить ее в Ubuntu Linux.

Цели и преимущества использования Zabbix в Ubuntu Linux
Zabbix собирает и анализирует данные о производительности и доступности компонентов инфраструктуры. Например, с помощью этой системы контролируют нагрузку на процессор, состояние памяти и дисков, сетевую активность, работу служб. Узлы и сервисы можно мониторить из одной консоли, что важно для больших компаний.
Схема сбора данных 
Есть две цели внедрения Zabbix — оптимизация использования ресурсов и предупреждение возможных инцидентлв в IT-инфраструктуре. Система может обнаруживать проблемы и автоматически отправлять оповещения о сбоях и нарушениях.
Возможности ZabbixПреимущества использования Zabbix в Ubuntu Linux:
Совместимость и стабильность — Zabbix официально поддерживается в Ubuntu, благодаря чему можно без проблем установить решение и получать регулярные обновления.
Удобство развертывания — система мониторинга легко устанавливается через пакетный менеджер apt.
Гибкая настройка — можно создавать собственные метрики, триггеры и сценарии автоматизации.
Глобальное сообщество поддержки — есть много документации и инструкций по установке Zabbix, поэтому всегда можно получить помощь.
Использование Zabbix в Ubuntu Linux позволяет создать надежную и гибкую систему наблюдения за ресурсами, своевременно выявлять проблемы и поддерживать работу корпоративных сервисов.
Предварительные требования и подготовка системы к установке Zabbix
Прежде чем перейти к установке, убедитесь, что операционная система и программное обеспечение готовы к работе с Zabbix.
Требования к операционной системе и программному обеспечению
Система мониторинга поддерживает все дистрибутивы Linux — как 32-битные, так и 64-битные архитектуры. Рекомендуем использовать свежие версии Ubuntu, например, 22.04 или 20.04 (Focal). Для них доступны официальные пакеты Zabbix.
Для полноценной работы Zabbix Server и веб-интерфейса помимо ОС нужны следующие компоненты:
Система управления базами данных: PostgreSQL, MySQL, Oracle, IBM DB2 или SQLite.
Веб-сервер: Apache 1.3.12 и выше или Nginx (часто используется в последних установках).
PHP: версия 5.0 или выше.
Модули PHP: php-gd, php-bcmath, php-xml, php-session, php-mbstring, php-mysql, php-pgsql и т.д.
Проверка совместимости компонентов
Zabbix состоит из нескольких компонентов: сервера, web-интерфейса, прокси, агента и базы данных. Краткое описание каждого:
Zabbix Server — главный компонент, который отвечает за сбор информации от агентов, прокси и других источников, а также за обработку триггеров, отправку уведомлений и хранение данных в базе.
Zabbix Web-интерфейс (Frontend) — графический интерфейс для администрирования и мониторинга. Применяется для настройки компонентов системы мониторинга, просмотра данных и отчетов, управления пользователями.
Zabbix Proxy — промежуточный сервер, который нужен для сбора данных от агентов и их передачи на основной сервер. Позволяет разгрузить главный сервер и обеспечить мониторинг удаленных объектов.
Zabbix Agent (Агент) — компонент, установленный непосредственно на хостах. Собирает метрики о состоянии системы (CPU, память, диски, процессы и т.д.) и отправляет их на сервер или прокси.
База данных (Database) — хранилище информации Zabbix. Здесь хранятся все настройки, собранные данные, события, журналы логов.
Компоненты ZabbixПеред установкой на операционную систему необходимо проверить, какие компоненты можно установить. С Linux проблем не будет — ОС совместима со всеми.
Совместимость компонентов Настройка времени
Перед установкой Zabbix не забудьте настроить правильное время на сервере. Это важно, чтобы знать, когда была собрана информация.
Воспользуйтесь командой:
Здесь пример с московским временем, но можно выбрать любой часовой пояс. Затем нужно установить и запустить сервис синхронизации:
Настройка брандмауэра
Чтобы сервис мониторинга мог беспрепятственно работать, откройте порты:
iptables -I INPUT -p tcp --match multiport --dports 80,443 -j ACCEPT — для http и https запросов через веб-интерфейс.
iptables -I INPUT -p tcp --match multiport --dports 10050,10051 -j ACCEPT — для открытия портов 10050 и 10051 входящего TCP трафика.
iptables -I INPUT -p udp --match multiport --dports 10050,10051 -j ACCEPT — для получения данных от zabbix-агентов.
Подтвердите и сохраните изменения с помощью команд:
Установка Zabbix
Наше руководство описывает установку Zabbix 7.0 LTS (последней LTS-версии) на Ubuntu 22.04 LTS с использованием PostgreSQL в качестве базы данных.
Добавление репозитория Zabbix
Чтобы пакетный менеджер мог найти установочные пакеты, нужно подключить официальный репозиторий Zabbix. Как действовать:
Скачайте пакет репозитория. Можно использовать программу wget для загрузки .deb файла, который автоматически настроит репозиторий в вашей системе. Команда:
Установите скачанный пакет. Утилита dpkg установит этот пакет, добавляя новый источник приложений. Команда:
Обновите список пакетов. После добавления нового репозитория актуализируйте локальный кэш apt, чтобы он «увидел» новые пакеты Zabbix. Команда:
Установка Zabbix-сервера, веб-интерфейса и агента
Если репозиторий подключен, можно одной командой sudo apt install zabbix-server-pgsql zabbix-frontend-php zabbix-agent установить компоненты Zabbix:
zabbix-server-pgsql. Это сам Zabbix-сервер. В примере — версия pgsql для работы с базой данных PostgreSQL.
zabbix-frontend-php. Это веб-интерфейс для управления. Он автоматически установит в качестве зависимостей веб-сервер (Apache) и PHP.
zabbix-agent. Агент для мониторинга сервера, где установлен Zabbix.
Если вы хотите использовать не PostgreSQL, а MySQL, замените zabbix-server-pgsql на zabbix-server-mysql в команде:
Установка пакетов — это первый шаг к работе с Zabbix. Дальше нужно создать базу данных и пользователя для Zabbix, импортировать начальную схему и настроить конфигурационный файл Zabbix-сервера.
Настройка Zabbix
После установки пакетов Zabbix-сервера необходимо создать и настроить базу данных и изменить конфигурационный файл сервера. Продолжим на примере с PostgreSQL.
Создание и настройка базы данных для Zabbix
Сначала переключитесь на пользователя postgres и запустите командную строку PostgreSQL:
Здесь:
createuser. Создает пользователя с именем zabbix и запрашивает пароль;
createdb. Создает базу данных с именем zabbix и назначает ее владельцем (-O) созданного пользователя zabbix.
Подключение к базе данных Затем нужно импортировать таблицы, схемы и начальные данные, которые Zabbix использует для своей работы. Эти SQL-файлы поставляются вместе с пакетом Zabbix-сервера.
Используйте команды zcat и psql для импорта схемы:
sudo zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix
zcat. Распаковывает архивный SQL-файл схемы;
psql zabbix. Подключается к базе данных как пользователь zabbix и выполняет команды из файла.
Можно подключить сервис Evolution Managed PostgreSQL от Cloud.ru в качестве сервера базы данных. В него встроены собственные инструменты сервиса для мониторинга, но с помощью Zabbix вы будете получать еще больше информации.

Конфигурация zabbix-server
Основной конфигурационный файл Zabbix-сервера находится по адресу /etc/zabbix/zabbix_server.conf. В нем нужно указать данные для подключения к базе данных, которую вы создали.
Откройте файл командой sudo nano /etc/zabbix/zabbix_server.conf и настройте параметры базы данных. Измените или раскомментируйте следующие строки, используя информацию, которую ввели при создании пользователя:
DBHost=localhost:
DBName=zabbix:
DBUser=zabbix:
DBPassword=zabbixpassword.
Дальше настройте параметры конфигурации для корректной работы. В таблице рекомендуемые значения, но их можно корректировать в зависимости от нагрузки.
Параметр | Описание | Рекомендуемые значения |
StartPollers | Количество процессов для активных проверок | 5-10 |
StartPingers | Количество процессов для проверки доступности через ICMP (ping) | 2-5 |
StartTrappers | Количество процессов для обработки входящих данных от агентов и отправителей | 5-10 |
CacheSize | Размер выделенной памяти для кэша данных конфигурации Zabbix | 256 M, но все зависит от размера базы данных |
Timeout | Таймаут в секундах для сетевых запросов | 3-5 |
Дальше запустите и включите Zabbix-сервер:
Убедитесь, что служба запущена и работает без ошибок:
Конфигурация Zabbix-сервераТеперь Zabbix-сервер запущен, подключен к базе данных и готов к работе. Следующий этап — настройка веб-интерфейса через браузер.
Настройка веб-интерфейса Zabbix
Веб-интерфейс Zabbix вы уже установили как пакет zabbix-frontend-php. Он, в свою очередь, автоматически установил Apache и PHP. Чтобы веб-интерфейс заработал, нужно настроить эти компоненты.
Установка и настройка веб-сервера
По умолчанию Zabbix-Frontend устанавливает Apache2. Конфигурационный файл Apache для Zabbix находится по адресу /etc/apache2/conf-enabled/zabbix.conf. Проверьте, что там правильно указаны директории и настройки.
Затем нужно настроить PHP для Zabbix. Конфигурационный файл Zabbix для PHP чаще всего находится здесь: /etc/php/8.x/apache2/php.ini или /etc/php/8.x/fpm/php.ini в зависимости от версии PHP, установленной с Apache.
Откройте файл, который создает Zabbix-Frontend:
Замените '8.x' на вашу версию PHP.
Убедитесь, что параметры соответствуют следующим требованиям:
После любых изменений в конфигурации PHP или Apache перезапустите веб-сервер с помощью команды: sudo systemctl restart apache2.
Начальная настройка интерфейса
Веб-интерфейс Zabbix теперь доступен через ваш браузер. Откройте его и перейдите сюда: http://<IP-адрес_вашего_сервера>/zabbix. Дальше действуйте так:
Нажмите Next step.
Дождитесь, пока Zabbix проверит, соответствуют ли настройки PHP (таймауты, память и т.д.) его требованиям. Если какой-то пункт будет выделен красным, нужно вернуться к файлу /etc/php/8.x/apache2/conf.d/30-zabbix.ini, внести изменения и перезапустить Apache2.
Введите параметры базы данных, которую вы создали ранее. Database type — PostgreSQL, Database host — localhost (либо ip-адрес базы данных, если он установлен на другой машине или используется сервисом Evolution Managed PostgreSQL), Database port — 5432, Database name — zabbix, User: — zabbix, Password: zabbixpassword (ваш пароль).
Введите параметры вашего сервера Zabbix. Host — localhost, Port — 10051, Name — любое имя для сервера Zabbix.
Проверьте сводку и нажмите Next step, затем Finish.
Войдите в систему, используя стандартные учетные данные.
Установка и настройка Zabbix Agent
Zabbix Agent — компонент, который устанавливается непосредственно на рабочие станции или серверы. Он собирает данные с клиентских машин и передает их на Zabbix Server.
Установка агента на узлы
Добавьте официальный репозиторий Zabbix, если еще этого не сделали:
Установите агент:
Откройте конфигурационный файл:
Установите основные параметры. Вот пример:
После настроек запустите службу:
Проверьте, что порт агента открыт и не занят другими службами. По умолчанию это 10050:
Проверьте доступность агента с Zabbix-сервера:
Добавление узлов в Zabbix-сервер
Первым делом войдите в веб-интерфейс Zabbix и откройте панель Zabbix Server: http://<IP_сервера_Zabbix>/zabbix. Затем войдите под учетными данными администратора. По умолчанию это Admin/zabbix, но для безопасности нужно подставить другие параметры.
Далее добавьте новый узел. Для этого перейдите: Configuration → Hosts → Create host. Укажите следующие параметры:
Hostname — должно совпадать с Hostname в конфиге агента.
Visible name — имя, которое будет отображаться (по желанию).
Groups — выберите группу или создайте новую, например, Linux servers.
Agent interfaces — IP-адрес хоста и порт агента. По умолчанию это 10050.
Добавьте шаблоны мониторинга в разделе Templates → Link new templates. Например, выберите Template OS Linux by Zabbix agent. Это позволит автоматически собирать стандартные метрики ОС (нагрузка CPU, память, сеть и т.д.).
Добавление узловНажмите Add, чтобы сохранить хост. Когда агент начнет передавать данные, узел появится в списке Monitoring → Hosts со статусом Available.
Шифрование данных и безопасность
Чтобы защитить данные, которые передаются между Zabbix-сервером и Zabbix-агентами, настройте шифрование, используя TLS (Transport Layer Security). С его помощью можно предотвратить подмену и перехват информации.
Zabbix поддерживает шифрование на основе PSK (Pre-Shared Key) или сертификатов. PSK проще в настройке, зато сертификаты обеспечивают более высокий уровень безопасности.
Поддержка шифрования Пример настройки шифрования на основе PSK
PSK (Pre-Shared Key) — это общий секретный ключ, который будут «знать» и сервер, и агент. Он поможет установить защищенное соединение.
Чтобы настроить ключ на сервере, откройте конфигурационный файл sudo nano /etc/zabbix/zabbix_server.conf и добавьте следующие строки:
Что они значат:
TLSConnect=psk — сервер будет подключаться с использованием PSK.
TLSAccept=psk — сервер будет принимать подключения по PSK (от агентов/прокси).
TLSPSKIdentity=ServerPSK — имя секретного ключа.
TLSPSKFile=/etc/zabbix/zabbix_server.psk — путь к файлу, где лежит сам секретный ключ.
Затем нужно выполнить команду:
Здесь openssl rand -hex 32 генерирует случайное 32-байтное число, которое и будет секретным ключом. Его нужно записать в файл /etc/zabbix/zabbix_server.psk.
Затем нужно ограничить доступ к файлу:
chmod 640 — файл могут читать только отдельные пользователи zabbix и группа zabbix;
chown zabbix:zabbix — делаем владельцем пользователя и группу zabbix.
На стороне агента нужно сделать аналогичные настройки. Откройте конфиг sudo nano /etc/zabbix/zabbix_agentd.conf. Добавьте:
Идентификатор (TLSPSKIdentity) одинаковый — ServerPSK. Ключ (TLSPSKFile) тоже должен содержать одинаковое значение на сервере и агенте.
Чтобы применить изменения, выполните команду:
Пример настройки шифрования TLS с сертификатами
Смысл способа в том, что каждый участник соединения — сервер, агент и прокси имеет уникальный сертификат для расшифрования данных. Подлинность этих сертификатов подтверждается центром сертификации.
Настройка шифрования TLSНа сервере Zabbix или на отдельной безопасной машине нужно выполнить следующие действия:
В примере ca.key — это приватный ключ, который нужно хранить в секрете, ca.crt — публичный сертификат. Его можно распространять.
Дальше нужно создать сертификат для Zabbix-сервера:
После этих действий у сервера будет сертификат — server.crt и приватный ключ — server.key, сертификат СА для проверки ключа — ca.crt.
Дальше нужно создать сертификат на агенте:
Перечень ключей Готовые сертификаты нужно распространить. На агент и сервер — ca.crt. На сервер — server.crt и server.key. На агент — agent.crt и agent.key.
Пример команды:
Защита Web-интерфейса
Нужно установить на веб-сервер SSL-сертификат (например, Let’s Encrypt) и настроить HTTPS. Рассказываем алгоритм действий на примере Apache.
Установите модуль SSL:
Включите модуль SSL в Apache:
Получите бесплатный SSL-сертификат Let’s Encrypt:
Создайте или отредактируйте SSL-конфиг, если он есть: /etc/apache2/sites-available/zabbix-ssl.conf. Файл может выглядеть так:
Настройте редирект с HTTP→HTTPS. Для этого создайте или дополните конфиг HTTP-сайта:
Заключение
С помощью Zabbix можно обеспечить полный мониторинг «из коробки» — собирать метрики с серверов, сетевых устройств, приложений, баз данных. После настройки всех компонентов не забывайте регулярно их обновлять, чтобы обеспечивать безопасность и расширять функциональность. Об этих и других нюансах можно больше узнать из официальной документации Zabbix.
