Мониторинг zVirt Max средствами Zabbix
Реализация мониторинга zVirt Max средствами Zabbix предполагает комплексную настройку серверного компонента и агентов.
Сервером выступает физическое оборудование либо виртуальная машина, оснащённые СУБД и серверным компонентом Zabbix. Данный сервер/ВМ должен быть размещён вне инфраструктуры виртуализации (не является ВМ или хостом в системе виртуализации zVirt Max) целевой системы виртуализации zVirt Max, подлежащей мониторингу, но имеет сетевой доступ к API Hosted Engine.
Мониторинг системы виртуализации zVirt Max подразделяется на два основных компонента:
-
Мониторинг гипервизоров (hypervisors);
-
Мониторинг менеджера управления (Hosted Engine).
Наблюдение за гипервизором покрывается стандартным шаблоном Linux by Zabbix agent. Для сбора данных из Менеджера управления используется служба мониторинга zvirt-monitor, получающий данные из API Hosted Engine.
1. Предварительная подготовка сервера
В данной инструкции настройка сервера Zabbix 6.4 реализована на базе RED OS MUROM 7.3. Данный сервер/ВМ размещён вне инфраструктуры виртуализации zVirt Max (не является ВМ или хостом в системе виртуализации zVirt Max).
Для настройки сервера на базе других дистрибутивов воспользуйтесь официальной документацией Zabbix.
-
Установите в штатном режиме RED OS MUROM 7.3.
-
Настройте политики безопасности
setsebool -P httpd_can_network_connect on setsebool -P httpd_can_network_connect_db on -
Включите репозитории Ред ОС.
dnf config-manager --enable base, kernels6, updates -
Отключите локальные репозитории.
dnf config-manager --disable offline_redos_main, offline_redos_extras -
Обновите систему.
dnf update -
Установите пакеты
dnf install httpd zabbix-apache-conf zabbix-sql-scripts -
Добавьте сервис httpd в автозагрузку.
systemctl enable httpd --now
2. Установка базы данных
В данной инструкции в качестве сервера баз данных используется PostgreSQL версии 13. Сервер баз данных установлен на том же самом физическом сервере или виртуальной машине, что и сервер Zabbix.
| В продуктивной среде выбор сервера баз данных (Zabbix поддерживает также другие СУБД помимо PostgreSQL) и его расположение зависят от существующей инфраструктуры мониторинга предприятия или организации (например, может использоваться отдельный сервер с кластером баз данных) и предъявленных требований. |
| Сервер баз данных рекомендуется размещать вне инфраструктуры виртуализации zVirt Max. |
-
Установите сервер баз данных PostgreSQL и добавьте его в автозагрузку:
dnf install postgresql13 postgresql13-server systemctl enable postgresql-13 -
Выполните инициализацию нового сервера баз данных postgresql:
/usr/bin/postgresql-13-setup initdb -
Запустите службу postgres:
systemctl start postgresql-13 -
Проверьте работоспособность сервера баз данных:
systemctl status postgresql-13.service
3. Установка сервера Zabbix
| В продуктивной среде серверный компонент Zabbix рекомендуется размещать отдельно от инфраструктуры виртуализации zVirt Max, то есть физически или виртуально изолированно от среды, подлежащей мониторингу. |
-
Установите необходимые пакеты
dnf install zabbix-server-pgsql zabbix-web-pgsql zabbix-agent -
Откройте файл
php.ini.nano /etc/php.iniПриведите параметры к следующему виду и сохраните изменения:
date.timezone = Europe/Moscow #обязательно укажите свой часовой пояс post_max_size = 16M max_execution_time = 300 max_input_time = 300
4. Настройка базы данных
-
Подключитесь из под пользователя
postgresк серверу базы данных.su postgres psql -
Cоздайте пользователя и базу данных с именем
zabbixи предоставьте пользователю права на использование данной БД:CREATE ROLE zabbix WITH NOSUPERUSER LOGIN PASSWORD 'zabbixpassword'; CREATE DATABASE zabbix WITH OWNER zabbix; GRANT ALL PRIVILEGES ON DATABASE zabbix TO zabbix; -
Проверьте создание таблиц.
\lРезультат выполнение команды:
List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- postgres | postgres | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 | template0 | postgres | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres zabbix | zabbix | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 | =Tc/zabbix + | | | | | zabbix=CTc/zabbix (4 rows) -
Отключитесь от базы данных.
\q -
Завершите сессию пользователя postgres:
exit -
В файле /var/lib/pgsql/13/data/postgresql.conf отредактируйте значение параметров
listen_addressesи расскоментируйте параметрport.nano /var/lib/pgsql/13/data/postgresql.confПриведите параметры к следующему виду и сохраните изменения:
listen_addresses = '*' port = 5432 -
В файле
pg_hba.confпредоставте права доступа пользователю zabbix к базе данных по паролю, для этого найдите строкуhost replication all 127.0.0.1/32 scram-sha-256и добавьте запись следующего вида:nano /var/lib/pgsql/13/data/pg_hba.confhost zabbix zabbix 127.0.0.1/32 password host replication all 127.0.0.1/32 scram-sha-256 -
В файле
pg_hba.confзамените все алгоритм хэширования scram-sha-256 на md5. Итоговый вариант файла представлен ниже:# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5 # Allow replication connections from localhost, by a user with the # replication privilege. local replication all peer host zabbix zabbix 127.0.0.1/32 password host replication all 127.0.0.1/32 md5 host replication all ::1/128 md5 -
Перезапустите сервер баз данных.
systemctl restart postgresql-13 -
Импортируйте содержимое SQL-дампа в базу данных.
zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix -
Смените пароль psql.
passwd postgres
5. Настройка сервера Zabbix
-
Отредактируйте файл конфигурации сервера Zabbix. Пропишите данные для подключения к базе данных:
nano /etc/zabbix/zabbix_server.confDBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbixpassword -
Запустите zabbix-сервер и добавьте его в автозагрузку.
systemctl restart zabbix-server systemctl enable zabbix-server systemctl restart zabbix-agent systemctl enable zabbix-agent systemctl restart httpd-
Добавьте правила межсетевого экрана:
firewall-cmd --permanent --add-port=80/tcp firewall-cmd --reload
-
-
Для того чтобы войти в веб-интерфейс, укажите в адресной строке браузера http://<ip-адрес_сервера>/zabbix. Откроется страница приветствия.

-
Нажмите Далее.
-
Затем вы попадете на страницу преднастроек. Если вы ранее указали временную зону, то во всех пунктах должно быть «ОК».

-
Нажмите Далее.
-
Укажите данные для подключения к ранее созданной базе данных:
-
Тип базы данных – PostgreSQL;
-
Хост базы данных – localhost или 127.0.0.1;
-
Порт базы данных – 5432;
-
Имя базы данных – zabbix;
-
Пользователь – zabbix;
-
Пароль – zabbixpassword.

-
-
В следующем окне нужно ввести имя сервера Zabbix. Проверьте часовой пояс и нажмите Далее.

-
Проверьте правильность введенных данных и нажмите Далее.

-
При успешном окончании установки вы увидите следующую страницу.

-
Нажмите Финиш.
-
Введите логин и пароль сервера zabbix. По умолчанию имя пользователя - Admin (регистр важен), пароль - zabbix.

Откроется стандартная панель управления.

6. Установка и настройка службы мониторинга
Для сбора данных из системы виртуализации необходимо установить и настроить службу мониторинга zvirt-monitor.
-
Подключитесь к консоли физического сервера, на котором развернут серверный компонент Zabbix.
-
Скачайте необходимые пакеты.
-
Произведите установку необходимых пакетов:
dnf install -y ovirt-release44.rpm dnf install -y tar gcc libxml2-devel python3-devel python3-ovirt-engine-sdk4 python3-six python3-configparser python3 -m pip install py-zabbix -
Скачайте архив с файлами модуля.
-
Распакуйте файлы с файлами модуля:
tar xvzf zvirt-monitor.tar.gz -C / -
Скопируйте файл-шаблон с настройками и внесите в него необходимые параметры:
cp /etc/zvirt-monitor/zvirt_monitor.example.conf /etc/zvirt-monitor/zvirt_monitor.conf vi /etc/zvirt-monitor/zvirt_monitor.conf
Пример параметров:
[zvirt.company.ru]
URL = https://zvirt.company.ru/ovirt-engine/api
USERNAME = admin@internal
PASSWORD = 123
CA_FILE = /opt/certificates/ca.crt
HOSTNAME = zvirt.company.ru
Скачать ca.crt файл можно командой:
|
-
Выполните запуск службы и убедитесь, что она работает корректно и в логах нет ошибок подключения:
systemctl enable --now zvirt-monitor.service systemctl status zvirt-monitor.service
7. Настройка агентов Zabbix
| Для мониторинга менеджера управления (Hosted Engine) необходимо настроить агент на хосте имеющем доступ к API Hosted Engine. |
На хосте в системе виртуализации zVirt, который необходимо отслеживать, выполните следующие действия:
-
Подключитесь к хосту по протоколу SSH.
-
Добавьте правила межсетевого экрана:
firewall-cmd --permanent --add-port=80/tcp --add-port=10050/tcp --add-port=10051/tcp firewall-cmd --reload -
Установите zabbix-agent:
dnf install zabbix-agent -
Настройте файл конфигурации:
nano /etc/zabbix/zabbix_agentd.confПо умолчанию достаточно прописать IP-адрес сервера мониторинга и указать планируемое имя узла для Zabbix :
Server=<IP-адрес_сервера> Hostname=<Имя-узла> -
Запустите сервис и добавьте его в автозапуск:
systemctl enable zabbix-agent systemctl start zabbix-agent systemctl status zabbix-agent
8. Добавление узлов и шаблонов
8.1. Добавление шаблонов
-
Авторизуйтесь по адресу http://<ip-адрес_сервера>/zabbix, используя Admin/zabbix в качестве логина/пароля.
-
Загрузите в Zabbix предоставленный шаблон zbx_template_zvirt_monitor.xml в раздел .
8.2. Настройка мониторинга Менеджера управления
| Для мониторинга менеджера управления (Hosted Engine) необходимо настроить агент на хосте имеющем доступ к API Hosted Engine. |
-
Авторизуйтесь по адресу http://<ip-адрес_сервера>/zabbix.
-
В разделе создайте узел с именем FQDN-менеджера управления и адресом 127.0.0.1.
Имя узла должно соответствовать имени, указанному в параметре HOSTNAMEфайла /etc/zvirt-monitor/zvirt_monitor.conf.
-
Прикрепите к созданному узлу ранее загруженный шаблон Template zVirt Monitor.(см. Добавление шаблонов).
-
Дождитесь появления данных в разделе :
8.3. Добавление узлов
Наблюдение за хостом виртуализации покрывается стандартным шаблоном Linux by Zabbix agent.
|
Порядок действий:
Предварительно на хосте виртуализации должен быть настроен агент Zabbix, порядок настройки см. в разделе Настройка агентов Zabbix.
|
-
Авторизуйтесь по адресу http://<ip-адрес_сервера>/zabbix.
-
В разделе :
-
укажите Имя узла сети
Имя узла должно соответствовать имени, указанному в параметре HOSTNAMEфайла /etc/zabbix/zabbix_agentd.conf. -
В качестве шаблона выберите стандартный шаблон Linux by Zabbix agent.
-
Добавьте новый интерфейс типа Агент и укажите соответствующий IP-адрес или DNS-имя.
Дополнительно можно создать группы узлов сети, добавить описание или активировать наблюдение через прокси.
-
-
Нажмите Добавить.
-
Дождитесь появления данных в разделе .