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

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, ВМ и непрочитанные уведомления.

Проверено только по документации производителя — пока не испытано на реальной системе

Эта интеграция построена на документации API Unraid и опубликованной GraphQL-схеме API Unraid (имена полей, перечисления, размеры в килобайтах), а не на работающем сервере. Каждый запрос — это чтение. Сообщите нам, если что-то не работает.

Что отслеживается

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

Метрика Метки Значение
version_info version Значение 1: версия Unraid.
array_started 1, когда массив запущен.
array_state_info state Значение 1: started, stopped, new_array, recon_disk, disable_disk…
array_size_bytes, array_used_bytes, array_free_bytes, array_used_percent Ёмкость массива.
disk_ok disk, role (parity, data, cache) 1, когда статус диска — DISK_OK. Пустые отсеки не учитываются.
disk_status_info disk, role, status Значение 1: статус Unraid (disk_ok, disk_dsbl, disk_np_missing, disk_invalid…).
disk_errors disk, role Ошибки чтения с момента запуска массива (колонка Errors).
disk_temperature_celsius disk, role Только пока диск вращается: Unraid не сообщает температуру для спящего диска.
disk_spinning disk, role 1, когда диск вращается.
disk_size_bytes, disk_fs_size_bytes, disk_used_percent disk, role Размер, размер файловой системы и заполнение, для дисков с файловой системой.
disks, disks_problem, disks_with_errors Счётчики.
parity_check_status_info status Значение 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_stopped container На контейнер; второе равно 1, когда контейнер, настроенный на запуск с массивом, не работает.
vms, vms_running ВМ.
vm_state_info, vm_crashed vm (и state) На ВМ.
notifications_unread importance: 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

  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 как протокол.

Warning

Unraid не сообщает температуру для диска, который остановлен, и DumbMonit никогда не разбудит его: у спящего диска просто нет температуры, пока он не завращается.

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

Учётные данные Поля
Ключ 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.