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

Unraid

Сервер Unraid через его GraphQL API: неначатый массив, диски отключённые, отсутствующие или сообщающие об ошибках чтения, проверки паритета, нашедшие ошибки или не выполнявшиеся неделями, пулы кэша, заполняющиеся контейнеры, которые должны работать и не работают, и состояние ВМ.

DumbMonit отправляет ключ API с ролью Viewer в заголовке x-api-key на /graphql. Роль Viewer читает всё и не может ничего изменить. API встроен в Unraid начиная с 7.2; на версиях 6.12–7.1 он идёт с плагином Unraid Connect.

Каждую минуту DumbMonit отправляет один обязательный запрос (версия, массив, паритет, диски данных и кэша) и четыре опциональных, каждый отдельно, так что поле, которого нет в более старой версии API, или выключенные ВМ, убирают только эту часть: проверку паритета, контейнеры Docker, ВМ и непрочитанные уведомления.

Все метрики с префиксом dumbmonit_unraid_.

МетрикаМеткиЗначение
version_infoversionЗначение 1: версия Unraid.
array_started1, когда массив запущен.
array_state_infostateЗначение 1: started, stopped, new_array, recon_disk, disable_disk…
array_size_bytes, array_used_bytes, array_free_bytes, array_used_percentЁмкость массива.
disk_okdisk, role (parity, data, cache)1, когда статус диска — DISK_OK. Пустые отсеки не учитываются.
disk_status_infodisk, role, statusЗначение 1: статус Unraid (disk_ok, disk_dsbl, disk_np_missing, disk_invalid…).
disk_errorsdisk, roleОшибки чтения с момента запуска массива (колонка Errors).
disk_temperature_celsiusdisk, roleТолько пока диск вращается: Unraid не сообщает температуру для спящего диска.
disk_spinningdisk, role1, когда диск вращается.
disk_size_bytes, disk_fs_size_bytes, disk_used_percentdisk, roleРазмер, размер файловой системы и заполнение, для дисков с файловой системой.
disks, disks_problem, disks_with_errorsСчётчики.
parity_check_status_infostatusЗначение 1: completed, running, paused, cancelled, failed, never_run.
parity_check_running, parity_check_progress_percentПроверка в процессе.
parity_check_okПосле завершённой проверки: 1 без ошибок синхронизации, 0 с ошибками или при отказе. Отменённая проверка ничего не доказывает и ничего не устанавливает.
parity_check_errors, parity_check_age_seconds, parity_check_duration_secondsПоследняя проверка.
containers, containers_running, containers_autostart_stoppedКонтейнеры Docker.
container_running, container_autostart_stoppedcontainerНа контейнер; второе равно 1, когда контейнер, настроенный на запуск с массивом, не работает.
vms, vms_runningВМ.
vm_state_info, vm_crashedvm (и state)На ВМ.
notifications_unreadimportance: alert, warning, infoНепрочитанные уведомления.

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

  • Массив Unraid остановлен: массив не запущен уже десять минут (Warning).
  • Диск Unraid отключён или отсутствует: статус диска не DISK_OK уже пять минут (Warning). Массив работает в деградировавшем режиме.
  • Ошибки чтения диска Unraid: диск сообщает об ошибках чтения (Advisory).
  • Диск Unraid перегрет: диск данных или паритета выше 55 °C в течение пятнадцати минут (Advisory). Диски кэша, часто NVMe, не учитываются.
  • Проверка паритета Unraid нашла ошибки (Advisory).
  • Проверка паритета Unraid просрочена: последняя проверка старше 40 дней (Advisory).
  • Кэш Unraid почти заполнен: диск кэша заполнен более чем на 90 % в течение тридцати минут (Advisory).
  • Контейнер Unraid остановлен: контейнер, настроенный на запуск с массивом, не работает уже десять минут (Advisory).

Панель Array сообщает, что не так, в одном предложении, показывает заполнение массива, последнюю проверку паритета, работающие контейнеры и ВМ, затем перечисляет каждый диск — сначала паритет, затем данные, затем кэш — с его статусом, температурой и заполнением, и контейнеры, которые должны работать.

Создание ключа API только для чтения для DumbMonit

Заголовок раздела «Создание ключа API только для чтения для DumbMonit»
  1. На Unraid 7.2 или новее API встроен. На Unraid 6.12–7.1 сначала установите плагин Unraid Connect из вкладки Apps: он даёт тот же API, и для локального использования вход в Unraid Connect не нужен.

  2. Создайте ключ API с ролью Viewer, которая читает всё и не может ничего изменить: в Settings > Management Access > API Keys, или из терминала Unraid.

    unraid-api apikey --create --name dumbmonit --roles VIEWER --description "DumbMonit monitoring" --json
  3. Скопируйте ключ. В DumbMonit введите адрес сервера Unraid, например «tower.lan», и вставьте ключ как API key. Если веб-интерфейс обслуживается по HTTPS, выберите https как протокол.

Учётные данныеПоля
Ключ APIКлюч с ролью Viewer, отправляется как x-api-key.

Адрес: имя хоста или IP сервера Unraid, host:port, или URL. Опции:

  • Protocol (http) и Port (80): те, что у веб-интерфейса. С SSL, установленным на Strict в Settings > Management Access, используйте https, и адрес myunraid.net, если сертификат именно такой.
  • Accept an unverifiable certificate: для самоподписанного сертификата.
  • Timeout per request (15 с).

«Unraid refused the API key (401)»: ключ неверен или был удалён.

«Unraid accepted the API key but refused to answer (403)»: у ключа нет роли, либо роль более узкая, чем Viewer.

Нет данных по контейнерам, ВМ или паритету: этот опциональный запрос не удался (ВМ выключены, более старая версия API без этого поля); остальное всё равно читается. Причина — в журнале сервера на уровне debug.