Установка и настройка Zabbix 5
В тексте рассказываем, как установить Zabbix 5, провести базовые настройки и интеграцию с внешними системами. Рассмотрим процесс установки на сервере с ОС CentOS и объясним, как выполнить настройку баз данных и web-интерфейса.
Знакомство с системой
Zabbix — популярная система мониторинга IT-инфраструктуры и приложений с открытым исходным кодом, которой пользуются малые, средние и крупные компании по всему миру. В тексте мы расскажем об установке и настройке пятой версии Zabbix, которая вышла в мае 2020 года.
Основное преимущество продукта — большое сообщество пользователей и, как следствие, множество полезной информации о подходах к использованию, настройке, созданию шаблонов мониторинга и многом другом.
Скачать Zabbix можно на официальном сайте. Продукт поддерживает множество актуальных платформ.
Кроме CentOS, установка Zabbix-сервера из бинарного файла возможна на следующие операционные системы:
- Alma Linux,
- Debian,
- Oracle Linux,
- Raspberry Pi OS,
- Red Hat Enterprise Linux;
- Rocky Linux,
- SUSE Linux Enterprise Server;
- Ubuntu,
- Ubuntu (arm64).
Zabbix и его компоненты
Zabbix — это распределенная система мониторинга, которая состоит из компонентов. Рассмотрим ключевые.
- Zabbix-сервер. Этот компонент — ядро системы мониторинга. Он отвечает за визуализацию, агрегацию и аналитику данных, оповещения, управление распределенными компонентами (прокси и агентами). В качестве web-сервера вендор позволяет использовать Apache или Nginx.
- Zabbix-прокси. Компонент отвечает за управление Zabbix-агентами. Использование прокси опционально, но позволяет снизить нагрузку на Zabbix-сервер за счет переноса с него функций управления агентами и предобработки данных. Эта функциональность появилась как раз в пятой версии Zabbix.
- Zabbix-агент. Агент — конечный компонент инфраструктуры мониторинга. Выполняет сбор и отправку данных о производительности на Zabbix-прокси или Zabbix-сервер.
- База данных Zabbix. Хранилище метрик производительности. Вендор поддерживает реляционные базы данных: MySQL, PostgreSQL, SQL Server, Oracle. Обращаем внимание, что с версии 5.0 прекращена поддержка базы данных IBM DB2.
- Web-интерфейс. Компонент предназначен для мониторинга показателей системы. Также при его помощи можно настраивать отслеживаемые компоненты и основную систему Zabbix.
Готовые решения для установки
Установка Zabbix в виде Docker-контейнера
Установка системы из Docker-контейнера — быстрый способ, который займет не более 10 минут.
1. Добавим репозиторий Docker и установим необходимые пакеты.
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# yum install docker-ce docker-ce-cli containerd.io docker-compose
Следующий шаг — клонирование репозитория Zabbix с Github:
# git clone https://github.com/zabbix/zabbix-docker.git
2. Перейдем в клонированный репозиторий и просмотрим содержимое командой ls
.
# cd zabbix-docker/
# ls
agent docker-compose_v3_centos_mysql_local.yaml java-gateway snmptraps
agent2 docker-compose_v3_centos_pgsql_latest.yaml kubernetes.yaml web-apache-mysql
build.sh docker-compose_v3_centos_pgsql_local.yaml LICENSE web-apache-pgsql
docker-compose_v3_alpine_mysql_latest.yaml docker-compose_v3_ubuntu_mysql_latest.yaml proxy-mysql web-nginx-mysql
docker-compose_v3_alpine_mysql_local.yaml docker-compose_v3_ubuntu_mysql_local.yaml proxy-sqlite3 web-nginx-pgsql
docker-compose_v3_alpine_pgsql_latest.yaml docker-compose_v3_ubuntu_pgsql_latest.yaml README.md zabbix-appliance
docker-compose_v3_alpine_pgsql_local.yaml docker-compose_v3_ubuntu_pgsql_local.yaml server-mysql zbx_env
docker-compose_v3_centos_mysql_latest.yaml generate-stackbrew-library.sh server-pgsql
3. Запустим демон Docker.
# systemctl start docker
4. Соберем и запустим контейнеры с Zabbix.
# docker-compose -f docker-compose_v3_centos_pgsql_latest.yaml up -d
5. После запуска компонентов Zabbix, перейдем в web-интерфейс.
Установка Zabbix из готовых образов
Самый быстрый тип установки — из готовых образов. Разворачивание займет не более 5 минут. Рассмотрим установку Zabbix-сервера из образа в формате Open virtualization format (OVF).
Образ в формате .ovf и многих других можно скачать на официальном сайте Zabbix.
Для разворачивания OVF-образа на локальной машине предварительно нужно установить VirtualBox. Последний поддерживает множество актуальных платформ и доступен для скачивания на сайте Oracle. После установки ПО и загрузки образа, приступим к установке.
1. В интерфейсе VirtualBox нажмем кнопку Импортировать.
2. Выберем образ zabbix_appliance-5.0.0.ovf (рядом с ним должен находиться zabbix_appliance-5.0.0-disk001.vmdk). Нажмем Продолжить, а на следующем экране все параметры оставим по умолчанию и нажмем Импорт.
3. Теперь мы можем открыть виртуальную машину соответствующей кнопкой Запустить. Обратите внимание, что для корректного подключения к интерфейсу Zabbix или виртуальной машине по SSH в сетевых настройках должен быть указан тип подключения Сетевой мост.
4. Дожидаемся успешного запуска виртуальной машины, входим под учетными данными root / zabbix в консоли VirtualBox и выполняем команду # ip a
. В результате увидим настройки сети на виртуальной машине с установленным Zabbix.
5. Теперь подключимся к Zabbix-серверу через браузер. Учетные данные стандартные — Admin / zabbix. Данные о производительности начнут собираться сразу. Установка завершена!
Ручная установка
Основные отличия установки
Рассмотрим установку системы на CentOS, Ubuntu, Debian и Windows. При этом важно отметить, что установка на дистрибутивы Ubuntu и Debian практически не отличается, поэтому подробнее остановимся на CentOS и Windows.
Подобрать команды под конкретную версию Zabbix и версию ОС можно на официальном сайте. Для этого нужно только выбрать конфигурацию вашего сервера, а утилита автоматически подберет список команд со ссылками на документацию. Например, установка Zabbix-прокси пятой версии на сервер с Ubuntu 24.04 и БД PostgreSQL будет выглядеть так:
Установка Zabbix-сервера на CentOS
В первую очередь установим сервер.
1. В панели управления перейдем во вкладку Облачная платформа → Проекты и нажмем на кнопку Создать проект. В следующем окне заполняем имя проекта и нажимаем Создать.
2. После создания проекта вернемся во вкладку Облачная платформа → Серверы и нажмем Создать сервер.
3. В окне конфигурирования нового сервера выбираем источник — CentOS 8 64-bit, vCPU — 4, RAM — 8.
Конфигурация зависит от метрик мониторинга, которые вы будете использовать, а также от времени их хранения. Подробнее о требованиях к аппаратному и программному обеспечению — в официальной документации Zabbix.
В подразделе Сеть выбираем Новый публичный IP-адрес, чтобы позже мы могли подключиться к серверу через SSH и к web-консоли Zabbix через браузер. Остальные параметры можно оставить по умолчанию или настроить исходя из ваших требований.
4. В подразделе Доступ копируем пароль root. Нажимаем на кнопку Создать сервер. Как только сервер будет создан, во вкладке Облачная платформа →Серверы около него появится статус Active. Теперь мы можем подключиться к внешнему плавающему IP-адресу по протоколу SSH.
Перейдем к установке репозиториев ПО. Это нужно для получения актуального набора пакетов с компонентами Zabbix и PostgreSQL.
1. Выполним команды для установки компонентов.
# yum install https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# yum clean all
Репозитории с актуальными версиями устанавливаемых компонентов для различных платформ можно найти на сайтах производителей Zabbix и PostgreSQL.
2. Установим Zabbix-сервер и Zabbix-агент.
# yum install zabbix-server-pgsql zabbix-agent
3. Внесем изменения в конфигурацию репозитория Zabbix. Для этого включим Zabbix frontend в файле /etc/yum.repos.d/zabbix.repo
, изменив значение ключа enabled со значения 0 на 1.
[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/frontend
enabled=1
gpgcheck=1
gpgkey=file://etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
4. Установим Red Hat Software Collections для упрощения дальнейшей настройки, а также PostgreSQL и другие пакеты.
# yum install centos-release-scl
# yum install postgresql12-server zabbix-web-pgsql-scl zabbix-nginx-conf-scl
Обратите внимание, что в инструкции мы работаем с локальным хранилищем на базе PostgreSQL. Если вы используете MySQL, то имя пакета для Zabbix-сервера будет отличаться.
5. Инициализируем и настроим автозапуск, запустим БД PostgreSQL.
# /usr/pgsql-12/bin/postgresql-12-setup initdb
# systemctl enable postgresql-12
# systemctl start postgresql-12
6. После успешного запуска создадим базу данных для Zabbix и пользователя в ней. Первая команда запросит пароль.
# sudo -i -u postgres createuser --pwprompt zabbix
# sudo -i -u postgres createdb -O zabbix zabbix
7. Внесем изменения в конфигурационный файл /var/lib/pgsql/12/data/pg_hba.conf для корректного подключения к БД PostgreSQL с паролем. Метод для обоих подключений должен быть md5.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
8. После создания пользователя организуем для него схему по умолчанию.
# sudo -i -u postgres psql -U zabbix
# zabbix=> create schema zabbix;
# zabbix=> ALTER ROLE zabbix SET search_path = zabbix;
# zabbix=> \q
9. Установим в БД схемы данных.
# zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix
10. Впишем созданный для БД пароль в конфигурационный файл Zabbix /etc/zabbix/zabbix_server.conf
. На этом шаге нам нужны параметры DBHost, DBName, DBSchema, DBUser и DBPassword.
Далее — настроим Nginx для корректной работы в Zabbix.
1. Перейдем в конфигурационный файл /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf
. Раскомментируем две строки и укажем IP-адрес или имя сервера.
listen 80;
server_name <ip адрес или имя сервера>;
2. Перейдем к файлу /etc/opt/rh/rh-php72/php-fpm.d/zabbix.con
и внесем изменения в двух местах.
listen.acl_users = apache,nginx
php_value[date.timezone] = Europe/Moscow
3. Запустим сервисы Zabbix и добавим их в автозапуск.
# systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
# systemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
Если все было настроено верно, то при переходе по имени или адресу сервера в браузере откроется начальное окно настройки Zabbix 5.0.
1. Переходим на экран Configure DB connection и указываем реквизиты подключения к БД.
2. В окне Zabbix server details вводим имя хоста, на котором установлен Zabbix. Порт оставляем по умолчанию.
3. Переходим на последний экран и нажимаем Finish. Настройка завершена.
4. Стандартная учетная запись для входа — Admin с паролем zabbix. Установка завершена и система готова к работе, можно приступать к ее настройке.
В некоторых ситуациях для корректной работы системы Zabbix важно отключить SElinux.
Установка Zabbix-сервера с MySQL в Ubuntu и Debian
Установка Zabbix на Ubuntu и Debian практически идентична из-за схожести дистрибутивов. Отличается только первый этап. Рассмотрим пошаговый процесс установки Zabbix с использованием базы данных MySQL, а также web-серверов Apache и Nginx.
1. Скачаем репозиторий Zabbix, установим его и обновим репозитории. В примере используем Ubuntu 20.04 и Debian 10, но вы можете заменить название дистрибутива исходя из версии.
Для Ubuntu:
wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_5.0+ubuntu20.04_all.deb
dpkg -i zabbix-release_latest_5.0+ubuntu20.04_all.deb
apt update
Для Debian:
# wget https://repo.zabbix.com/zabbix/5.0/debian/pool/main/z/zabbix-release/zabbix-release_latest_5.0+debian10_all.deb
# dpkg -i zabbix-release_latest_5.0+debian10_all.deb
# apt update
2. Установим MySQL, web-интерфейс, Zabbix-сервер, а также Zabbix-агент, если не сделали этого ранее.
Для работы с Apache:
apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-agent
Для работы с Nginx:
apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent
3. Создадим базу данных и пользователя для Zabbix, задаем пароль.
sudo mysql -u root -p
4. В консоли MySQL создадим БД с кодировкой, пользователя и пароль для него, а также выдадим ему доступ к базе данных. Обратите внимание, что система Zabbix поддерживает только кодировку UTF-8.
create database zabbix character set utf8 collate utf8_bin;
create user zabbix@localhost identified by пароль для нового пользователя';
grant all privileges on zabbix.* to zabbix@localhost;
set global log_bin_trust_function_creators = 1;
quit;
5. Импортируем начальную схему и данные на хосте Zabbix. Система запросит пароль — указываем тот, что создали на предыдущем шаге.
zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix
6. В конфигурационном файле Zabbix-сервера /etc/zabbix/zabbix_server.conf
введем после DBPassword=
пароль для подключения к БД. Далее — сохраним изменения и закроем редактор.
7. Для Apache — отредактируем файл /etc/zabbix/apache.conf
. Раскомментируем строку и установим правильный временной пояс, в нашем примере — московский, но вы можете выбрать любой подходящий.
php_value date.timezone Europe/Moscow
Для Nginx — отредактируем файл /etc/zabbix/nginx.conf
. Раскомментируем и настроим директивы listen и server_name.
listen 80;
server_name example.com;
Также при работе с Nginx важно отредактировать файл /etc/zabbix/php-fpm.conf
. Раскомментируем строку и укажем свой часовой пояс.
php_value[date.timezone] = Europe/Moscow
8. Перезапустим web-сервис и настроим автозапуск при загрузке операционной системы.
Для Apache:
# systemctl restart zabbix-server zabbix-agent apache2
# systemctl enable zabbix-server zabbix-agent apache2
Для Nginx:
# systemctl restart zabbix-server zabbix-agent nginx php7.3-fpm
# systemctl enable zabbix-server zabbix-agent nginx php7.3-fpm
Установка завершена!
Установка агента Zabbix на Windows
Перед началом установки создадим в панели управления сервер с ОС Windows.
1. Во вкладке Облачная платформа → Проекты и нажмем на кнопку Создать проект. В следующем окне заполняем имя проекта и нажимаем Создать.
2. Перейдем во вкладку Облачная платформа → Серверы и нажмем Создать сервер.
3. В окне конфигурирования нового сервера выбираем источник — Windows Server 2016 Standard, vCPU — 4, RAM — 8. Остальные настройки оставляем по умолчанию, однако вы можете конфигурировать сервер исходя из ваших требований.
4. В подразделе Сеть выбираем Новый публичный IP-адрес для подключения к серверу через RDP.
5. В подразделе Доступ копируем пароль учетной записи Administrator для дальнейшего доступа к серверу по RDP. Нажимаем на кнопку Создать сервер.
6. Когда сервер будет готов, во вкладке Облачная платформа → Серверы он перейдет в статус Active. Теперь можно подключаться к внешнему плавающему IP-адресу по протоколу RDP.
Установка и настройка Zabbix-агента на Windows-сервер в ручном режиме занимает около 10 минут. Скачать дистрибутив можно на сайте Zabbix.
1. После скачивания архив распакуем в созданную директорию (в нашем примере — C:\Zabbix).
2. Внесем изменение в конфигурационный файл, который хранится в папке conf.
Server=<ip адрес Zabbix-сервера>
3. Установим агент в виде сервиса и запустим его. Для этого выполним zabbix_agentd со специальными реквизитами.
> zabbix_agentd.exe -c C:\Zabbix\conf\zabbix_agentd.conf -i
> zabbix_agentd.exe -c C:\Zabbix\conf\zabbix_agentd.conf --start
4. Добавим агента в web-интерфейсе Zabbix. Перейдем во вкладку Configuration → Hosts и в верхнем правом углу нажмем Create Host.
5. Введем данные сервера — имя, группу и сетевой интерфейс, через который будет выполняться подключение к агенту.
6. Перейдем на вкладку Templates. Так как речь идет об ОС Windows, применим к узлу соответствующий шаблон Template OS Windows by Zabbix agent. Сохраним изменения и подождем начала сбора метрик.
7. Собираемые по узлам метрики доступны на представлении Monitoring → Latest Data. Напротив каждой метрики (Item) есть кнопка Graph, при нажатии на которую открывается соответствующий график. Настройка мониторинга узла с ОС Windows завершена!
Настройка и интеграция Zabbix 5
Рассмотрим добавление пользователя, настройку оповещений и изменение шаблонов мониторинга. Также опишем ключевые технологии и элементы инфраструктуры Zabbix.
Настройка web-интерфейса
В web-интерфейсе мы можем настроить отчеты и мониторить работу серверов. Важно отметить, что фронтенд Zabbix написан на PHP, поэтому для запуска нужен сервер с его поддержкой.
1. Откроем в браузере URL-адрес web-интерфейса Zabbix. Для Nginx — http://<server_ip_or_name>
, для Apache — http://<server_ip_or_name>/zabbix
. Так мы попадем на первую страницу установки. Переходим к следующему этапу, нажав кнопку Next step.
2. Во втором окне убедимся, что на всех строках зафиксирован статус OK.
3. Проверяем поля для подключения к БД. Автоматически заполнено все, кроме пароля. Вводим его.
4. Оставляем поля по умолчанию. Поле Name — опциональное, но при указании имени сервера оно будет отображаться в меню и заголовках страниц.
5. Проверяем настройки и переходим далее.
6. Установка завершена. Нажимаем Finish.
7. Переходим на страницу авторизации, вводим имя и пароль для входа в web-интерфейс.
Добавление пользователя
Для каждого пользователя в Zabbix есть имя и пароль — реквизиты, с которыми можно войти в систему. Все пароли в Zabbix хранятся в зашифрованном виде, а при необходимости можно настроить авторизацию пользователей через Active Directory или LDAP. Рассмотрим работу встроенных в Zabbix пользователей.
Важный нюанс: в системе Zabbix каждый пользователь должен входить в группу. На их основе присваиваются соответствующие права. Создадим пользователя и рассмотрим на примере.
1. В web-интерфейсе Zabbix перейдем в раздел Administration, далее — во вкладку Users. В верхнем правом углу нажмем Create User.
2. Укажем имя пользователя, группу и пароль. Остальные поля можно оставить по умолчанию.
3. Для каждого пользователя можно указать его данные для оповещения: электронную почту, аккаунт в Telegram, имя в Slack и т. д. Для этого перейдем на страницу Media, нажмем Add. В качестве примера выберем Type — Email и укажем адрес электронной почты. Также здесь можно задать критичность событий, по которым нужно отправлять уведомления, а также интервал оповещений.
4. После внесения всей информации нажмем Add во вкладке User и сохраним созданного пользователя.
Важно: для любого пользователя мы можем сменить пароль. Для этого в Administration → Users нужно выбрать соответствующую учетную запись, нажать Change password и ввести новый пароль.
Теперь создадим группу пользователей.
1. Переходим во вкладку Administration → User groups. В верхнем правом углу нажимаем Create user group.
2. Указываем имя группы и созданного пользователя.
3. На странице Permissions указываем имя группы хостов, к данным по которой у создаваемой группы будет доступ. Нажимаем Add.
4. Группа создана. Ей предоставлен требуемый уровень прав, а также привязан пользователь.
Также важно отметить, что одно из нововведений пятой версии Zabbix — поддержка SAML (Security Assertion Markup Language), — открытого стандарта обмена данными аутентификации. Он позволяет использовать одни учетные данные для авторизации и получения доступа в нескольких приложениях.
Помимо прочего, SAML упрощает процесс интеграции с многими облачными провайдерами идентификации. Однако стандарт требует отдельного внимания, так что подробнее о его применении еще расскажем в отдельном тексте.
Низкоуровневое обнаружение (Low Level Discovery, LLD)
Низкоуровневое обнаружение позволяет автоматически ставить на мониторинг динамические экземпляры узлов. Например, файловые системы или сетевые интерфейсы, которые добавят администраторы, автоматически обнаружатся и появятся в системе мониторинга. Помимо прочего, в рамках шаблона можно настроить правила автоматического обнаружения.
В качестве примера рассмотрим Discovery Rules (правила обнаружения) для шаблона Windows. Здесь их четыре для следующих сущностей:
- файловых систем,
- сетевых интерфейсов,
- физических дисков,
- сервисов.
Рассмотрим устройство правила обнаружения для файловых систем. В поле Key указан элемент данных vfs.fs.discovery, встроенный в Zabbix. Он возвращает список файловых систем, примонтированных к серверу. Другие встроенные элементы данных собраны на отдельной странице производителя.
Во вкладке Filters перечислены прототипы данных, которые в случае обнаружения новых элементов распознают их и запишут в БД.
Помимо прочего, Zabbix поддерживает добавление собственных элементов данных, фильтров и макросов.
Изменение шаблонов Zabbix
Шаблоны в Zabbix включают в себя следующие компоненты:
- приложения (Applications),
- экземпляры (Items),
- макросы (Macros),
- триггеры (Triggers),
- правила обнаружения (Discovery rules),
- другие элементы данных.
Каждый из элементов отвечает за свои уникальные возможности. Разберем формирование пороговых схем в триггерах на примере шаблона для Windows и его части — шаблона для файловых систем.
В примере ниже мы видим прототипы триггеров, которые соответствуют порогам по файловым системам Windows-серверов. Чтобы изменить пороговую схему, достаточно перейти в нужный шаблон и внести корректировки.
Получить подробную информацию о создании выражений для настройки порогов можно в документации Zabbix.
Zabbix-прокси
Zabbix-прокси (Zabbix proxy) — процесс, который собирает данные мониторинга и позволяет отправлять их Zabbix-серверу. Он обеспечивает буферизацию информации, которая поступает от агентов, а также ее дальнейшую трансляцию в сторону Zabbix-сервера. Zabbix-прокси использует отдельную базу данных и поддерживает SQLite, MySQL и PostgreSQL.
Zabbix proxy можно эффективно использовать для сбора метрик с агентов в выделенных или удаленных сетях (за файерволом), участков инфраструктуры с ненадежной связью, а также для снижения нагрузки на Zabbix-сервер. Начиная с версии 5.0 прокси поддерживает предобработку данных на своей стороне.
Настройка шифрованной передачи данных
Шифрование данных между Zabbix-агентом и Zabbix-сервером — важный аспект безопасности, особенно при передаче данных через интернет без использования защищенного (зашифрованного) канала. Рассмотрим настройку с использованием предварительно согласованных ключей (Pre-Shared Keys, PSK). Это можно сделать, например, с помощью GnuTLS или OpenSSL. Рассмотрим второй вариант.
Генерация Pre-Shared Key (PSK)
Сгенерируем 256-битный (32-байтный) PSK. На хосте с установленным Zabbix-агентом выполним следующую команду в консоли. Она создаст файл с ключом по указанному пути.
openssl rand -hex 32 > /etc/zabbix5/zabbix_agentd.psk
Настройка агента Zabbix
Откроем конфигурационный файл агента zabbix_agentd.conf и добавим параметры.
- TLSConnect — указывает, что агент будет использовать PSK для подключения.
- TLSAccept — разрешает серверу подключаться с использованием PSK.
- TLSPSKFile — путь к файлу с ключом.
- TLSPSKIdentity — уникальный идентификатор ключа.
TLSConnect=psk
TLSAccept=psk
TLSPSKFile=/etc/zabbix/zabbix_agentd.psk
TLSPSKIdentity=PSK 001
После внесения изменений важно перезапустить Zabbix Agent.
systemctl restart zabbix-agent
Настройка шифрования на Zabbix Server
Перейдем в web-интерфейс Zabbix-сервера и выполним следующие действия.
- Откроем свойства хоста, данные от которого передаются через агент.
2. Перейдем во вкладку Шифрование.
3. Укажем следующие настройки:
- в полях Тип подключения и Соединение с узлом сети — PSK,
- идентификатор PSK — PSK 001 (должен совпадать с
TLSPSKIdentity
в конфигурации агента), - сгенерированный ключ из файла
/etc/zabbix/zabbix_agentd.psk
.
Если шифрование настроено корректно, на странице информации о хосте в web-интерфейсе Zabbix Server будет отображена пометка о зашифрованном соединении. Настройка обеспечивает безопасную передачу данных и минимизирует риски утечки конфиденциальной информации.
Интеграция Zabbix с внешними системами
Разберем возможности интеграции Zabbix с системой визуализации Grafana, которую можно использовать для отображения статусов, графиков, значений и других типов данных.
Об инструменте Grafana, его установке и настройке, подключении внешних источников данных и не только — в отдельном обзоре.
1. Установим и запустим Grafana в виде Docker-контейнера.
# docker run -d -p 3000:3000 grafana/grafana
2. После установки убедимся, что контейнер с Grafana выполняется.
# docker ps | grep grafana
1592a00802b5 grafana/grafana "/run.sh" 2 minutes ago Up 21 minutes 0.0.0.0:3000->3000/tcp optimistic_diffie
3. Используя ID контейнера, установим специализированный плагин для Zabbix и перезагрузим контейнер.
# docker exec 1592a00802b5 grafana-cli plugins install alexanderzobnin-zabbix-app
# docker restart 1592a00802b5
4. Войдем в Grafana через браузер (учетные данные по умолчанию — admin / admin).
5. Активируем плагин для Zabbix. Чтобы это сделать, перейдем в Configurations → Plugins и нажмем Enable.
6. Плагин включен, перейдем к конфигурации. Важные поля для заполнения — URL, User, Password. Остальные настройки можно оставить по умолчанию.
7. Настройка завершена. Можно добавлять на дашборды различные элементы данных на основе метрик из Zabbix.
У Grafana есть множество готовых дашбордов. Их можно найти на сайте проекта и импортировать через web-интерфейс.
Сервер с Zabbix в Selectel
Если нет времени на настройку Zabbix с нуля, в панели управления вы можете создать облачный сервер с готовым приложением Zabbix. Для каждого образа с приложением выполнена подготовка рабочего окружения, настройка необходимых параметров и сборка. Важно отметить, что в этом случае вы оплачиваете только ресурсы облачной платформы.
1. Во вкладке Облачная платформа → Серверы нажмем Создать сервер.
2. Введем имя сервера, выберем регион и пул. От сегмента пула зависит список доступных конфигураций сервера и стоимость ресурсов.
3. Откроем раздел Источник и перейдем во вкладку Приложения. Здесь доступно ПО для администрирования, разработки, проведения видеоконференций и обеспечения информационной безопасности. В списке находим Cloud Zabbix.
4. В блоке Конфигурация выберем фиксированную или произвольную конфигурацию сервера, настроим загрузочный диск. Советуем при настройке исходить из количества метрик мониторинга, которые вы хотите использовать, а также от времени их хранения. Подробнее о расчете конфигурации сервера — в официальной документации Zabbix.
5. В блоке Сеть настроим приватную подсеть и подключим публичный IP-адрес.
6. Укажем пользовательские параметры конфигурации операционной системы. В блоке Автоматизация в поле User data вставим скрипт, который выполнится при загрузке системы. В него можно добавить дополнительные параметры.
При создании сервера с выпуском TLS-сертификата:
#cloud-config
write_files:
- path: "/opt/gomplate/values/user-values.yaml"
permissions: "0644"
content: |
pg_password: "<bd_user_password>"
zabbixDomain: <example.com>
leEmail: <name@example.com>
httpsMethod: redirect
При создании сервера без выпуска TLS-сертификата:
#cloud-config
write_files:
- path: "/opt/gomplate/values/user-values.yaml"
permissions: "0644"
content: |
admin_password: "<bd_user_password>"
zabbixDomain: <example.com>
Вместо <bd_user_password>
укажем пароль пользователя базы данных, который должен содержать:
- более восьми символов,
- не менее одной прописной буквы,
- не менее одной строчной буквы,
- не менее одной цифры.
<example.com>
— домен для доступа к Zabbix. Для домена нужно добавить A-запись и указать в значении записи ваш публичный IP-адрес. Если домен добавлен в DNS-хостинг Selectel (actual), используйте инструкцию Добавить ресурсную запись. После создания сервера для домена автоматически выпустится TLS-сертификат от Let’s Encrypt®.
7. Проверим цену облачного сервера и нажмем Создать сервер.
Заключение
В статье мы рассмотрели различные подходы для установки Zabbix и рассмотрели дополнительные настройки. Этого достаточно для конфигурации базового мониторинга, контроля инфраструктуры и приложений.
Для визуализации, например, статусов доступности и производительности мы рекомендуем использовать удобный инструмент Grafana. Он легко устанавливается и настраивается, о чем мы рассказали в обзоре. Кроме того, есть мобильное приложение, в котором можно просматривать «здоровье» инфраструктуры в режиме реального времени.