Intervenire su un problema ancora prima che il nostro cliente o i nostri utenti se ne accorgano. Con opportuni software di monitoring della rete questo è possibile.
Sul mercato esistono molti prodotti di monitoring, spesso molto complessi da utilizzare o molto costosi. Durante questa presentazione vedremo come installare una soluzione completamente Open Source e relativamente semplice da implementare.
Centreon è un prodotto per il monitoraggio di infrastrutture IT che sfrutta come motore il noto software Nagios. Durante questa presentazione vedremo come creare un'installazione base, ma funzionale, dei due prodotti. Successivamente ci concentreremo sul monitoraggio di un server Lotus Domino sfruttando il protocollo SNMP ed impareremo a tenere sotto controllo parametri vitali come ad esempio uso della memoria e della CPU, spazio disco, numero di messaggi "dead" nelle mailbox, la corretta esecuzione di task, stato del cluster, ecc.
Vedremo infine come configurare notifiche via e-mail dei malfunzionamenti e come visualizzare grafici statistici sul funzionamento dei servizi.
2. Presentiamoci...
Fabio Grasso
• fabio.grasso@itatis.net - fabio.grasso@gmail.com
• Lavoro come sistemista per Itatis Srl (www.itatis.net) con
particolare focus sulle soluzioni di collaboration Lotus
• Sono certificato come System Administrator per la
versione 8.5 e conosco l'ambiente Lotus dalla versione
6.5 con cui ho iniziato a lavorare nel 2004
3. Indice
1) Introduzione
2) Nagios e Centreon... cosa sono e cosa fanno
3) Installazione di Centreon Enterprise Server
4) Configurazione base di Centreon
5) Configurare SNMP su Lotus Domino
6) Aggiungere controlli per Lotus Domino
7) Conclusioni ed ulteriori possibilità di sviluppo
8) Q&A
5. Introduzione
• Intervenire su un problema ancora prima che il nostro
cliente o i nostri utenti se ne accorgano. Con opportuni
software di monitoring della rete questo è possibile.
• Sul mercato esistono molti prodotti di monitoring,
spesso molto complessi da utilizzare o molto costosi.
Durante questa presentazione vedremo come installare
una soluzione completamente Open Source e
relativamente semplice da implementare.
6. Introduzione
• Nel 2010 grazie ad una collaborazione tra Itatis ed il
Politecnico di Milano nasce una tesi dal titolo
“Realizzazione di un sistema di monitoraggio per
infrastrutture IT mediante Nagios e Centreon” sviluppata
all'interno dell'infratruttura di un nostro importante
cliente;
• Nel corso degli anni il sistema di monitoring viene
ampliato sempre di più, seguendo i vari cambi
infrastrutturali;
• Vengono aggiunte features, come le notifiche via SMS,
ed affinate le soglie di criticità;
7. Introduzione
• Oggi il sistema di monitoraggio ci permette di individuare
(e risolvere!) guasti e in maniera rapida ed efficiente...
spesso ancora prima che il nostro cliente si renda conto
del problema!
• L'archivio storico ci consente inoltre di raccogliere
importanti dati statistici e di ricontrollare lo stato di
server e servizi anche dopo mesi (utilissimo quando si
devono valutare upgrade, controllare cali di prestazioni o
verificare SLA);
• Il pacchetto “ITATIS Monitoring”, basato su Centreon e
Nagios è ormai un must per tutti i nostri clienti.
9. Cos'è Nagios?
• Nagios è un software Open Source di Network
Administration scalabile e flessibile per il monitoraggio di
server, computer e LAN;
• La suite Nagios server per:
– Monitorare nodi, reti e servizi (HTTP, SMTP, FTP, ...);
– Definire gerarchie di nodi di rete usando nodi parent,
permettendo la distinzione tra host “down” e
“irraggiungibili”;
– Informare l'admin tramite e-mail/SMS in caso di
criticità
10. Cos'è Nagios?
• La configurazione di Nagios è basata su file di testo,
semplici ma “macchinosi”, ad esempio per creare ciascun
host da monitorare dobbiamo editare a mano un file di
configurazione aggiungendo definizioni tipo:
define host{
use linux-server
host_name remotehost
alias Remote Host
address 192.168.1.1
contacts_groups admins
}
12. Cos'è Centreon?
• Per rendere la configurazione di Nagios più rapida e
“amichevole” ci affidiamo a Centreon, un altro prodotto
Open Source che fornisce un'interfaccia grafica più
completa al motore di Nagios;
• Ne esistono due principali versioni:
– Versione “stand-alone”, installabile su un server
Nagios esistente;
– Versione Enterprise Server, soluzione “appliance”
pronta all'uso con un sistema operativo integrato
(basata su Linux CentOS)
13. Vantaggi di Centreon
• Migliore interfaccia grafica;
• Motore “Centreon Engine”, basato su Nagios ma con
migliori prestazioni;
• Pacchetto di plugin già pronti all'uso;
• Possibilità di integrazioni con funzionalità di report,
mappe e business intelligence (mediante add-on
commerciali);
• Gestione di server “poller” aggiuntivi su sedi remote;
• Team di supporto e consulenza (anche in Italia!);
• ...e tanto altro... http://www.centreon.com/Home-
products/products-centreon
16. Installazione di Centreon
• Requisiti di sistema:
– Qualunque server x86 sia fisico che virtuale
– CPU e RAM dimensionate in base al numero di host e
servizi da monitorare
– HDD in base ai dati storici da mantenere
• Un esempio pratico... 160 host, 1000 servizi
– Server IBM x3650M2
– Processore Intel Xeon E520, 12 Gb di RAM
– HDD anni di funzionamento...
Dopo 3 146Gb RAID 1, alimentatore ridondato
40 Gb occupati
17. Installazione di Centreon
• Inserire il CD di installazione (o nel caso di macchina
virtuale “montare” la ISO)
25. Installazione di Centreon
• Una volta riavviato il server possiamo procedere con la
configurazione della scheda di rete
26. Installazione di Centreon
• Siamo pronti per cominciare...
• Apriamo sul browser il nostro server
http://x.x.x.x
• I dati di autenticazione predefiniti sono:
Login: admin
Password: centreon
29. Configurazione di Centreon
• Il menù “Monitoring” si compone di 3 sezioni:
– Services: lista di tutti i servizi monitorati, suddivisibili
con vari filtri tra cui: servizi con problemi, servizi
suddivisi per host, ecc.
– Hosts: lista di tutti gli host monitorati, anche in questo
caso possibilità di visualizzarli con vari filtri;
– Event Logs: registro di tutti gli eventi con ricerca per
data, severità e host
30. Configurazione di Centreon
• Il menù “Views” si compone di 1 sezione:
– Graphs: permette di vedere i grafici di andamento dei
vari servizi
31. Configurazione di Centreon
• Il menù “Reporting” si compone di 1 sezione:
– Dashboard: visualizza un riassunto dello stato dei vari
servizi, eventualmente raggruppati in gruppi
32. Configurazione di Centreon
• Il menù “Configuration” si compone di 7 sezioni:
– Hosts: operazioni sugli host monitorati;
– Services: operazioni sui servizi;
– Users: gestione degli utenti;
– Commands: configurazione dei comandi usati dai
servizi e dalle notifiche;
– Nagios: permette di generare il file di configurazione
per i motore Nagios e riavviarne il demone;
– Centreon: permette di gestire più server Centreon
raggruppando i dati in un'unica interfaccia web.
33. Configurazione di Centreon
• Il menù “Administration” si compone di 7 sezioni:
– Options: parametri di configurazione di Centreon;
– Modules: gestione moduli aggiuntivi (es. Map, BI);
– ACL: gestione dei permessi degli utenti;
– Logs: registro delle attività di configurazione
effettuate su Centreon
– Sessions: elenco degli utenti collegati;
– Server Status: informazioni sulla versione di Nagios e
Centreon in uso e statistiche di funzionamento;
– About: informazioni sugli sviluppatori di Centreon.
34. Creazione di un'utenza
• Per prima cosa creiamo un utente con un indirizzo e-mail
su cui verranno inviate le notifiche;
• E' anche possibile creare gruppi di utenti ed utenti con
permessi limitati (ad esempio sola lettura oppure
visibilità solo di alcuni host della rete);
• Le mail vengono inviate con postfix. L'impostazione
predefinita fa una query MX sul dominio dell'indirizzo e-
mail. Qualora si volesse impostare un server SMTP da
utilizzare bisognerà editare la configurazione di postfix.
38. Creazione di un host
• Il secondo passo è creare un host, cui poi andremo ad
associare i servizi che vogliamo monitorare;
• Una volta configurato ciascun host può assumere vari
stati, ciascuno di questi può generare una notifica:
– Down: l'host non risponde;
– Unreachable: l'host non risponde perché un host di
livello superiore è down;
– Recovery: l'host è tornato online;
– Flapping: situazione di stallo in cui l'host continua a
cambiare stato (es. loop di riavvii);
– Downtime Scheduled: manutenzione schedulata.
39. Creazione di un host
• Una volta configurato, ciascun host può differire per vari
parametri, ad esempio gli orari della giornata in cui
effettuare i controlli oppure il tipo di allarmi da generare;
• Questi parametri possono essere definiti per singolo host
oppure tramite template;
• Il template predefinito (“generic-host”) prevede controlli
24h/24, notifiche abilitate per gli eventi “down” e
“recovery” ed utilizza il comando “ping” per verificare se
un host è raggiungibile;
40. Creazione di un host
• Entriamo nella voce “Hosts” del menù “Configuration” e
clicchiamo su “Add”
41. Creazione di un host
• Compiliamo il campo “Host Name” ed “IP Address”,
selezioniamo il gruppo di contatti da notificare ed
ignoriamo gli altri campi (verranno presi dal template)
43. Creazione di un servizio
• L'ultimo passo è definire uno o più servizi che verranno
associati all'host precedentemente creato;
• I servizi operano eseguondo un comando di cui viene
analizzato l'output;
• Esistono decine comandi già preinstallati con Nagios e
Centreon. Tanti altri si possono trovare su Nagios
Exchange (http://exchange.nagios.org) e, con un po' di
pazienza, è possibile crearne di propri con linguaggi di
scripting come PERL, Python o Bash.
44. Creazione di un servizio
• Oltre allo status corrente del servizio vengono raccolti
dati storici che possono essere poi visualizzati sia come
logs che come grafici di andamento;
• Ad esempio è possibile visualizzare graficamente
l'andamento della banda internet, del carico di un server,
oppure il numero di mail processate da Domino...
45. Creazione di un servizio
• Anche i servizi possono assumere più stati:
– Warning: il servizio ha raggiunto una soglia
considerata di attenzione;
– Critical: il servizio ha raggiunto una soglia critica;
– Unknown: sconosciuto, tipicamente per un errore di
configurazione del servizio o comando;
– Recovery: il servizio ha ripreso a funzionare
regoarmente;
– Flapping: situazione di stallo in cui il servizio continua
a cambiare stato;
– Downtime Scheduled: manutenzione schedulata.
46. Creazione di un servizio
• Analogamente agli host è possibile sfruttare dei template
per gestire la maggior parte dei parametri comuni tra più
servizi (es. tipi di notifiche, periodi di controllo, ecc.);
• I passi per creare un servizio sono:
– Definire il servizio;
– Definire i parametri di funzionamento (es. ogni
quanto controllarlo) oppure utilizzare un template per
definire questi parametri;
– Associare il servizio ad uno o più host.
47. Creazione di un servizio
• Entriamo nella voce “Services” del menù “Configuration”
e clicchiamo su “Add”
48. Creazione di un servizio
• Inseriamo come description “Disk-/”, selezioniamo il
template “generic-service” e come comando
“check_centreon_remote_storage”
49. Creazione di un servizio
• Per concludere andiamo sul tab “Relations” ed
aggiungiamo l'host su cui vogliamo controllare il servizio.
Infine salviamo la configurazione col pulsante “Save”.
50. Creazione di un servizio
• Possiamo procedere analogamente inserendo altri servizi
utilizzando template preimpostati, come ad esempio:
– CPU (template SNMP-Linux-Load-Average oppure
SNMP-Windows-CPU);
– Memoria (SNMP-Linux-Memory o SNMP-Win2K3-
memory);
– File di paging (SNMP-Linux-Swap o SNMP-Win2K3-
Swap)
51. Riavvio del demone Nagios
• Una volta ultimata la configurazione è necessario
esportare la configurazione del motore Nagios e
riavviarlo in modo da fargli recepire le modifiche;
• L'operazione è totalmente automatizzata, il tempo di
riavvio del demone dipende dal numero di host e servizi
configurati.
A titolo esemplificativo con un migliaio di servizi
occorrono il riavvio impiega circa 30 secondi
54. SNMP e Domino
• Domino supporta il protocollo SNMP (Simple Network
Management Protocol), un semplice ma efficace metodo
per ottenere informazioni sullo stato del nostro server;
• Le informazioni disponibili sono pressoché le stesse del
DDM (Domino Domain Monitor);
• E' anche possibile generare dei “traps” SNMP oltre che
fermare e riavviare remotamente il server Domino;
55. SNMP e Domino
• Le informazioni disponibili via SNMP sono catalogate nel
file MIB (Management Information Base) che ha come
OID (Object Identifier) 1.3.6.1.4.1.334;
• E' possibile trovare il file “domino.mib” nella cartella di
installazione di Domino;
• Il file è visibile con un qualsiasi editor di testi oppure con
appositi software (es. SolarWinds) che permettono di
visualizzare i file MIB con una struttura ad albero;
56. SNMP e Domino
• Ciascun parametro ha un suo identificatore OID.
Vediamo insieme alcuni dei più interessanti:
– DeadMail 1.3.6.1.4.1.334.72.1.1.4.1
– TotalMailFailures 1.3.6.1.4.1.334.72.1.1.4.3
– TotalRoutedMail 1.3.6.1.4.1.334.72.1.1.4.4
– WaitingMail 1.3.6.1.4.1.334.72.1.1.4.6
– MailTotalPending 1.3.6.1.4.1.334.72.1.1.4.31
– AverageMailDeliverTime 1.3.6.1.4.1.334.72.1.1.4.9
– AverageMailServerHops 1.3.6.1.4.1.334.72.1.1.4.10
58. Configurare SNMP su Linux
• Installare e configurare il demone SNMP per la propria
distribuzione Linux
(http://forums.cacti.net/viewtopic.php?t=15353)
• Creare un link simbolico del demone SNMP di Domino
su /etc/init.d:
ln -f -s /opt/ibm/lotus/notes/latest/linux/lnsnmp.sh /etc/init.d/lnsnmp
• Impostarlo in avvio automatico:
chkconfig --add lnsnmp
• Editare file /etc/snmp/snmp.conf ed aggiungere:
smuxpeer 1.3.6.1.4.1.334.72.0 NotesPasswd
59. Configurare SNMP su Linux
• Riavviare il demone SNMP:
/etc/init.d/snmpd restart
• Avviare il demone SNMP di Domino:
/etc/init.d/lnsnmp start
• Dalla console di Domino eseguire il task quryset:
load quryset
• Questo task permette al demone SNMP di leggere tutti i
dati informativi e di performance di Domino.
60. Configurare SNMP su Windows
• Installare e configurare il servizio SNMP di Windows
(http://technet.microsoft.com/en-us/library/bb726987.aspx#EAAA)
• Registrare il servizio SNMP di Domino:
%ProgramFiles%IBMLotusDominolnsnmp -Sc
• Avviarlo ed impostarlo in avvio automatico:
net start lnsnmp
sc config lnsnmp start=auto
• Analogamente a Linux, dalla console di Domino eseguire
il task quryset:
load quryset
61. SNMP sta funzionando?
• Per verificare il funzionamento dell'SNMP di Domino ci
viene in aiuto il comando di Linux “snmpwalk”.
Eseguendolo con il corretto OID se la configurazione è
corretta otterremo come output la lista di tutti i parametri
monitorabili
• snmpwalk -v1 -c public x.x.x.x 1.3.6.1.4.1.334.72
63. Controllare Domino
• Abbiamo visto come creare servizi “standard” quali
carico della CPU e spazio su disco, vedremo ora come
controllare lo stato del nostro server Lotus Domino.
• Possiamo effettuare svariati controlli, nei prossimi
esempi ci concentreremo su:
– Verifica della porta TCP 1352;
– Verifica dell'esecuzione del processo
nserver/nserver.exe;
– Lettura di parametri dall'SNMP di Domino.
64. Controllare Domino
• Per controllare la porta TCP di Domino possiamo
sfruttare il comando “check_tcp”
65. Controllare Domino
• Per controllare la corretta esecuzione del processo
“nserver” (o nserver.exe su Windows) sfruttiamo il
comando “check_centreon_process”
66. Controllare Domino
• Per tutti i controlli legati alle query SNMP su Domino
possiamo utilizzare il versatile comando “check_snmp”;
• Si tratta di un plugin scritto in C e compilato, quindi
molto veloce da eseguire;
• E' possibile passare come parametro un qualunque OID,
di conseguenza permette di controllare qualsiasi valore
restituito dall'SNMP;
• E' anche possibile definire etichette ed effettuare più
controlli in parallelo in modo da avere un grafico con più
linee (si rimanda per questo alla documentazione
ufficiale: http://nagiosplugins.org/man/check_snmp).
67. Controllare Domino
• Creiamo quindi un servizio che sfrutta il comando
“check_snmp”. Ricordiamoci di aggiungere “.0” alla fine
dell'OID, altrimenti il plugin restituirà un errore.
68. Controllare Domino
• Nell'esempio è indicato il parametro “DeadMail”, ma
possiamo creare tutti i servizi che vogliamo, cambiando
di volta in volta l'OID, scegliendolo tra quelli disponibili
nel file MIB;
• Se l'OID restituisce un numero, Centreon lo gestisce
automaticamente come dato statistico nel suo database
in modo da generare grafici e report;
• Se l'OID è una stringa (ad esempio la versione di Domino)
verrà solo visualizzata. E' comunque possibile modificare
il comando in modo da gestire espressioni regolari di
controllo (ad esempio per verificare che il livello di
versione di tutti i server sia allineato).
70. Conclusioni
• Abbiamo visto come in poche ore possiamo creare un
semplice ma efficace sistema di monitoraggio;
• Ovviamente le possibilità di Centreon e Nagios non si
fermano qui, ma possiamo sviluppare ulteriormente il
nostro ambiente aggiungendo plugin e funzionalità, sia
Open che commerciali;
• Un buon punto di partenza è la documentazione di
Centreon che troviamo all'indirizzo:
http://documentation.centreon.com/
72. Alcuni plugin utili
• check_blackberry: controlli vari sul funzionamento di un
server BES: http://exchange.nagios.org/directory/Plugins/Email-and-
Groupware/Blackberry/check_blackberry_5-2E0/details
• check_rbl: verifica se il nostro server è in una blacklist
antispam: http://exchange.nagios.org/directory/Plugins/Email-and-
Groupware/check_rbl/details
• Raccolta di plugin per l'hardware IBM (BladeCenter,
RSA/RSAII, iSeries, Storage, ecc.):
http://exchange.nagios.org/directory/Plugins/Hardware/Server-
Hardware/IBM
73. Alcuni plugin utili
• DB2: http://exchange.nagios.org/directory/Plugins/Databases/DB2
• WebSphere: http://exchange.nagios.org/directory/Plugins/Java-
Applications-and-Servers/Websphere
• Controlli per Domino usando DIIOP al posto di SNMP:
http://exchange.nagios.org/directory/Plugins/Email-and-
Groupware/Lotus-Domino/check_domino/details
• check_domain: verifica la data di scadenza di uno o più
domini Internet:
http://exchange.nagios.org/directory/Plugins/Internet-Domains-and-
WHOIS/check_domain-%28new-one%29/details
74. Moduli di Centreon
• Centreon Map permette di visualizzare graficamente gli
host, i servizi e le relative interconnessioni
75. Moduli di Centreon
• Centreon BI (Business Intelligence) comprende
strumenti di reportistica avanzata sia online che
esportabile in pdf (anche tramite schedulazioni)