You are on page 1of 79

Monitorare Lotus Domino con Nagios e Centreon

Fabio Grasso ITATIS S.r.l.

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

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

1. Introduzione

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.

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;

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.

2. Nagios e Centreon

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

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 }

Cos' Nagios?
Inoltre Nagios fornisce un'interfaccia grafica molto spartana

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)

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/Homeproducts/products-centreon

Vantaggi di Centreon

3. Installazione di Centreon

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

Installazione di Centreon
Inserire il CD di installazione (o nel caso di macchina virtuale montare la ISO)

Installazione di Centreon
Selezionare la lingua di installazione ( consigliabile utilizzare l'inglese)

Installazione di Centreon
Selezionare il layout di tastiera

Installazione di Centreon
Partizionare il disco utilizzando il layout predefinito

Installazione di Centreon
Selezionare il fuso orario

Installazione di Centreon
Impostare la password dell'utente root

Installazione di Centreon
Inizia la formattazione del disco e l'installazione

Installazione di Centreon
Un veloce riavvio e siamo quasi pronti...

Installazione di Centreon
Una volta riavviato il server possiamo procedere con la configurazione della scheda di rete

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

4. Configurazione base di Centreon

Configurazione di Centreon

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

Configurazione di Centreon
Il men Views si compone di 1 sezione: Graphs: permette di vedere i grafici di andamento dei vari servizi

Configurazione di Centreon
Il men Reporting si compone di 1 sezione: Dashboard: visualizza un riassunto dello stato dei vari servizi, eventualmente raggruppati in gruppi

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.

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.

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 email. Qualora si volesse impostare un server SMTP da utilizzare bisogner editare la configurazione di postfix.

Creazione di un'utenza

Creazione di un'utenza

Creazione di un'utenza

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.

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;

Creazione di un host
Entriamo nella voce Hosts del men Configuration e clicchiamo su Add

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)

Creazione di un host

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.

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...

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.

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.

Creazione di un servizio
Entriamo nella voce Services del men Configuration e clicchiamo su Add

Creazione di un servizio
Inseriamo come description Disk-/, selezioniamo il template generic-service e come comando check_centreon_remote_storage

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.

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-Win2K3memory); File di paging (SNMP-Linux-Swap o SNMP-Win2K3Swap)

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

Riavvio del demone Nagios

5. Configurare SNMP su Lotus Domino

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;

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;

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

SNMP e Domino
ServerTransPerMin 1.3.6.1.4.1.334.72.1.1.6.3.2 ServerUsers5MinPeak 1.3.6.1.4.1.334.72.1.1.6.3.9 ServerAvailabilityIndex 1.3.6.1.4.1.334.72.1.1.6.3.19 ClusterFailoverUnsucc 1.3.6.1.4.1.334.72.1.1.6.4.8.4 ServerVersion 1.3.6.1.4.1.334.72.1.1.6.2.4 RepFailed 1.3.6.1.4.1.334.72.1.1.5.4

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

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.

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%\IBM\Lotus\Domino\lnsnmp -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

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

6. Aggiungere controlli per Lotus Domino

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.

Controllare Domino
Per controllare la porta TCP di Domino possiamo sfruttare il comando check_tcp

Controllare Domino
Per controllare la corretta esecuzione del processo nserver (o nserver.exe su Windows) sfruttiamo il comando check_centreon_process

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).

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.

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).

7. Conclusioni ed ulteriori possibilit di sviluppo

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/

Conclusioni
Il risultato finale...

Alcuni plugin utili


check_blackberry: controlli vari sul funzionamento di un server BES: http://exchange.nagios.org/directory/Plugins/Email-andGroupware/Blackberry/check_blackberry_5-2E0/details

check_rbl: verifica se il nostro server in una blacklist antispam: http://exchange.nagios.org/directory/Plugins/Email-andGroupware/check_rbl/details

Raccolta di plugin per l'hardware IBM (BladeCenter, RSA/RSAII, iSeries, Storage, ecc.):
http://exchange.nagios.org/directory/Plugins/Hardware/ServerHardware/IBM

Alcuni plugin utili


DB2: http://exchange.nagios.org/directory/Plugins/Databases/DB2 WebSphere: http://exchange.nagios.org/directory/Plugins/JavaApplications-and-Servers/Websphere

Controlli per Domino usando DIIOP al posto di SNMP:


http://exchange.nagios.org/directory/Plugins/Email-andGroupware/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-andWHOIS/check_domain-%28new-one%29/details

Moduli di Centreon
Centreon Map permette di visualizzare graficamente gli host, i servizi e le relative interconnessioni

Moduli di Centreon
Centreon BI (Business Intelligence) comprende strumenti di reportistica avanzata sia online che esportabile in pdf (anche tramite schedulazioni)

8. Q&A

Contatti
Fabio Grasso ITATIS S.r.l
fabio.grasso@itatis.net - fabio.grasso@gmail.com www.itatis.net/monitoring.html Il nostro Monitoring Team: Area Supporto: Barbara Silanus - barbara.silanus@itatis.net Area Commerciale: Dario Frizzi - dario.frizzi@itatis.net

GRAZIE PER L'ATTENZIONE!

Grazie agli sponsor per aver reso possibile i Dominopoint Days 2012!
Main Sponsor Vad sponsor Platinum sponsor

Gold sponsor