Download PDF
Download page Zabbix и ПК СВ "Брест".
Zabbix и ПК СВ "Брест"
Общее
ПК СВ "Брест" поддерживает интеграцию с системой мониторинга Zabbix для получения информации о функционировании облака, наряду с общесистемными метриками производительности серверов виртуализации кластера.
Развертывание системы мониторинга Zabbix описано в статье Установка системы мониторинга Zabbix на Astra Linux SE.
Установка
Для установки системы мониторинга в ПК СВ на сервере управления необходимо:
Установить пакет
zabbix-agent
:sudo apt install xmlstarlet zabbix-agent
Установить пакеты
librpc-xml-perl
иlibswitch-perl
:sudo apt install librpc-xml-perl libswitch-perl
- Загрузить с помощью web-браузера архив с конфигурационными файлами brest_zbx.zip. По умолчанию архив будет сохранен в подкаталоге Загрузки домашнего каталога текущего пользователя.
Распаковать загруженный архив:
гдеunzip ~/<Загрузки>/brest_zbx.zip
<Загрузки>
— каталог в который сохранен архив с конфигурационными файлами.Архив с конфигурационными файлами будет распакован в рабочий каталог.
- Скопировать распакованные файлы:
в каталог
opennebula_zabbix.conf/usr
:sudo cp -R brest_zbx/opennebula_zabbix/one.sh\ opennebula_zabbix.conf/usr /
в каталог
opennebula_zabbix.conf/etc
:sudo cp -R brest_zbx/opennebula_zabbix/one.sh\ opennebula_zabbix.conf/etc /
в каталог
opennebula_zabbix.conf/var
:sudo cp -R brest_zbx/opennebula_zabbix/one.sh\ opennebula_zabbix.conf/var
/
Назначить необходимые права доступа к файлам командами:
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
- Подготовить файл авторизации для пользователя zabbix:
создать каталог
/var/lib/zabbix/.one/
:sudo mkdir -p /var/lib/zabbix/.one/
скопировать файл
one_auth
в каталог/var/lib/one/.one/one_auth
:sudo cp /var/lib/one/.one/one_auth /var/lib/zabbix/.one/one_auth
назначить владельца каталога
/var/lib/zabbix
:Команду необходимо выполнять с правами привилегированного пользователя.
sudo chown -R zabbix:zabbix /var/lib/zabbix
В скрипте
/var/lib/zabbix/onezabbix.pl
исправить переменную $RPC_URL:$RPC_URL = 'http://127.0.0.1:2633/RPC2';
CODEгде
$RPC_URL
— адрес сервера управления с которого будут прочитаны и записаны в файл данные.- В тот же скрипт
/var/lib/zabbix/onezabbix.pl
для значения переменной$RPC_AUTH
скопировать содержимое файла/var/lib/one/.one/one_auth
. Перезапустить службу
zabbix-agent
:sudo systemctl restart zabbix-agent
Настройка
Для настройки системы мониторинга Zabbix необходимо:
- В веб-интерфейсе системы мониторинга перейти Настройка — Шаблоны — Импорт — Обзор и импортировать шаблон (файл с расширением
.xml
): - Перейти на вкладку Настройка — Узлы сети, выбрать необходимый сервер управления (настроенный на прием данных мониторинга с сервера виртуализации) и прикрепить к нему шаблон:
В настройке сервера управления перейти в Шаблоны, найти шаблон OpenNebula и нажать кнопку Добавить, далее нажать кнопку Обновить. После этого во вкладке Элементы данных сервера управления появятся новые элементы данных и начнется сбор данных мониторинга с сервера виртуализации:
Элементы данных клонируются в соответствии с количеством серверов виртуализации, хранилищ данных, виртуальных машин и виртуальных сетей, которые планируется подключать к мониторингу.
Дальнейшая, более точная, настройка мониторинга элементов данных и триггеров осуществляется в зависимости от инфраструктуры, количества ресурсов и производственной необходимости.
Описание элементов данных и триггеров
Элементы данных
Элемент данных | Выражение | Параметр | Описание |
---|---|---|---|
OpenNebula: Collect Datastores | one.collect[datastore] | - | элемент данных, который вызывает метод для сбора информации о подключенных хранилищах |
| one.collect[host] | - | вызывает метод для сбора информации о добавленных серверах виртуализации |
| one.collect[vm] | - | вызывает метод для сбора информации о созданных ВМ |
| one.collect[vnet] | - | вызывает метод для сбора информации о созданных виртуальных сетях |
| one.datastore.free_space[100] | - | вызывает метод для получения свободного дискового пространства в байтах на дисковом хранилище |
| one.datastore.pfree_space[100] | ID хранилища | вызывает метод для получения свободного дискового пространства в процентах на дисковом хранилище |
| one.datastores | - | вызывает метод для получения количества подключенных дисковых хранилищ |
| one.datastore.total_space[100] | ID хранилища | вызывает метод для получения общего количества дискового пространства в байтах на дисковом хранилище |
| one.datastore.used_space[100] | ID хранилища | вызывает метод для получения занятого дискового пространства в байтах на дисковом хранилище |
| one.datastore.pused_space[100] | ID хранилища | вызывает метод для получения занятого дискового пространства в процентах на дисковом хранилище |
| one.groups | - | вызывает метод для получения количества групп в ПК СВ |
| one.hosts | - | возвращает общее количество серверов виртуализации |
one.hosts[disabled] | возвращает количество отключенных серверов виртуализации | ||
one.hosts[error] | возвращает количество серверов виртуализации в ошибке | ||
one.hosts[offline] | возвращает количество серверов виртуализации не в сети | ||
one.hosts[monitored] | возвращает количество серверов виртуализации на мониторинге | ||
one.hosts[monitoring_monitored] | возвращает количество серверов виртуализации, которое мониторится в текущий момент | ||
| one.host.cpu_usage[0] | ID сервера виртуализации | который вызывает метод для получения данных о выделенном количестве CPU |
| one.host.free_cpu[0] | ID сервера виртуализации | вызывает метод для получения данных о количестве свободных ЦП |
| one.host.pfree_cpu[0] | ID сервера виртуализации | вызывает метод для получения данных о количестве свободной мощности ЦП в процентах |
| one.host.total_cpu[0] | ID сервера виртуализации | вызывает метод для получения данных об общем количестве ЦП |
| one.host.used_cpu[0] | ID сервера виртуализации | вызывает метод для получения данных о количестве использованной мощности ЦП |
| one.host.pused_cpu[0] | ID сервера виртуализации | вызывает метод для получения данных о количестве использованной мощности ЦП в процентах |
| one.host.mem_usage[0] | ID сервера виртуализации | вызывает метод для получения данных о выделенной памяти |
| one.host.free_mem[0] | ID сервера виртуализации | вызывает метод для получения данных о свободной памяти в байтах |
| one.host.pfree_mem[0] | ID сервера виртуализации | вызывает метод для получения данных о свободной памяти в процентах |
| one.host.total_mem[0] | ID сервера виртуализации | вызывает метод для получения данных о доступной памяти в байтах. |
| one.host.used_mem[0] | ID сервера виртуализации | вызывает метод для получения данных о использованной памяти в байтах |
| one.host.pused_mem[0] | ID сервера виртуализации | вызывает метод для получения данных о использованной памяти в процентах |
| one.template | - | элемент данных, который вызывает метод для получения количества шаблонов в ПК СВ |
| one.users | - | вызывает метод для получения количества пользователей в ПК СВ |
| one.vms | - | возвращает общее количество ВМ |
one.vms[active] | возвращает работающие ВМ | ||
one.vms[failed] | возвращает ВМ в статусе Ошибка | ||
one.vms[pending] | возвращает ВМ в статусе Подготовка | ||
one.vms[poweroff] | возвращает ВМ в статусе Выключено | ||
one.vms[suspended] | возвращает ВМ в статусе Приостановленно | ||
one.vms[undeployed] | возвращает ВМ в статусе Неразмещена | ||
one.vms[unknown] | возвращает ВМв статусе Неизвестно | ||
| one.vnet.free_leases[1] | ID виртуальной сети | вызывает метод для получения данных о свободном пропускном канале сети |
| one.vnet.pfree_leases[1] | ID виртуальной сети | вызывает метод для получения данных о свободном пропускном канале сети в процентах |
| one.vnet.total_leases[1] | ID виртуальной сети | вызывает метод для получения данных о доступном пропускном канале сети |
| one.vnet.used_leases[1] | ID виртуальной сети | вызывает метод для получения данных о использованном пропускном канале сети |
| one.vnet.pused_leases[1] | ID виртуальной сети | вызывает метод для получения данных о использованном пропускном канале сети в процентах |
OpenNebula: VNets | one.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 | срабатывает при фиксировании пять раз отсутствия данных виртуальных сетей |