Мониторинг#

В ПВ используется распределенная система мониторинга. Сервис системы мониторинга onemonitord является составной частью службы oned и собирает информацию, касающуюся узлов виртуализации и виртуальных машин, такую как: состояние узла виртуализации, его основные показатели производительности, состояние ВМ и вычислительные ресурсы, потребляемые ВМ. Информация мониторинга формируется в результате выполнения ряда тестовых программ на узлах виртуализации и транслируется по сети на фронтальную машину (по умолчанию используется TCP/UDP-порт 4124).

Предупреждение

Межсетевой экран фронтальной машины должен разрешать получение пакетов по прослушиваемому порту.

Схема работы системы мониторинга:

../../../../_images/monitoring_sys.png

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

Для подключения к узлам виртуализации и управления агентами мониторинга используется специализированный информационный драйвер.

Конфигурация ПВ#

При инициализации сервиса фронтальной машины автоматически запускается система мониторинга, параметры запуска которой определены в конфигурационном файле /etc/one/oned.conf.

Настройки сервиса onemonitord размещены в конфигурационном файле /etc/one/monitord.conf, в котором можно задать значения параметров:

Параметр

Описание

MANAGER_TIMER

Время в секундах, необходимое сервису для оценки периодических функций

MONITORING_INTERVAL_HOST

Время ожидания отклика от агента мониторинга (в секундах). Если за указанное время отклик не получен, то тест выполняется заново

HOST_MONITORING_EXPIRATION_TIME

Время в секундах, по истечении которого информация мониторинга узла виртуализации устаревает. Если необходимо отключить мониторинг, необходимо установить значение 0

DB

Блок настроек подключения к БД. Основные настройки подключения к БД указаны в конфигурационном файле /etc/one/oned.conf. В файле /etc/one/monitord.conf ``указывается только значение параметра ``CONNECTIONS — количество одновременных подключений к БД

NETWORK

Блок настроек сетевого соединения. Указываются значения следующих параметров: ADDRESS — IP-адрес, на котором принимать информацию мониторинга (на заданный TCP/UDP-порт); MONITOR_ADDRESS — IP-адрес фронтальной машины, на который агенты мониторинга отправляют информацию мониторинга; PORT — TCP/UDP-порт, на котором принимать информацию мониторинга; THREADS — количество одновременно наблюдаемых агентов мониторинга; PUBKEY — абсолютный путь для открытого ключа. Не указывается, если шифрование не применяется; PRIKEY — абсолютный путь для закрытого ключа. Не указывается, если шифрование не применяется

PROBES_PERIOD

Блок настроек тестов. Указываются значения следующих параметров: BEACON_HOST — время в секундах, по прошествии которого на узел виртуализации отправляется тестовый пакет, для проверки его работоспособности; SYSTEM_HOST — время в секундах, по прошествии которого, должна быть получена информация о состоянии и конфигурации узла виртуализации; MONITOR_HOST — время в секундах, по прошествии которого, должна быть получена информация мониторинга узла виртуализации (о вычислительных ресурсах и сетевой нагрузке); STATE_VM — время в секундах, по прошествии которого, должна быть получена информация о состоянии ВМ; MONITOR_VM — время в секундах, по прошествии которого, должна быть получена информация о вычислительных ресурсах, потребляемых ВМ; SYNC_STATE_VM — время ожидания информации мониторинга ВМ. Если за указанное время информация не получена, то направляется полный отчет о ВМ

Примечание

Пример

Значения параметров системы мониторинга, установленные по умолчанию:

#MANAGER_TIMER = 15
MONITORING_INTERVAL_HOST = 30 #rbt: automigration
#HOST_MONITORING_EXPIRATION_TIME = 43200
#VM_MONITORING_EXPIRATION_TIME = 43200
DB = [
    CONNECTIONS = 15
    ]
    NETWORK = [
        ADDRESS = "0.0.0.0",
        MONITOR_ADDRESS = "auto",
        PORT = 4124,
        THREADS = 8,
        PUBKEY = "",
        PRIKEY = ""
        ]
        PROBES_PERIOD = [
            BEACON_HOST = 30,
            SYSTEM_HOST = 600,
            MONITOR_HOST = 120,
            STATE_VM = 5,
            MONITOR_VM = 30,
            SYNC_STATE_VM = 180
            ]

Для указания настроек информационного драйвера в конфигурационном файле /etc/one/monitord.conf используется блок IM_MAD, в котором указываются значения параметров:

Параметр

Описание

NAME

Наименование информационного драйвера

SUNSTONE_NAME

Тип гипервизора, установленного на узле виртуализации

EXECUTABLE

Путь исполняемого модуля драйвера, может быть абсолютным или относительным (относительно каталога /usr/lib/one/mads/)

ARGUMENTS

Параметры настройки функционирования информационного драйвера: r — количество перезапусков агента мониторинга, выполняемых в случае отсутствия конформации мониторинга в заданный период времени; t — количество наблюдаемых агентов мониторинга; w — таймаут (в секундах) до повторного выполнения внешних команд (по ssh)

THREADS

Количество потоков, т.е., узлов, контролируемых одновременно

Примечание

Пример

Настройки информационного драйвера для узла виртуализации с гипервизором kvm, установленные по умолчанию:

IM_MAD = [
    NAME = "kvm",
    SUNSTONE_NAME = "KVM",
    EXECUTABLE = "one_im_ssh",
    ARGUMENTS = "-r 3 -t 15 -w 90 kvm",
    THREADS = 0
    ]

Отчет системы мониторинга#

Отчеты системы мониторинга сохраняются в файл /var/log/one/monitor.log.

Примечание

Пример

Thu Jun 23 12:35:28 2022 [Z0][DrM][I]: Loading drivers.
Thu Jun 23 12:35:28 2022 [Z0][DrM][I]: Loading driver: kvm
Thu Jun 23 12:35:28 2022 [Z0][DrM][I]: Driver loaded: kvm
Thu Jun 23 12:35:28 2022 [Z0][DrM][I]: Loading driver: qemu
Thu Jun 23 12:35:28 2022 [Z0][DrM][I]: Driver loaded: qemu
Thu Jun 23 12:35:28 2022 [Z0][DrM][I]: Loading driver: lxd
Thu Jun 23 12:35:28 2022 [Z0][DrM][I]: Driver loaded: lxd
Thu Jun 23 12:35:28 2022 [Z0][DrM][I]: Loading driver: lxc
Thu Jun 23 12:35:28 2022 [Z0][DrM][I]: Driver loaded: lxc
Thu Jun 23 12:35:28 2022 [Z0][DrM][I]: Loading driver: firecracker
Thu Jun 23 12:35:28 2022 [Z0][DrM][I]: Driver loaded: firecracker
Thu Jun 23 12:35:28 2022 [Z0][DrM][I]: Loading driver: vcenter
Thu Jun 23 12:35:28 2022 [Z0][DrM][I]: Driver loaded: vcenter
Thu Jun 23 12:35:32 2022 [Z0][HMM][I]: Raft status: SOLO
Thu Jun 23 12:35:41 2022 [Z0][HMM][I]: Successfully monitored VM: 10
Thu Jun 23 12:36:17 2022 [Z0][HMM][D]: Monitoring host fn.brest.local(0)
Thu Jun 23 12:36:23 2022 [Z0][HMM][I]: Successfully monitored VM: 10
Thu Jun 23 12:36:23 2022 [Z0][HMM][I]: Successfully monitored host: 0
Thu Jun 23 12:36:23 2022 [Z0][HMM][D]: Start monitor success, host: 0
Thu Jun 23 12:36:24 2022 [Z0][HMM][I]: Successfully monitored host: 0
Thu Jun 23 12:36:24 2022 [Z0][HMM][I]: Successfully monitored VM: 10
Thu Jun 23 12:36:55 2022 [Z0][HMM][I]: Successfully monitored VM: 10
Thu Jun 23 12:37:25 2022 [Z0][HMM][I]: Successfully monitored VM: 10
Thu Jun 23 12:38:02 2022 [Z0][HMM][D]: Monitoring host fn.brest.local(0)

Кроме того, в файле /var/log/one/oned.log также фиксируются сообщения, относящиеся к системе мониторинга.

Примечание

Пример

Thu Jun 23 12:35:40 2022 [Z0][InM][D]: Monitoring datastore images-ds (100)
Thu Jun 23 12:35:40 2022 [Z0][InM][D]: Monitoring datastore system-ds (101)
Thu Jun 23 12:35:40 2022 [Z0][InM][D]: Monitoring datastore default (1)
Thu Jun 23 12:35:40 2022 [Z0][InM][D]: Monitoring datastore files (2)
...
Thu Jun 23 12:36:23 2022 [Z0][InM][D]: Host fn.brest.local (0) successfully monitored.
Thu Jun 23 12:36:26 2022 [Z0][InM][D]: Host fn.brest.local (0) successfully monitored.

Настройка и расширение#

Шифрование информации мониторинга#

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

  1. На фронтальной машине войти в ОС СН под учетной записью администратора с высоким уровнем целостности.

  2. Создать открытый и закрытый ключи, сохранив их, например, в каталог /etc/one/, командой:

sudo ssh-keygen -f /etc/one/onemonitor

Пример вывода после выполнения команды:

Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /etc/one/onemonitor.
Your public key has been saved in /etc/one/onemonitor.pub.
The key fingerprint is:
SHA256:LM2VAFRScOxz5UCeddyxuqQc9yOPBUUBWOfrn4Wh9/M root@fn.brest.local
  1. Создать новый файл открытого ключа в формате PKCS#1 командой:

sudo ssh-keygen -f /etc/one/onemonitor.pub -e -m pem | \ sudo tee /etc/one/onemonitor_pem.pub
  1. В конфигурационном файле /etc/one/monitord.conf, в блоке настроек сетевого соединения указать абсолютные пути открытого и закрытого ключей.

Примечание

Пример

NETWORK = [
    ...
    PUBKEY = "/etc/one/onemonitor_pem.pub",
    PRIKEY = "/etc/one/onemonitor"
    ]
  1. Перезапустить службу oned командой:

sudo systemctl restart opennebula
  1. Перезапустить агенты мониторинга на узлах виртуализации командой:

sudo -u oneadmin onehost sync -f

Пример вывода после выполнения команды:

* Adding fn.brest.local to upgrade
[========================================] 1/1 fn.brest.local
All hosts updated successfully.

Тесты#

Тесты представляют собой специальные программы, которые обеспечивают получение контрольных показателей мониторинга. Конфигурационные файлы тестов определяются для каждого гипервизора и находятся по адресу /var/lib/one/remotes/etc/im/<hypervisor>-probe.d/probe_db.conf. Следующие параметры доступны для корректировки значений:

  • obsolete — период времени (в минутах), по истечению которого информация о статусе ВМ считается устаревшей и будет удалена;

  • times_missing — количество тестов, завершившихся неудачей, после которых для ВМ устанавливается статус «недоступна».

Примечание

** Пример**

Настройки теста для узла виртуализации с гипервизором kvm, установленные по умолчанию:

:obsolete: 720
:times_missing: 5

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

sudo -u oneadmin onehost sync -f

Получение информации о потреблении ресурсов#

Для вывода информации о потреблении ресурсов узла виртуализации используется команда:

onehost monitoring <идентификатор_узла> <параметр_мониторинга> <вид_отображения>

Описание параметров мониторинга:

Параметр

Описание

FREE_CPU

Количество свободных ЦП

FREE_MEMORY

Объем свободной памяти

USED_CPU

Количество ЦП, выделенных для работы всех ВМ

USED_MEMORY

Объем памяти, выделенной для работы всех ВМ

NETRX

Объем входящего сетевого трафика

NETTX

Объем исходящего сетевого трафика

Если не указывать вид отображения, то информация мониторинга будет выведена в виде графика (в ОС СН должен быть установлен пакет gnuplot). Кроме того, в качестве вида отображения информации мониторинга можно указать следующее:

  • table — табличный вид отображения;

  • csv ’<символ_разделителя>’ — отображение в формате csv.

Дополнительно можно указать следующие параметры отображения:

  • n — отображать последние «n» записей;

  • unit <единицы_измерения> — отображение в заданных единицах измерения (например, «G» — в гигабайтах);

  • start <дата> — отображать записи, начиная с указанной даты;

  • end <дата> — отображать записи, до указанной даты.

Предупреждение

Вид и параметры отображения указываются в качестве параметров команды, поэтому необходимо использовать префикс «- -».

Примечание

Примеры

  1. Для отображения в виде графика (в ОС СН должен быть установлен пакет gnuplot) необходимо выполнить команду:

onehost monitoring 0 FREE_CPU --n 10 --unit G

Пример вывода после выполнения команды:

gnuplot 5.2 patchlevel 6
Host 0 FREE_CPU from 07/07/2022 10:00 to 07/07/2022 12:11
400 +------------------------------------------------------------+

+-------------+------------+-------+------------------+----------------+-------+-------+-------+
| \|          | + \*\*     | + + + | +                |    \|          |       |       |       |
+=============+============+=======+==================+================+=======+=======+=======+
| 395 \|-+    |    \*\* \* | A A   |                  | +-\|           |       |       |       |
+-------------+------------+-------+------------------+----------------+-------+-------+-------+
| \|          |    \*      | \*    | \**\* \*\*       |                |    \| |       |       |
+-------------+------------+-------+------------------+----------------+-------+-------+-------+
| 390 \|-+    |    \*      | \*    | \* \* \* \*      |                | +-\|  |       |       |
+-------------+------------+-------+------------------+----------------+-------+-------+-------+
| \|          |    \*      | \*    |    \*\*          | \* \* \*       |       |    \| |       |
+-------------+------------+-------+------------------+----------------+-------+-------+-------+
| 385 \|-+    | \*         | \*    |    \*            | \* \*          | \*    |       | +-\|  |
+-------------+------------+-------+------------------+----------------+-------+-------+-------+
| \|          |    \*\*    | \*    | \*\*             | \* \*          | \*    |       |    \| |
+-------------+------------+-------+------------------+----------------+-------+-------+-------+
| 380 \|-+    |    \*      | \*    |    \*            | \* \*          | \*    |       | +-\|  |
+-------------+------------+-------+------------------+----------------+-------+-------+-------+
| 375 \|-+    |    \*      | \*    |    \*\*          | \* \*          | \*    |       | +-\|  |
+-------------+------------+-------+------------------+----------------+-------+-------+-------+
| \|          | \*         | \*    |    \*            | \* \*          | \*    |       |    \| |
+-------------+------------+-------+------------------+----------------+-------+-------+-------+
| 370 \|-+ \* | \*         | \*\*  | \*\*             | \*             |       | \**\| |       |
+-------------+------------+-------+------------------+----------------+-------+-------+-------+
|    \| \*\*  | \* \*      | A     | \*               |    \*****\* \| |       |       |       |
+-------------+------------+-------+------------------+----------------+-------+-------+-------+
| 365 \|*+    | \**\*      |       | \* \*****\* +-\| |                |       |       |       |
+-------------+------------+-------+------------------+----------------+-------+-------+-------+
|    \|       | A          |       | A*\* \|          |                |       |       |       |
+-------------+------------+-------+------------------+----------------+-------+-------+-------+
| 360 \|-+    |            |       | +-\|             |                |       |       |       |
+-------------+------------+-------+------------------+----------------+-------+-------+-------+
| \| +        | + +        | +     | + + \|           |                |       |       |       |
+-------------+------------+-------+------------------+----------------+-------+-------+-------+

..

   355 +------------------------------------------------------------+
12:04 12:05 12:06 12:07 12:08 12:09 12:10 12:11
  1. Для отображения в виде таблицы необходимо выполнить команду:

onehost monitoring 0 FREE_CPU --table --n 10 --unit G

Пример вывода после выполнения команды:

Host 0 FREE_CPU from 07/07/2022 10:00 to 07/07/2022 12:06
TIME VALUE
11:59 396
11:59 360
12:01 396
12:01 360
12:02 400
12:02 356
12:04 396
12:04 364
12:06 400
12:06 364
  1. Для отображения в формате csv необходимо выполнить команду:

onehost monitoring 0 FREE_CPU --csv ; --n 10 --unit G

Пример вывода после выполнения команды:

TIME;VALUE
11:59;396
11:59;360
12:01;396
12:01;360
12:02;400
12:02;356
12:04;396
12:04;364
12:06;400
12:06;364