Перейти к содержанию

VMware vSphere

Сервер vCenter и управляемые им хосты либо отдельный хост ESXi: хосты, которые перестали отвечать, оставлены в режиме обслуживания или сообщают красное состояние, виртуальные машины и их VMware Tools, заполняющиеся или недоступные хранилища данных и тревоги, поднятые самим vSphere.

DumbMonit читает vSphere под выделенным пользователем со встроенной ролью Read-only. Он никогда не включает и не выключает ВМ, никогда не переводит хост в режим обслуживания и никогда не подтверждает тревогу.

Сбой, за которым стоит следить: заполняющееся хранилище данных. Когда хранилище с тонким выделением достигает 100%, все ВМ, которым нужно писать на него, приостанавливаются одновременно. Тревоги vCenter тоже сообщают об этом, но только тому, у кого открыт клиент.

Почему Web Services API

DumbMonit обращается к vSphere Web Services API (SOAP, /sdk), а не к REST API (/api/vcenter/*): у отдельного хоста ESXi нет REST API, а в vCenter REST API не сообщает ни режим обслуживания, ни общее состояние (overallStatus), ни состояние VMware Tools, ни сработавшие тревоги. Единое представление всей инвентаризации считывается за один проход, постранично, и освобождается в конце.

Сессия сохраняется от одного опроса к другому и открывается заново только при истечении: vCenter не фиксирует новый вход каждую минуту.

За чем он следит

Все метрики имеют префикс dumbmonit_vsphere_. Значения состояния соответствуют overallStatus vSphere: 0 зелёный, 1 жёлтый, 2 красный, 3 серый (неизвестно).

Метрика Что Метки
info значение 1 product (vcenter или esxi), version, build
hosts хосты по состоянию подключения: connected, disconnected, notResponding state
host_connection_state 0 подключён, 1 отключён администратором, 2 не отвечает esxi
host_power_state 0 включён, 1 ждущий режим, 2 выключен, 3 неизвестно esxi
host_maintenance 1 в режиме обслуживания esxi
host_status общее состояние esxi
host_cpu_percent, host_memory_percent, host_memory_bytes, host_uptime_seconds только подключённые хосты esxi
vms ВМ по состоянию питания: poweredOn, poweredOff, suspended (шаблоны исключены) state
templates шаблоны ВМ
vm_power_state 0 включена, 1 выключена, 2 приостановлена; не более 1000 ВМ vm
vm_status общее состояние vm
vm_tools_status только включённые ВМ: 0 актуальна, 1 устаревшая версия, 2 установлена, но не запущена, 3 не установлена vm
datastores хранилища данных
datastore_capacity_bytes, datastore_free_bytes, datastore_used_percent datastore
datastore_accessible 1 доступно, 0 недоступно datastore
datastore_status общее состояние datastore
alarms сработавшие неподтверждённые тревоги по цвету: red, yellow status
alarms_acknowledged сработавшие тревоги, уже подтверждённые
alarm одна серия на каждую неподтверждённую тревогу, значение = её код состояния, не более 64 alarm (её имя), entity, entity_type, status
scrape_errors вызовы, завершившиеся ошибкой при последнем опросе

Применяемые встроенные правила: vSphere host not responding, vSphere host health red, vSphere host left in maintenance, vSphere datastore almost full, vSphere datastore inaccessible, vSphere VM tools not running, vSphere red alarm, а также Monitor unreachable.

Страница монитора

Панель над графиками показывает то, что сохранил опрос; открытие страницы никогда не обращается к vSphere. Сначала она сообщает, что не так (хосты не отвечают, красные тревоги, хранилища данных почти заполнены или недоступны), затем хосты с их нагрузкой, хранилища данных с уровнем заполнения и ВМ по состоянию питания.

Как это проверялось

На симуляторе govmomi vcsim 0.56.0, в режимах vCenter и ESXi: вход и отклонённый пароль, повторное использование и истечение сессии, постраничное чтение инвентаризации, не отвечающий хост, хост в режиме обслуживания, выключенная ВМ и шаблон. Симулятор не поднимает тревог: чтение сработавших тревог проверено по документированной структуре AlarmState Web Services API.

Создайте пользователя только для чтения в vSphere

  1. В vCenter: Administration → Single Sign On → Users and Groups → Users, домен vsphere.local → Add. Назовите пользователя так и задайте ему длинный случайный пароль.

    dumbmonit
    
  2. Там же, в vCenter: Administration → Access Control → Global Permissions → Add. Выберите этого пользователя, роль Read-only и отметьте Propagate to children. Read-only видит все хосты, ВМ, хранилища данных и тревоги и ничего не может изменить.

  3. Вместо этого на отдельном хосте ESXi: в клиенте хоста Manage → Security & users → Users → Add user с тем же именем. Затем Host → Actions → Permissions → Add user: выберите его, роль Read-only и отметьте Propagate to all children.

  4. В DumbMonit введите адрес vCenter или хоста, например "vcenter.lan" или "esxi1.lan", с именем пользователя как создано: dumbmonit@vsphere.local в vCenter, dumbmonit на хосте. Если хостами управляет vCenter, добавьте только vCenter: он сообщает обо всех хостах, ВМ и хранилищах данных.

  5. DumbMonit только читает, через vSphere Web Services API (/sdk). Он никогда не включает и не выключает ВМ, никогда не переводит хост в режим обслуживания и никогда не подтверждает тревогу.

Warning

Не используйте учётную запись домена единого входа или встроенную учётную запись хоста: роли Read-only выше — это всё, что нужно DumbMonit. vCenter и ESXi по умолчанию используют самоподписанный сертификат: включите «Принимать непроверяемый сертификат», если хост DumbMonit не доверяет их центру сертификации.

Учётные данные

Учётные данные Поля
Имя пользователя / пароль Выделенный пользователь с ролью Read-only: dumbmonit@vsphere.local в vCenter, dumbmonit на хосте.

Адрес: имя хоста или IP (vcenter.lan), host:port или полный URL; завершающий /sdk или /ui допускается. Параметры: порт (443), проверка сертификата, тайм-аут запроса (20 с) и сработавшие тревоги (читать).