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
Introduzione
Nagios e Centreon... cosa sono e cosa fanno
Installazione di Centreon Enterprise Server
Configurazione base di Centreon
Configurare SNMP su Lotus Domino
Aggiungere controlli per Lotus Domino
Conclusioni ed ulteriori possibilità di sviluppo
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-centreo
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
Dopo146Gb RAID 1, alimentatore ridondato
HDD 3 anni di funzionamento...
40 Gb occupati
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.
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_rbl: verifica se il nostro server è in una blacklist
antispam:
http://exchange.nagios.org/directory/Plugins/Email-and-Groupware/check_rbl/
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/We
Controlli per Domino usando DIIOP al posto di SNMP:
http://exchange.nagios.org/directory/Plugins/Email-and-Groupware/Lotus-Dom
check_domain: verifica la data di scadenza di uno o più
domini Internet:
http://exchange.nagios.org/directory/Plugins/Internet-Domains-and-WHOIS/che
http://exchange.nagios.org/directory/Plugins/Internet-Domains-and-WHOIS/ch
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)