Il progetto che prevedeva uno script bash per il monitoraggio, tramite crontab, delle risorse di un server Linux e l’invio di un alert al raggiungimento dei valori limite preimpostati, si è evoluto.
Vediamo nel dettaglio le nuove caratteristiche.
Il nuovo software, così come il vecchio, controlla lo stato del sistema per quanto riguarda l’utilizzo della CPU, della RAM e del disco, nonché il carico medio.
Quando viene raggiunta una delle soglie configurate, lo script genera un rapporto di allerta e invia una notifica via e-mail.
Le principali differenze, prensenti nell’ultima versione numerata 3.0.1, sono però due caratteristiche, a nostro avviso, molto interessanti:
Lo script ora supporta un file di configurazione esterno denominato system_monitor.conf, che si trova nella stessa directory di system_monitor.sh. Il file di configurazione predefinito viene caricato automaticamente, ma è anche possibile specificare un file personalizzato.
File di configurazione predefinito
Creare o modificare il file system_monitor.conf inserendo valori simili ai seguenti:
EMAIL_TO="alerts@example.com"
EMAIL_FROM="monitor@example.com"
SMTP_HOST="smtp.example.com"
SMTP_PORT=587
SMTP_USER="your_smtp_user"
SMTP_PASSWORD="your_smtp_password"
SMTP_TLS=on
SMTP_STARTTLS=on
CPU_LIMIT=90
RAM_LIMIT=80
DISK_LIMIT=90
LOAD_LIMIT=4
STATE_FILE="/tmp/monitor_sistema_html.state"
HIST_FILE="/tmp/monitor_sistema_storico.csv"
GRAPH_FILE="/tmp/monitor_sistema_grafico.png"
TOP_PROCESSES_LOG="/tmp/top_processes.log" Impostazioni disponibili
EMAIL_TO: indirizzo e-mail di destinazione per gli avvisi
EMAIL_FROM: indirizzo del mittente utilizzato negli avvisi
SMTP_HOST: host SMTP per l’invio dell’e-mail di avviso
SMTP_PORT: porta SMTP da utilizzare
SMTP_USER: nome utente SMTP
SMTP_PASSWORD: password SMTP
SMTP_TLS: utilizza TLS per connettersi al server SMTP (attivato/disattivato)
SMTP_STARTTLS: utilizza STARTTLS quando supportato (on/off)
CPU_LIMIT: soglia di utilizzo per CPU (%) da includere nel rapporto di avviso
RAM_LIMIT: soglia di utilizzo della RAM (%)
DISK_LIMIT: soglia di utilizzo del disco (%)
LOAD_LIMIT: soglia del carico medio
STATE_FILE, HIST_FILE, GRAPH_FILE, TOP_PROCESSES_LOG: sovrascritture opzionali del percorso
E’ possibile utilizzare un percorso di configurazione personalizzato con il comando:
bash system_monitor.sh --config /path/to/system_monitor.conf Oppure è possibile utilizzare la variabile d’ambiente MONITOR_CONF:
MONITOR_CONF=/path/to/system_monitor.conf bash system_monitor.sh E’ possibile eseguire lo script in modalità di prova e generare un avviso senza modificare lo stato del sistema:
bash system_monitor.sh --test Su Linux lo script legge i file /proc/stat e /proc/loadavg per ottenere i dati relativi alla CPU e al carico di sistema.
Su macOS utilizza comandi alternativi specifici per la piattaforma per ottenere informazioni sui processi e sul tempo di attività.
Se gnuplot non è installato, la generazione del grafico viene saltata con un avviso.
Se mutt non è disponibile, lo script prova a utilizzare sendmail come alternativa.
Oltre all’esecuzione tramite crontab della macchina, come descritto in precedenza, è possibile eseguire il software tramite container Docker.
Oltre che dal GiHub è possibile scaricare la build del software da Docker Hub
Per compilare l’immagine eseguire:
docker build -t tuxbashsysmonitor . Per eseguire il container con il file di configurazione montato:
docker run --rm \
-v “$PWD/system_monitor.conf:/app/system_monitor.conf:ro” \
-v /tmp:/tmp \
tuxbashsysmonitor --config /app/system_monitor.conf
Tutte le impostazioni SMTP e di avviso sono definite nel file system_monitor.conf; il container non richiede variabili d’ambiente SMTP.
Se il server SMTP utilizza un certificato autofirmato o un certificato che non corrisponde al nome host, è possibile disabilitare la convalida del certificato a scopo di test aggiungendo questa riga al file system_monitor.conf:
SMTP_TLS_CERTCHECK=off In alternativa a quanto visto fino ad ora, sempre in riferimento a Docker, è possibile utilizzarere docker-compose per eseguire il software:
docker compose up --build Il container esegue system_monitor.sh e utilizza il file system_monitor.conf montato.
Portare un progetto editoriale sullo smartphone non significa necessariamente riscriverlo da zero. Con RicetteUmbre abbiamo…
Reading Time: 2 minutesMonitorare le risorse di un server o computer linux in modo semplice…
Reading Time: < 1 minuteEsclusione di una serie di prodotti selezionati tramite l'apposito menù e…
Reading Time: < 1 minuteNel video che vedete di seguito, a titolo di esempio, ho…
Reading Time: 2 minutesVediamo come è possibile fare il restart di php-fpm con capistrano dopo…
"Stiamo scoprendo modi migliori di creare software,sviluppandolo e aiutando gli altri a fare lo stesso.Grazie…