Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Мониторинг 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.

Порядок действий
  1. Установите в штатном режиме RED OS MUROM 7.3.

  2. Настройте политики безопасности

    setsebool -P httpd_can_network_connect on
    setsebool -P httpd_can_network_connect_db on
  3. Включите репозитории Ред ОС.

    dnf config-manager --enable base, kernels6, updates
  4. Отключите локальные репозитории.

    dnf config-manager --disable offline_redos_main, offline_redos_extras
  5. Обновите систему.

    dnf update
  6. Установите пакеты

    dnf install httpd zabbix-apache-conf zabbix-sql-scripts
  7. Добавьте сервис httpd в автозагрузку.

    systemctl enable httpd --now

2. Установка базы данных

В данной инструкции в качестве сервера баз данных используется PostgreSQL версии 13. Сервер баз данных установлен на том же самом физическом сервере или виртуальной машине, что и сервер Zabbix.

В продуктивной среде выбор сервера баз данных (Zabbix поддерживает также другие СУБД помимо PostgreSQL) и его расположение зависят от существующей инфраструктуры мониторинга предприятия или организации (например, может использоваться отдельный сервер с кластером баз данных) и предъявленных требований.
Сервер баз данных рекомендуется размещать вне инфраструктуры виртуализации zVirt Max.
Порядок действий
  1. Установите сервер баз данных PostgreSQL и добавьте его в автозагрузку:

    dnf install postgresql13 postgresql13-server
    systemctl enable postgresql-13
  2. Выполните инициализацию нового сервера баз данных postgresql:

    /usr/bin/postgresql-13-setup initdb
  3. Запустите службу postgres:

    systemctl start postgresql-13
  4. Проверьте работоспособность сервера баз данных:

    systemctl status postgresql-13.service

3. Установка сервера Zabbix

В продуктивной среде серверный компонент Zabbix рекомендуется размещать отдельно от инфраструктуры виртуализации zVirt Max, то есть физически или виртуально изолированно от среды, подлежащей мониторингу.
Порядок действий
  1. Установите необходимые пакеты

    dnf install zabbix-server-pgsql zabbix-web-pgsql zabbix-agent
  2. Откройте файл php.ini.

    nano /etc/php.ini

    Приведите параметры к следующему виду и сохраните изменения:

    date.timezone = Europe/Moscow      #обязательно укажите свой часовой пояс
    post_max_size = 16M
    max_execution_time = 300
    max_input_time = 300

4. Настройка базы данных

Порядок действий
  1. Подключитесь из под пользователя postgres к серверу базы данных.

    su postgres
    psql
  2. Cоздайте пользователя и базу данных с именем zabbix и предоставьте пользователю права на использование данной БД:

    CREATE ROLE zabbix WITH NOSUPERUSER LOGIN PASSWORD 'zabbixpassword';
    CREATE   DATABASE zabbix WITH OWNER zabbix;
    GRANT ALL PRIVILEGES ON DATABASE zabbix TO zabbix;
  3. Проверьте создание таблиц.

    \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)
  4. Отключитесь от базы данных.

    \q
  5. Завершите сессию пользователя postgres:

    exit
  6. В файле /var/lib/pgsql/13/data/postgresql.conf отредактируйте значение параметров listen_addresses и расскоментируйте параметр port.

    nano /var/lib/pgsql/13/data/postgresql.conf

    Приведите параметры к следующему виду и сохраните изменения:

    listen_addresses = '*'
    port = 5432
  7. В файле pg_hba.conf предоставте права доступа пользователю zabbix к базе данных по паролю, для этого найдите строку host replication all 127.0.0.1/32 scram-sha-256 и добавьте запись следующего вида:

    nano /var/lib/pgsql/13/data/pg_hba.conf
     host    zabbix		zabbix          127.0.0.1/32        	password
     host    replication     all             127.0.0.1/32           	scram-sha-256
  8. В файле 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
  9. Перезапустите сервер баз данных.

    systemctl restart postgresql-13
  10. Импортируйте содержимое SQL-дампа в базу данных.

    zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix
  11. Смените пароль psql.

    passwd postgres

5. Настройка сервера Zabbix

Порядок действий
  1. Отредактируйте файл конфигурации сервера Zabbix. Пропишите данные для подключения к базе данных:

    nano /etc/zabbix/zabbix_server.conf
    DBHost=localhost
    DBName=zabbix
    DBUser=zabbix
    DBPassword=zabbixpassword
  2. Запустите zabbix-сервер и добавьте его в автозагрузку.

    systemctl restart zabbix-server
    systemctl enable zabbix-server
    systemctl restart zabbix-agent
    systemctl enable zabbix-agent
    systemctl restart httpd
    1. Добавьте правила межсетевого экрана:

      firewall-cmd --permanent --add-port=80/tcp
      firewall-cmd --reload
  3. Для того чтобы войти в веб-интерфейс, укажите в адресной строке браузера http://<ip-адрес_сервера>/zabbix. Откроется страница приветствия.

    zabbix hello

  4. Нажмите Далее.

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

    zabbix require

  6. Нажмите Далее.

  7. Укажите данные для подключения к ранее созданной базе данных:

    • Тип базы данных – PostgreSQL;

    • Хост базы данных – localhost или 127.0.0.1;

    • Порт базы данных – 5432;

    • Имя базы данных – zabbix;

    • Пользователь – zabbix;

    • Пароль – zabbixpassword.

      zabbix connect db

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

    zabbix settings

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

    zabbix accuracy

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

    zabbix serve done

  11. Нажмите Финиш.

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

    zabbix enter

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

zabbix graph ui 1

6. Установка и настройка службы мониторинга

Для сбора данных из системы виртуализации необходимо установить и настроить службу мониторинга zvirt-monitor.

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

  2. Скачайте необходимые пакеты.

  3. Произведите установку необходимых пакетов:

    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
  4. Скачайте архив с файлами модуля.

  5. Распакуйте файлы с файлами модуля:

    tar xvzf zvirt-monitor.tar.gz -C /
  6. Скопируйте файл-шаблон с настройками и внесите в него необходимые параметры:

    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-FILE - это сертификат менеджера управления виртуализацией. Его можно скачать с главной страницы портала администратора.

  • Убедитесь, что в /etc/hosts или DNS есть указание на сервер zvirt.company.ru

Скачать ca.crt файл можно командой:

mkdir -p /opt/certificates/
curl --insecure \
    "https://zvirt.company.ru/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA" \
    -o /opt/certificates/ca.crt
  1. Выполните запуск службы и убедитесь, что она работает корректно и в логах нет ошибок подключения:

    systemctl enable --now zvirt-monitor.service
    systemctl status zvirt-monitor.service

7. Настройка агентов Zabbix

Для мониторинга менеджера управления (Hosted Engine) необходимо настроить агент на хосте имеющем доступ к API Hosted Engine.

На хосте в системе виртуализации zVirt, который необходимо отслеживать, выполните следующие действия:

  1. Подключитесь к хосту по протоколу SSH.

  2. Добавьте правила межсетевого экрана:

    firewall-cmd --permanent --add-port=80/tcp --add-port=10050/tcp --add-port=10051/tcp
    firewall-cmd --reload
  3. Установите zabbix-agent:

    dnf install zabbix-agent
  4. Настройте файл конфигурации:

    nano /etc/zabbix/zabbix_agentd.conf

    По умолчанию достаточно прописать IP-адрес сервера мониторинга и указать планируемое имя узла для Zabbix :

    Server=<IP-адрес_сервера>
    Hostname=<Имя-узла>
  5. Запустите сервис и добавьте его в автозапуск:

    systemctl enable zabbix-agent
    systemctl start zabbix-agent
    systemctl status zabbix-agent

8. Добавление узлов и шаблонов

8.1. Добавление шаблонов

Порядок действий:
  1. Авторизуйтесь по адресу http://<ip-адрес_сервера>/zabbix, используя Admin/zabbix в качестве логина/пароля.

  2. Загрузите в Zabbix предоставленный шаблон zbx_template_zvirt_monitor.xml в раздел Сбор данных  Шаблоны  Импорт.

    zabbix template import

8.2. Настройка мониторинга Менеджера управления

Для мониторинга менеджера управления (Hosted Engine) необходимо настроить агент на хосте имеющем доступ к API Hosted Engine.
Порядок действий:
  1. Авторизуйтесь по адресу http://<ip-адрес_сервера>/zabbix.

  2. В разделе Сбор данных  Узлы сети  Создайте узел сети создайте узел с именем FQDN-менеджера управления и адресом 127.0.0.1.

    Имя узла должно соответствовать имени, указанному в параметре HOSTNAME файла /etc/zvirt-monitor/zvirt_monitor.conf.
    zabbix hosts
  3. Прикрепите к созданному узлу ранее загруженный шаблон Template zVirt Monitor.(см. Добавление шаблонов).

    zabbix hosts temp
  4. Дождитесь появления данных в разделе Мониторинг  Узлы сети  Последние данные:

    zabbix result

8.3. Добавление узлов

Наблюдение за хостом виртуализации покрывается стандартным шаблоном Linux by Zabbix agent.

Порядок действий:
Предварительно на хосте виртуализации должен быть настроен агент Zabbix, порядок настройки см. в разделе Настройка агентов Zabbix.
  1. Авторизуйтесь по адресу http://<ip-адрес_сервера>/zabbix.

  2. В разделе Сбор данных  Узлы сети  Создайте узел сети:

    1. укажите Имя узла сети

      Имя узла должно соответствовать имени, указанному в параметре HOSTNAME файла /etc/zabbix/zabbix_agentd.conf.
    2. В качестве шаблона выберите стандартный шаблон Linux by Zabbix agent.

    3. Добавьте новый интерфейс типа Агент и укажите соответствующий IP-адрес или DNS-имя.

      Дополнительно можно создать группы узлов сети, добавить описание или активировать наблюдение через прокси.

      zabbix add hosts
  3. Нажмите Добавить.

  4. Дождитесь появления данных в разделе Мониторинг  Узлы сети  Последние данные.