Перейти к содержимому

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_infohost, versionЗначение 1: версия продукта каждого хоста.
host_enabledhost0, когда хост отключён (обслуживание или эвакуирован).
host_livehost1, когда heartbeat хоста доходит до координатора, 0, когда хост офлайн.
host_cpu_cores, host_memory_total_bytes, host_memory_used_byteshostЁмкость и используемая память.
vms, vms_runningВМ, без шаблонов, снимков и управляющих доменов.
vm_power_state_infovm, stateЗначение 1: running, halted, paused или suspended.
vm_runningvm1, когда ВМ работает.
vm_vcpus, vm_memory_bytesvmvCPU при запуске; используемая память для работающей ВМ, иначе настроенный максимум.
vm_ha_protected_downvmТолько для ВМ с приоритетом перезапуска в пуле с включённой высокой доступностью: 1, когда ВМ остановлена.
srsРепозитории хранилища.
sr_size_bytes, sr_used_bytes, sr_used_percentsrУровень заполнения (ISO-библиотеки учитываются, но не детализируются).
sr_sharedsr1 для общего репозитория (NFS, iSCSI…).
pool_infopool, masterЗначение 1: пул и его текущий координатор.
pool_ha_enabledpool1, когда высокая доступность включена.
pool_ha_overcommittedpoolПри включённой HA: 1, когда пул больше не может перезапустить защищённые ВМ после отказов хостов, которые он настроен выдерживать.
pool_ha_host_failures_to_toleratepoolЧисло отказов хостов, которые 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 только для чтения»
  1. XAPI принимает учётные записи, отличные от встроенного суперпользователя, только если пул использует внешнюю аутентификацию. Если пул уже присоединён к Active Directory, создайте там учётную запись dumbmonit и переходите к шагу 3.

  2. В противном случае создайте на каждом хосте пула локальную учётную запись с длинным случайным паролем, затем один раз включите аутентификацию PAM на координаторе пула. Пока ей не назначена роль, учётная запись ничего не может вызывать.

    useradd -M -s /sbin/nologin dumbmonit
    passwd dumbmonit
    xe pool-enable-external-auth auth-type=PAM service-name=pam
  3. На координаторе пула зарегистрируйте учётную запись как субъект (subject), затем назначьте этому субъекту встроенную роль read-only, указав UUID, который выведет первая команда.

    xe subject-add subject-name=dumbmonit
    xe subject-role-add uuid=SUBJECT_UUID role-name=read-only
  4. В DumbMonit введите адрес координатора пула, например «xcp01.lan», с этим именем пользователя и паролем. Добавьте пул один раз: координатор сообщает обо всех хостах, ВМ и репозиториях хранилища. Член пула отвечает адресом координатора, по которому DumbMonit затем переходит.

  5. 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 не смог связаться с координатором, указанным членом пула; введите адрес координатора сами.