ELX-Software

Monitoraggio dei server

ELX-HealthMonitor

Cosa sta facendo ora un server Linux e cosa faceva la settimana scorsa

Un agente di monitoraggio con interfaccia web, storico in SQLite e avvisi per posta elettronica. Un unico eseguibile senza dipendenze: l'interfaccia sta nel binario e la base si crea da sé. Su un Celeron di quattro anni costa circa il quattro per cento di un core e undici megabyte di memoria.

v1.0.0 LinuxARM Gratuito

Letto dal kernel, non indovinato

Tutto viene direttamente da /proc, /sys e smartctl. Nessun collettore da installare, nessuna base di serie temporali da far girare e nessuna coppia agente-server da tenere allineata.

I dischi prima che cedano

Salute SMART, temperatura, ore di funzionamento, settori rilocati e in sospeso, errori CRC, usura degli SSD e byte scritti in tutta la vita — con la tabella completa degli attributi quando volete guardare più da vicino.

Il RAID, parte scomoda compresa

Stato dell'array, livello, membri, dischi guasti e avanzamento della risincronizzazione — più la mappa delle intenzioni di scrittura, che dice se in questo momento le copie sono davvero identiche, e il numero di discordanze dell'ultimo controllo.

I servizi con il loro traffico su disco

Ogni unità systemd con processore, memoria, letture e scritture su disco, numero di compiti e riavvii — e i pulsanti per avviare, fermare e cambiare l'avvio automatico.

Avvisi che non gridano al lupo

Una regola porta un tempo di attesa: un picco di dieci secondi a pieno carico non manda nulla, dieci minuti a quel livello sì. È questa sola impostazione a separare i messaggi che si leggono da quelli che si filtrano.

Uno storico che non cresce all'infinito

Tre giorni a piena risoluzione, poi intervalli di cinque minuti che conservano media, minimo e massimo, e nulla di più vecchio di un mese. I picchi sopravvivono al diradamento; i gigabyte no.

Cosa viene misurato

SezioneMisure
ProcessoreCarico totale e per core, user/system/iowait/steal, frequenza, carico medio, cambi di contesto, coda
MemoriaOccupata, disponibile, cache, buffer, slab, pagine modificate, area di scambio e quanto viene sollecitata
DischiVelocità di lettura e scrittura, IOPS, latenza, occupazione del dispositivo, modello, capacità
FilesystemOccupato, libero, percentuale, inode
SMARTSalute, temperatura, ore di funzionamento, settori rilocati e in sospeso, errori CRC, usura degli SSD, byte scritti in tutta la vita, tabella completa degli attributi
RAIDStato degli array md, livello, membri, dischi guasti, avanzamento e velocità della risincronizzazione, uguaglianza attuale delle copie e discordanze dell'ultimo controllo
ReteByte e pacchetti in entrata e uscita, errori e perdite, stato del collegamento, velocità della porta, indirizzi, MTU
TemperaturaTutti i sensori hwmon e le zone termiche ACPI, più le temperature dei dischi da SMART
ServiziStato e avvio automatico delle unità systemd, processore, memoria, traffico su disco per servizio, numero di compiti, riavvii
ProcessiI primi per processore e per memoria, attività su disco, proprietario, unità

Ogni sezione si disattiva separatamente, e una sezione disattivata non viene interrogata affatto.

La domanda sul RAID che vale la pena porre

Un array in mirror tiene gli stessi dati su entrambi i dischi, ma le scritture non li raggiungono nello stesso istante. Il kernel annota le aree che potrebbero differire in una mappa delle intenzioni di scrittura, e questo agente mostra quella mappa direttamente: finché il numero di aree sporche è zero le copie sono identiche; oltre lo zero è in corso una risincronizzazione.

Accanto c'è il numero di discordanze dell'ultimo controllo di integrità. Un valore diverso da zero significa che un disco o un controllore ha restituito dati diversi dalle due metà di un mirror — ed è esattamente il guasto per cui esiste il monitoraggio, ed esattamente quello che una spia verde «array in salute» nasconde.

Quanto costa farlo girare

Le letture costose seguono un proprio calendario, separato dal ciclo principale: svegliare cinque dischi ogni tre secondi per chiederne la temperatura sarebbe peggio che non sorvegliarli affatto.

ImpostazionePredefinitoCosa regola
interval_sec3 sIl ciclo principale di interrogazione
services.interval_sec15 sUn giro completo sulle unità systemd
disk.smart_interval_sec900 sL'interrogazione SMART — è questa a svegliare i dischi
storage.persist_interval_sec30 sLa scrittura di un'istantanea nello storico

Misurato su un Celeron J1900 a quattro core, con 165 unità systemd e cinque dischi: circa il quattro per cento di un core e undici megabyte di memoria. Su uno Xeon E5-2690, meno del tre per cento di un core.

L'interfaccia

  • Il browser ricorda le vostre scelte: il periodo di ogni grafico, le curve nascoste con un clic sulla legenda e i filtri delle tabelle di servizi ed eventi. Un ricaricamento non ne azzera nessuna.
  • Tutte le curve salgono da zero, l'unità dell'asse segue l'intervallo dei valori e il numero di decimali segue il passo della griglia — così due tacche vicine non portano mai la stessa etichetta.
  • Dopo un aggiornamento una scheda aperta si accorge da sé del cambio di versione, lo dice e si ricarica, invece di lasciare un'interfaccia vecchia nella cache del browser.
  • I pulsanti di riavvio e spegnimento della macchina stanno nell'intestazione; se non li volete lì, una chiave di configurazione li toglie.
  • Ogni azione irreversibile sta dietro una conferma che spiega la conseguenza, e il pulsante porta il nome dell'azione anziché «OK».

In breve

Sistemi operativi
Debian e Ubuntu con systemd
Architetture
amd64, arm64, armhf
Interfaccia web
Porta 8555 in modo predefinito
Storico
SQLite; 3 giorni grezzi, 31 giorni condensati
Dipendenza facoltativa
smartmontools, per la sezione SMART
Costo abituale
~4% di un core, ~11 MB di memoria
Avvisi
Posta via SMTPS, STARTTLS o in chiaro
Configurazione
Interfaccia web, oppure config.json

ELX-HealthMonitor

Cosa sta facendo ora un server Linux e cosa faceva la settimana scorsa

Scarica