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

При первичном запуске система мониторинга подключается к узлу виртуализации с помощью ssh
и запускает на нем сервис агента мониторинга, который выполняет тесты и затем отсылает собранные данные сервису onemonitord
на фронтальной машине. После этого агент мониторинга с заданной периодичностью выполняет тесты и отсылает собранные данные. В связи с этим системе мониторинга не требуется выполнять новые ssh-соединения для получения данных.
Для подключения к узлам виртуализации и управления агентами мониторинга используется специализированный информационный драйвер.
Конфигурация ПВ#
При инициализации сервиса фронтальной машины автоматически запускается система мониторинга, параметры запуска которой определены в конфигурационном файле /etc/one/oned.conf
.
Настройки сервиса onemonitord размещены в конфигурационном файле /etc/one/monitord.conf
, в котором можно задать значения параметров:
Параметр |
Описание |
---|---|
|
Время в секундах, необходимое сервису для оценки периодических функций |
|
Время ожидания отклика от агента мониторинга (в секундах). Если за указанное время отклик не получен, то тест выполняется заново |
|
Время в секундах, по истечении которого информация мониторинга узла виртуализации устаревает. Если необходимо отключить мониторинг, необходимо установить значение |
|
Блок настроек подключения к БД. Основные настройки подключения к БД указаны в конфигурационном файле |
|
Блок настроек сетевого соединения. Указываются значения следующих параметров: |
|
Блок настроек тестов. Указываются значения следующих параметров: |
Примечание
Пример
Значения параметров системы мониторинга, установленные по умолчанию:
#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 |
Путь исполняемого модуля драйвера, может быть абсолютным или относительным (относительно каталога |
ARGUMENTS |
Параметры настройки функционирования информационного драйвера: |
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.
Настройка и расширение#
Шифрование информации мониторинга#
В ПВ можно включить шифрование сообщений, которые агенты мониторинга направляют на фронтальную машину. Для этого необходимо выполнить следующие действия:
На фронтальной машине войти в ОС СН под учетной записью администратора с высоким уровнем целостности.
Создать открытый и закрытый ключи, сохранив их, например, в каталог
/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
Создать новый файл открытого ключа в формате
PKCS#1
командой:
sudo ssh-keygen -f /etc/one/onemonitor.pub -e -m pem | \ sudo tee /etc/one/onemonitor_pem.pub
В конфигурационном файле
/etc/one/monitord.conf
, в блоке настроек сетевого соединения указать абсолютные пути открытого и закрытого ключей.
Примечание
Пример
NETWORK = [
...
PUBKEY = "/etc/one/onemonitor_pem.pub",
PRIKEY = "/etc/one/onemonitor"
]
Перезапустить службу oned командой:
sudo systemctl restart opennebula
Перезапустить агенты мониторинга на узлах виртуализации командой:
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 <идентификатор_узла> <параметр_мониторинга> <вид_отображения>
Описание параметров мониторинга:
Параметр |
Описание |
---|---|
|
Количество свободных ЦП |
|
Объем свободной памяти |
|
Количество ЦП, выделенных для работы всех ВМ |
|
Объем памяти, выделенной для работы всех ВМ |
|
Объем входящего сетевого трафика |
|
Объем исходящего сетевого трафика |
Если не указывать вид отображения, то информация мониторинга будет выведена в виде графика (в ОС СН должен быть установлен пакет gnuplot
). Кроме того, в качестве вида отображения информации мониторинга можно указать следующее:
table
— табличный вид отображения;csv ’<символ_разделителя>’
— отображение в форматеcsv
.
Дополнительно можно указать следующие параметры отображения:
n
— отображать последние «n» записей;unit <единицы_измерения>
— отображение в заданных единицах измерения (например, «G» — в гигабайтах);start <дата>
— отображать записи, начиная с указанной даты;end <дата>
— отображать записи, до указанной даты.
Предупреждение
Вид и параметры отображения указываются в качестве параметров команды, поэтому необходимо использовать префикс «- -».
Примечание
Примеры
Для отображения в виде графика (в ОС СН должен быть установлен пакет
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
Для отображения в виде таблицы необходимо выполнить команду:
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
Для отображения в формате
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