XCP-ng / XenServer
Пул XCP-ng или XenServer (Citrix Hypervisor), считываемый через XAPI — API управления, которое и так работает на каждом хосте. Xen Orchestra не нужен.
Каждую минуту DumbMonit отправляет вызовы JSON-RPC на
https://<координатор>/jsonrpc: один session.login_with_password (затем
сессия сохраняется от опроса к опросу и один раз открывается заново, если пул
её аннулировал) и по одному get_all_records на класс: host,
host_metrics, VM, VM_metrics, SR и pool. Ничего никогда не
изменяется: у учётной записи встроенная роль read-only, которую XAPI
проверяет при каждом вызове.
Добавьте пул один раз, по адресу его координатора: он сообщает обо всех
хостах, ВМ и репозиториях хранилища. Если введённый вами адрес принадлежит
члену пула, тот отвечает HOST_IS_SLAVE с адресом координатора; DumbMonit
один раз переходит по нему, с тем же протоколом и портом, поэтому смена
координатора не требует правки монитора.
Что отслеживается
Заголовок раздела «Что отслеживается»Все метрики с префиксом dumbmonit_xcpng_.
| Метрика | Метки | Значение |
|---|---|---|
hosts, hosts_enabled | Хосты пула и сколько из них принимают новые ВМ. | |
host_info | host, version | Значение 1: версия продукта каждого хоста. |
host_enabled | host | 0, когда хост отключён (обслуживание или эвакуирован). |
host_live | host | 1, когда heartbeat хоста доходит до координатора, 0, когда хост офлайн. |
host_cpu_cores, host_memory_total_bytes, host_memory_used_bytes | host | Ёмкость и используемая память. |
vms, vms_running | ВМ, без шаблонов, снимков и управляющих доменов. | |
vm_power_state_info | vm, state | Значение 1: running, halted, paused или suspended. |
vm_running | vm | 1, когда ВМ работает. |
vm_vcpus, vm_memory_bytes | vm | vCPU при запуске; используемая память для работающей ВМ, иначе настроенный максимум. |
vm_ha_protected_down | vm | Только для ВМ с приоритетом перезапуска в пуле с включённой высокой доступностью: 1, когда ВМ остановлена. |
srs | Репозитории хранилища. | |
sr_size_bytes, sr_used_bytes, sr_used_percent | sr | Уровень заполнения (ISO-библиотеки учитываются, но не детализируются). |
sr_shared | sr | 1 для общего репозитория (NFS, iSCSI…). |
pool_info | pool, master | Значение 1: пул и его текущий координатор. |
pool_ha_enabled | pool | 1, когда высокая доступность включена. |
pool_ha_overcommitted | pool | При включённой HA: 1, когда пул больше не может перезапустить защищённые ВМ после отказов хостов, которые он настроен выдерживать. |
pool_ha_host_failures_to_tolerate | pool | Число отказов хостов, которые HA настроена пережить. |
В XenAPI нет состояния питания «аварийно завершена». Найденная остановленной защищённая ВМ — ближайший сигнал, который даёт API, о ВМ, остановившейся против вашей воли; если вы намеренно выключаете защищённую ВМ, сначала снимите с неё приоритет перезапуска.
Применяемые встроенные правила:
- XCP-ng host offline: heartbeat хоста не доходит до координатора пять минут (Warning).
- XCP-ng SR almost full: репозиторий хранилища заполнен на 90 % пятнадцать минут (Advisory).
- XCP-ng HA-protected VM down: ВМ, защищённая высокой доступностью, остановлена две минуты (Warning).
- XCP-ng pool HA overcommitted: пул перегружен по HA пять минут (Advisory).
Дайте DumbMonit учётную запись XAPI только для чтения
Заголовок раздела «Дайте DumbMonit учётную запись XAPI только для чтения»-
XAPI принимает учётные записи, отличные от встроенного суперпользователя, только если пул использует внешнюю аутентификацию. Если пул уже присоединён к Active Directory, создайте там учётную запись dumbmonit и переходите к шагу 3.
-
В противном случае создайте на каждом хосте пула локальную учётную запись с длинным случайным паролем, затем один раз включите аутентификацию PAM на координаторе пула. Пока ей не назначена роль, учётная запись ничего не может вызывать.
useradd -M -s /sbin/nologin dumbmonitpasswd dumbmonitxe pool-enable-external-auth auth-type=PAM service-name=pam -
На координаторе пула зарегистрируйте учётную запись как субъект (subject), затем назначьте этому субъекту встроенную роль read-only, указав UUID, который выведет первая команда.
xe subject-add subject-name=dumbmonitxe subject-role-add uuid=SUBJECT_UUID role-name=read-only -
В DumbMonit введите адрес координатора пула, например «xcp01.lan», с этим именем пользователя и паролем. Добавьте пул один раз: координатор сообщает обо всех хостах, ВМ и репозиториях хранилища. Член пула отвечает адресом координатора, по которому DumbMonit затем переходит.
-
DumbMonit только читает, через интерфейс JSON-RPC XAPI (/jsonrpc): он никогда не запускает, не останавливает и не переносит ВМ и никогда не изменяет репозиторий хранилища или высокую доступность пула.
Учётные данные
Заголовок раздела «Учётные данные»| Учётные данные | Поля |
|---|---|
| Имя пользователя и пароль | Учётная запись dumbmonit, зарегистрированная как субъект с ролью read-only. |
Адрес: имя хоста или IP координатора пула, host:port или URL. Параметры:
- Порт (443).
- Принимать непроверяемый сертификат: собственный сертификат хостов самоподписан.
- Тайм-аут на запрос (15 с).
Диагностика
Заголовок раздела «Диагностика»«XCP-ng refused the user name or password»: неверный пароль, либо учётная
запись не зарегистрирована как субъект (xe subject-list).
«XCP-ng accepted the account but refused the call»: у субъекта нет роли или
роль без доступа на чтение; назначьте ему read-only.
«This host is a pool member, not the coordinator»: DumbMonit не смог связаться с координатором, указанным членом пула; введите адрес координатора сами.