Общее

ПК СВ "Брест" поддерживает интеграцию с системой мониторинга Zabbix для получения информации о функционировании облака, наряду с общесистемными метриками производительности серверов виртуализации кластера.

Установка

Для установки системы мониторинга в ПК СВ на сервере управления необходимо:

  1. Установить пакет zabbix-agent:

    sudo apt install xmlstarlet zabbix-agent

  2. Установить пакеты librpc-xml-perl и libswitch-perl:

    sudo apt install librpc-xml-perl libswitch-perl

  3. Загрузить с помощью web-браузера архив с конфигурационными файлами brest_zbbx.zip. По умолчанию архив будет сохранен в подкаталоге Загрузки домашнего каталога текущего пользователя.
  4. Распаковать загруженный архив:

    unzip ~/<Загрузки>/brest_zbbx.zip
    где <Загрузки> — каталог в который сохранен архив с конфигурационными файлами.

    Архив с конфигурационными файлами будет распакован в рабочий каталог.

  5. Скопировать распакованные файлы:
    1. в каталог opennebula_zabbix.conf/usr:

      sudo cp -R brest_zbbx/one.sh\ opennebula_zabbix.conf/usr /

    2. в каталог opennebula_zabbix.conf/etc:

      sudo cp -R brest_zbbx/one.sh\ opennebula_zabbix.conf/etc /

    3. в каталог opennebula_zabbix.conf/var:

      sudo cp -R brest_zbbx/one.sh\ opennebula_zabbix.conf/var /

  6. Назначить необходимые права доступа к файлам командами:

    sudo chmod +x /usr/libexec/zabbix-extensions/scripts/one.sh
    sudo chmod 755 /usr/libexec/zabbix-extensions/scripts/one.sh
    sudo chmod 755 /usr/libexec/zabbix-extensions/scripts/
    sudo chmod 755 /usr/libexec/zabbix-extensions/
    sudo chmod 755 /usr/libexec/
    touch /var/lib/zabbix/onehost.out
    touch /var/lib/zabbix/onedatastore.out
    touch /var/lib/zabbix/onevm.out
    touch /var/lib/zabbix/onevnet.out
    chown zabbix:zabbix /var/lib/zabbix/onezabbix.pl
    chmod 755 /var/lib/zabbix/onezabbix.pl

  7. Подготовить файл авторизации для пользователя zabbix:
    1. создать каталог /var/lib/zabbix/.one/:

      sudo mkdir -p /var/lib/zabbix/.one/

    2. скопировать файл one_auth в каталог /var/lib/one/.one/one_auth:

      sudo cp /var/lib/one/.one/one_auth /var/lib/zabbix/.one/one_auth

    3. назначить владельца каталога /var/lib/zabbix:

      Команду необходимо выполнять с правами привилегированного пользователя.

      sudo chown -R zabbix:zabbix /var/lib/zabbix

  8. В скрипте /var/lib/zabbix/onezabbix.pl исправить переменную $RPC_URL:

    $RPC_URL = 'http://127.0.0.1:2633/RPC2';
    CODE

    где $RPC_URL — адрес сервера управления с которого будут прочитаны и записаны в файл данные.

  9. В тот же скрипт /var/lib/zabbix/onezabbix.pl для значения переменной $RPC_AUTH скопировать содержимое файла /var/lib/one/.one/one_auth.
  10. Перезапустить службу zabbix-agent:

    sudo systemctl restart zabbix-agent

Настройка

Для настройки системы мониторинга Zabbix необходимо:

  1. В веб-интерфейсе системы мониторинга перейти НастройкаШаблоныИмпортОбзор и импортировать шаблон (файл с расширением .xml):
  2. Перейти на вкладку НастройкаУзлы сети, выбрать необходимый сервер управления (настроенный на прием данных мониторинга с сервера виртуализации) и прикрепить к нему шаблон:
  3. В настройке сервера управления перейти в Шаблоны, найти шаблон OpenNebula и нажать кнопку Добавить, далее нажать кнопку Обновить. После этого во вкладке Элементы данных сервера управления появятся новые элементы данных и начнется сбор данных мониторинга с сервера виртуализации:

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

Описание элементов данных и триггеров

Элементы данных

Элемент данныхВыражениеПараметрОписание
OpenNebula: Collect Datastores one.collect[datastore]-элемент данных, который вызывает метод для сбора информации о подключенных хранилищах

OpenNebula: Collect Hosts

one.collect[host]-вызывает метод для сбора информации о добавленных серверах виртуализации

OpenNebula: Collect VMs

one.collect[vm] -вызывает метод для сбора информации о созданных ВМ

OpenNebula: Collect VNets 

one.collect[vnet]-вызывает метод для сбора информации о созданных виртуальных сетях

OpenNebula: Datastore Free Space

one.datastore.free_space[100]-вызывает метод для получения свободного дискового пространства в байтах на дисковом хранилище

OpenNebula: Datastore Free Space %

one.datastore.pfree_space[100]ID хранилищавызывает метод для получения свободного дискового пространства в процентах на дисковом хранилище

OpenNebula: Datastores

one.datastores-вызывает метод для получения количества подключенных дисковых хранилищ

OpenNebula: Datastore Total Space

one.datastore.total_space[100]ID хранилищавызывает метод для получения общего количества дискового пространства в байтах на дисковом хранилище

OpenNebula: Datastore Used Space

one.datastore.used_space[100]ID хранилищавызывает метод для получения занятого дискового пространства в байтах на дисковом хранилище

OpenNebula: Datastore Used Space % 

one.datastore.pused_space[100]ID хранилищавызывает метод для получения занятого дискового пространства в процентах на дисковом хранилище

OpenNebula: Groups

one.groups-вызывает метод для получения количества групп в ПК СВ

OpenNebula: Hosts

one.hosts-возвращает общее количество серверов виртуализации
one.hosts[disabled] возвращает количество отключенных серверов виртуализации
one.hosts[error] возвращает количество серверов виртуализации в ошибке
one.hosts[offline]возвращает количество серверов виртуализации не в сети
one.hosts[monitored]возвращает количество серверов виртуализации на мониторинге
one.hosts[monitoring_monitored]возвращает количество серверов виртуализации, которое мониторится в текущий момент

OpenNebula: Hosts CPU Allocated

one.host.cpu_usage[0]ID сервера виртуализациикоторый вызывает метод для получения данных о выделенном количестве CPU

OpenNebula: Hosts CPU Free

one.host.free_cpu[0]ID сервера виртуализациивызывает метод для получения данных о количестве свободных ЦП

OpenNebula: Hosts CPU Free %

one.host.pfree_cpu[0]ID сервера виртуализациивызывает метод для получения данных о количестве свободной мощности ЦП в процентах

OpenNebula: Hosts CPU Total

one.host.total_cpu[0]ID сервера виртуализациивызывает метод для получения данных об общем количестве ЦП

OpenNebula: Hosts CPU Used

one.host.used_cpu[0]ID сервера виртуализациивызывает метод для получения данных о количестве использованной мощности ЦП

OpenNebula: Hosts CPU Used %

one.host.pused_cpu[0]ID сервера виртуализациивызывает метод для получения данных о количестве использованной мощности ЦП в процентах

OpenNebula: Hosts RAM Allocated

one.host.mem_usage[0]ID сервера виртуализациивызывает метод для получения данных о выделенной памяти

OpenNebula: Hosts RAM Free

one.host.free_mem[0]ID сервера виртуализациивызывает метод для получения данных о свободной памяти в байтах

OpenNebula: Hosts RAM Free %

one.host.pfree_mem[0]ID сервера виртуализациивызывает метод для получения данных о свободной памяти в процентах

OpenNebula: Hosts RAM Total

one.host.total_mem[0]ID сервера виртуализациивызывает метод для получения данных о доступной памяти в байтах.

OpenNebula: Hosts RAM Used

one.host.used_mem[0]ID сервера виртуализациивызывает метод для получения данных о использованной памяти в байтах

OpenNebula: Hosts RAM Used %

one.host.pused_mem[0]ID сервера виртуализациивызывает метод для получения данных о использованной памяти в процентах

OpenNebula: Templates

one.template-элемент данных, который вызывает метод для получения количества шаблонов в ПК СВ

OpenNebula: Users

one.users-вызывает метод для получения количества пользователей в ПК СВ

OpenNebula: VMs 

one.vms-возвращает общее количество ВМ
one.vms[active]возвращает работающие ВМ
one.vms[failed]возвращает ВМ в статусе Ошибка
one.vms[pending]возвращает ВМ в статусе Подготовка
one.vms[poweroff]возвращает ВМ в статусе Выключено
one.vms[suspended]возвращает ВМ в статусе Приостановленно 
one.vms[undeployed]возвращает ВМ в статусе Неразмещена
one.vms[unknown]возвращает ВМв статусе Неизвестно

OpenNebula: VNet Leases Free 

one.vnet.free_leases[1]ID виртуальной сетивызывает метод для получения данных о свободном пропускном канале сети

OpenNebula: VNet Leases Free %

one.vnet.pfree_leases[1]ID виртуальной сетивызывает метод для получения данных о свободном пропускном канале сети в процентах

OpenNebula: VNet Leases Total 

one.vnet.total_leases[1]ID виртуальной сетивызывает метод для получения данных о доступном пропускном канале сети

OpenNebula: VNet Leases Used

one.vnet.used_leases[1]ID виртуальной сетивызывает метод для получения данных о использованном пропускном канале сети

OpenNebula: VNet Leases Used %

one.vnet.pused_leases[1]ID виртуальной сетивызывает метод для получения данных о использованном пропускном канале сети в процентах
OpenNebula: VNetsone.vnets-вызывает метод для получения количества виртуальных сетей в ПК СВ

Триггеры

Имя триггераВыражениеОписание
Few number of free network leases in OpenNebula cluster on {HOST.NAME} last(/Template OpenNebula/one.vnet.pfree_leases[1])<20 

срабатывает при уменьшении пропускной способности сети ниже 20 %

Few of available CPU resources in OpenNebula cluster on {HOST.NAME} last(/Template OpenNebula/one.host.pfree_cpu[0])<20 срабатывает при уменьшении ниже 20 % свободных ресурсов ЦП
Few of available Disk space resources in OpenNebula cluster on {HOST.NAME} last(/Template OpenNebula/one.datastore.pfree_space[100])<20 срабатывает при уменьшении ниже 20 % свободных ресурсов дискового хранилища
Few of available RAM resources in OpenNebula cluster on {HOST.NAME} last(/Template OpenNebula/one.host.pfree_mem[0])<20 срабатывает при уменьшении ниже 20 % свободных ресурсов оперативной памяти
OpenNebula: Found hosts in ERROR state on {HOSTNAME} min(/Template OpenNebula/one.hosts[error],#5)>0срабатывает при фиксировании пять раз серверов виртуализации в статусе Error
OpenNebula: Found VMs in FAILED state on {HOSTNAME} min(/Template OpenNebula/one.vms[failed],#5)>0 срабатывает при фиксировании пять раз виртуальных машин в статусе Failed
OpenNebula: Found VMs in UNKNOWN state on {HOSTNAME} min(/Template OpenNebula/one.vms[unknown],#5)>0 срабатывает при фиксировании пять раз виртуальных машин в статусе Unknown
OpenNebula Datastores not collected on {HOSTNAME} last(/Template OpenNebula/one.collect[datastore],#5)=1срабатывает при фиксировании пять раз отсутствия данных дисковых хранилищ
OpenNebula Hosts not collected on {HOSTNAME}last(/Template OpenNebula/one.collect[host],#5)=1срабатывает при фиксировании пять раз отсутствия данных серверов виртуализации
OpenNebula VMs not collected on {HOSTNAME}last(/Template OpenNebula/one.collect[vm],#5)=1 срабатывает при фиксировании пять раз отсутствия данных ВМ
OpenNebula VNets not collected on {HOSTNAME}last(/Template OpenNebula/one.collect[vnet],#5)=1 

срабатывает при фиксировании пять раз отсутствия данных виртуальных сетей