Una panoramica sul mondo della Sicurezza Informatica, del Networking, della Virtualizzazione e non solo. Blog particolarmente indicato per i reparti IT che comunque alterna articoli scritti per specialisti con articoli formulati con linguaggio semplice e comprensibile a tutti.

Ogni articolo di questo blog è stato integralmente scritto dall'autore. Il contenuto è completamente originale e la riproduzione, anche parziale, è vietata salvo autorizzazione.

mercoledì 30 dicembre 2020

Monitorare gli host in maniera semplice - Script Bash

Sovente accade di voler monitorare degli host. Certo, esistono sistemi estremamente completi come Zabbix, ma spesso sovradimensionati rispetto ad un monitoraggio semplice e rapido. Ho, quindi, creato un semplice script Linux che ci consente di monitorare degli host in maniera semplice effettuando, a scelta, uno dei seguenti controlli:

  • ICMP Request (ping)
  • Verifica che una porta sia attiva (ad esempio la 25 per un mailserver)
  • Verifica la presenza di una stringa all'interno di una pagina web (per accertarsi che essa sia realmente reperibile)
  • Verifica la presenza di un file html con all'interno la dicitura "iocisono" (per minimizzare la richiesta di banda in monitoraggi particolarmente massivi)


Il progetto, scritto in bash per linux, è liberamente reperibile qui: https://github.com/cl4x/bashmonitoring e si compone di 3 file visibili nel progetto:

  •     monitoring.sh (il programma vero e proprio, ricordate di dare i permessi +x, che ometto in questo articolo in quanto si compone di circa 300 righe)

  •     monitoring.conf (il file di configurazione)

Il file di configurazione ha i seguenti parametri:

SLEEPTIME (si riferisce al tempo di sleep tra un controllo e quello dopo - il primo ciclo viene fatto integralmente senza sleep time)
SLEEPPRPOC (si riferisce al tempo di sleep tra un ciclo completo e l'altro, ovvero da quando finisce di controllare tutti gli host a quando riprende dall'inizio)
RETRY (indica il numero di tentativi, separati da un secondo, prima di dichiarare down l'host)
LOGENABLE 1|0 (abilita o disabilita i log)
LOGPATH (ovviamente dove scrivere i log che, per semplicità, non utilizzano syslogd)

  •     monitoring.hosts (qui andremo a definire gli host e che tipo di controllo effettuare)

 Il ogni riga è un controllo su un host, è diviso da ; ed è strutturato in questa maniera:

tipo di controllo;descrizione;host;eventuale opzione

ecco alcuni esempi:


ping;CloudFlare DNS;1.1.1.1

effettua un semplice ping


porta;Https su Repubblica;www.repubblica.it;443

verifica che la porta 443 sia aperta sul sito repubblica.it


porta;SMTP Gmail;gmail-smtp-in.l.google.com;25

verifica che la porta 25 su questo server sia aperta


porta;TestDown;11.22.33.44;11111

un esempio di come verrà evidenziato un host down


strhtml;Mozilla IT;https://www.mozilla.org/it/;Newsletter-mozilla-and-you

verifica che su questo sito la pagina web mostri la stringa "Newsletter-mozilla-and-you"

 

Ecco il risultato finale:

 

 

A breve integrerò, tempo permettendo, l'invio di email e anche una chiamata voip.

 

NB: deve essere installato nmap e curl, banalmente su debian/ubuntu basta dare 

sudo apt install nmap curl


Discaimer: Ogni articolo di questo blog è stato integralmente scritto dall'autore. Il contenuto è completamente originale e la riproduzione, anche parziale, è vietata salvo autorizzazione.