Salta ai contenuti

Unraid

Un server Unraid tramite la sua API GraphQL: un array non avviato, dischi disattivati, mancanti o che segnalano errori di lettura, controlli di parità che hanno trovato errori o non vengono eseguiti da settimane, cache pool che si riempiono, container che dovrebbero essere in esecuzione e non lo sono, e lo stato delle VM.

DumbMonit invia una chiave API con il ruolo Viewer nell’header x-api-key a /graphql. Il ruolo Viewer legge tutto e non può modificare nulla. L’API è integrata in Unraid dalla 7.2; su 6.12-7.1 viene con il plugin Unraid Connect.

Ogni minuto DumbMonit invia una query obbligatoria (versione, array, parità, dischi dati e cache) e quattro opzionali, ognuna per conto proprio così che un campo che una versione più vecchia dell’API non ha, o VM spente, lasciano fuori solo quella parte: il controllo di parità, i container Docker, le VM e le notifiche non lette.

Tutte le metriche hanno il prefisso dumbmonit_unraid_.

MetricaEtichetteSignificato
version_infoversionValore 1: la versione di Unraid.
array_started1 quando l’array è avviato.
array_state_infostateValore 1: started, stopped, new_array, recon_disk, disable_disk…
array_size_bytes, array_used_bytes, array_free_bytes, array_used_percentCapacità dell’array.
disk_okdisk, role (parity, data, cache)1 quando lo stato del disco è DISK_OK. Gli slot vuoti vengono esclusi.
disk_status_infodisk, role, statusValore 1: lo stato proprio di Unraid (disk_ok, disk_dsbl, disk_np_missing, disk_invalid…).
disk_errorsdisk, roleErrori di lettura da quando l’array è stato avviato (la colonna Errors).
disk_temperature_celsiusdisk, roleSolo mentre il disco gira: Unraid non riporta nulla per un disco in sospensione.
disk_spinningdisk, role1 quando il disco gira.
disk_size_bytes, disk_fs_size_bytes, disk_used_percentdisk, roleDimensione, dimensione del file system e riempimento, per dischi con un file system.
disks, disks_problem, disks_with_errorsConteggi.
parity_check_status_infostatusValore 1: completed, running, paused, cancelled, failed, never_run.
parity_check_running, parity_check_progress_percentUn controllo in corso.
parity_check_okDopo un controllo terminato: 1 senza errori di sincronizzazione, 0 con errori o quando è fallito. Un controllo annullato non prova nulla e non imposta nulla.
parity_check_errors, parity_check_age_seconds, parity_check_duration_secondsL’ultimo controllo.
containers, containers_running, containers_autostart_stoppedContainer Docker.
container_running, container_autostart_stoppedcontainerPer container; il secondo è 1 quando un container impostato per avviarsi con l’array non è in esecuzione.
vms, vms_runningVM.
vm_state_info, vm_crashedvm (e state)Per VM.
notifications_unreadimportance: alert, warning, infoNotifiche non lette.

Le regole integrate che si applicano:

  • Unraid array stopped: l’array non è avviato per dieci minuti (Warning).
  • Unraid disk disabled or missing: lo stato di un disco non è DISK_OK per cinque minuti (Warning). L’array funziona in modo degradato.
  • Unraid disk read errors: un disco segnala errori di lettura (Advisory).
  • Unraid disk too hot: un disco dati o parità sopra i 55 °C per quindici minuti (Advisory). I dischi cache, spesso NVMe, vengono esclusi.
  • Unraid parity check found errors (Advisory).
  • Unraid parity check overdue: l’ultimo controllo ha più di 40 giorni (Advisory).
  • Unraid cache nearly full: un disco cache più del 90% pieno per trenta minuti (Advisory).
  • Unraid container stopped: un container impostato per avviarsi con l’array non è in esecuzione da dieci minuti (Advisory).

Il pannello Array indica cosa non va in una frase, mostra il riempimento dell’array, l’ultimo controllo di parità, i container e le VM in esecuzione, poi elenca ogni disco — parità prima, poi dati, poi cache — con il suo stato, temperatura e riempimento, e i container che dovrebbero essere in esecuzione.

Creare una chiave API di sola lettura per DumbMonit

Sezione intitolata “Creare una chiave API di sola lettura per DumbMonit”
  1. Su Unraid 7.2 o successivo l’API è integrata. Su Unraid 6.12-7.1, installa prima il plugin Unraid Connect dalla scheda Apps: porta la stessa API, e nessun login Unraid Connect è necessario per l’uso locale.

  2. Crea una chiave API con il ruolo Viewer, che legge tutto e non può modificare nulla: sotto Settings > Management Access > API Keys, oppure dal terminale Unraid.

    unraid-api apikey --create --name dumbmonit --roles VIEWER --description "DumbMonit monitoring" --json
  3. Copia la chiave. In DumbMonit, inserisci l’indirizzo del server Unraid, per esempio “tower.lan”, e incolla la chiave come API key. Se l’interfaccia web è servita su HTTPS, scegli https come protocollo.

CredenzialeCampi
API keyUna chiave con il ruolo Viewer, inviata come x-api-key.

Indirizzo: il nome host o IP del server Unraid, host:porta, oppure un URL. Opzioni:

  • Protocol (http) e Port (80): quelli dell’interfaccia web. Con SSL impostato su Strict sotto Settings > Management Access, usa https, e l’indirizzo myunraid.net se il certificato è quello.
  • Accept an unverifiable certificate: per un certificato autofirmato.
  • Timeout per request (15 s).

“Unraid refused the API key (401)”: la chiave è errata o è stata eliminata.

“Unraid accepted the API key but refused to answer (403)”: la chiave non ha ruolo, o un ruolo più limitato di Viewer.

Nessun valore di container, VM o parità: quella query opzionale è fallita (VM spente, una versione più vecchia dell’API senza quel campo); il resto viene comunque letto. Il motivo è nel log del server a livello debug.