Il monitoraggio di un DataCenter - SCoPE

Transcript

Il monitoraggio di un DataCenter - SCoPE
Università degli Studi di Napoli Federico II
Facoltà di Scienze Matematiche Fisiche e Naturali
Corso di Laurea in Informatica
Tesi Sperimentale di Laurea Triennale
Il monitoraggio di un DataCenter: Implementazione
di funzioni per le risorse locali di nodi remoti
Relatori
Candidato
Prof. G. Russo
Dr. D. Del Prete
Esposito Paolo
Matr. 566/2008
Anno accademico 2009/2010
I
Indice generale
Introduzione................................................................................................................................1
1.Enterprise Information Portal: Liferay.....................................................................................3
1.1.Caratteristiche...................................................................................................................6
1.2.Organizzazione Delle Portlet............................................................................................8
1.3.Permessi E Sicurezza......................................................................................................10
2.Panoramica sull'applicazione NAGIOS.................................................................................12
2.1.Caratteristiche E Requisiti..............................................................................................13
2.2.Installazione Automatica................................................................................................14
2.3.Installazione Manuale.....................................................................................................16
2.4.Configurazione Di NAGIOS..........................................................................................18
2.5.Configurazione Di Apache.............................................................................................24
2.6.Interfaccia Web...............................................................................................................27
3.L'addon NRPE........................................................................................................................30
3.1.Nagios Remote Plugin Executor....................................................................................30
3.2.Tipologia Dei Nodi Della Rete.......................................................................................33
3.3.Installazione E Configurazione Del NRPE....................................................................36
3.4.Risoluzione Dei Problemi..............................................................................................42
4.Configurazione dei plugin......................................................................................................45
4.1.Contenuto Del File Nrpe.cfg..........................................................................................47
4.2.Descrizione Dei Plugin...................................................................................................51
4.3.Script Utilizzati Per Gli Host..........................................................................................58
4.4.Il Protocollo SNMP........................................................................................................66
4.5.Script Per UPS, Switch E CMC.....................................................................................71
4.6.Considerazioni ...............................................................................................................73
4.7.Scheduler E Resource Manager.....................................................................................74
4.8.Problematiche.................................................................................................................77
5.Aggiunta dei servizi con Centreon.........................................................................................80
5.1.Host E Host Group.........................................................................................................83
5.2.Aggiungere Un Comando...............................................................................................87
5.3.Creare Un Servizio.........................................................................................................89
5.4.Centreon Come Tool Di Monitoraggio...........................................................................96
6. Creazione delle mappe con Nagvis.......................................................................................99
6.1.Inserire Una Mappa......................................................................................................106
6.2.Editor Di Mappe...........................................................................................................108
6.3.Url E Web Management...............................................................................................112
7.Conclusioni...........................................................................................................................117
8.Appendice.............................................................................................................................119
8.1.File Di Configurazione Delle Mappe...........................................................................119
8.2.Mappe...........................................................................................................................147
Bibliografia.............................................................................................................................158
Introduzione
Con l'aumento della complessità delle reti e l'accrescere del numero di macchine e
apparati collegati, diventa sempre più complicato monitorare il corretto funzionamento
degli stessi.
Quello di cui ha bisogno un amministratore di sistema per svolgere, in maniera
ottimale, il proprio lavoro è il controllo di tutte le risorse che deve gestire.
Dato il gran numero di macchine presenti sulla rete, controllare ogni singolo apparato
collegandosi volta per volta ed eseguendo determinati script, è un metodo lento e poco
funzionale.
Spesso, poi, si tratta di macchine adibite a compiti diversi che necessitano il
monitoraggio di parametri e funzionalità differenti.
Non si può prescindere quindi da un sistema di monitoraggio centralizzato che sia in
grado di controllare, in modo rapido ed efficiente, lo stato della rete e rilevare
eventuali problematiche.
Un sistema di monitoraggio ha il compito di controllare continuamente, ed ad
intervalli prestabiliti, le risorse degli host ed apparati attivi che compongono la rete.
Questo
tramite
una
interfaccia
messa
a
disposizione
dell'amministratore.
L'amministratore di rete, in questo modo, può individuare tempestivamente un
problema e provvedere alla sua risoluzione.
Questo lavoro di tesi è svolto sulla rete di calcolo del Tier2-Napoli, sulla quale è già
presente un sistema di monitoraggio funzionante basato sul software open source
NAGIOS.
La funzione principale di NAGIOS è quella di controllare nodi, reti e servizi
specificati, avvertendo quando questi non garantiscono il loro servizio, quando
vengono spenti e quando ritornano attivi.
NAGIOS è stato installato tramite il FAN (Fully Automated NAGIOS), che include
Esposito Paolo 566/2008
Pagina 1 di 148
diversi tool per la configurazione tra i quali, sono stati utilizzati, Centreon e Nagvis.
È stato inserito all'interno di una portlet del portale web di Tier2. Il portale è Liferay,
un EIP (Enterprise Informazion Portal) opern source basato sul linguaggio java.
L'obiettivo di questo lavoro di tesi è organizzare logicamente tutti gli host ed apparati
della rete di calcolo di Tier 2 ATLAS, classificandoli per tipologia, e definire per
ognuno di questi i servizi da monitorare visualizzandoli graficamente tramite una
mappa navigabile.
Il mio lavoro di tesi si è sviluppato nelle seguenti fasi:
•
Installazione e configurazione dell'addon NRPE su 80 macchine. L'addon
NRPE è progettato per permettere l'esecuzione di NAGIOS su macchine remote
linux. Il principale motivo è quello di permettere a NAGIOS di monitorare
risorse locali come, per esempio, il caricamento della CPU o l'utilizzo di
memoria.
•
Inserimento degli host e configurazione di 19 servizi nel tool Centreon.
Centreon è usato come interfaccia grafica di NAGIOS e permette di inserire
host, classificarli in host group e definire dei servizi su essi. Si possono testare i
servizi su determinati host ed, una volta completata la configurazione, esportare
il file di configurazione per NAGIOS.
•
Inserimento ed editing delle 12 mappe delle infrastrutture di rete con l'addon
Nagvis. Nagvis è usato per visualizzare i dati di NAGIOS. Permette di caricare
mappe in formato png e inserire su queste oggetti come le icone per gli host che
visualizzeranno informazioni riguardanti gli host e lo stato dei servizi attivi.
•
Organizzare le mappe in modo da favorire la navigabilità e individuare
agevolmente le anomalie.
È possibile in questo modo partire da una
panoramica generale della rete, visualizzare gli apparati classificati per
tipologia, ed entrare nel dettaglio visualizzando i servizi di un singolo host ed
accedere alla sua web management.
Esposito Paolo 566/2008
Pagina 2 di 148
Queste fasi hanno portato alla realizzazione di un sistema di monitoraggio
centralizzato, all'interno di un portale Liferay, in grado di monitorare le risorse locali
di host remoti. Il sistema è utilizzabile tramite una interfaccia grafica accessibile da un
qualunque Web Browser e il suo funzionamento è stato testato per tutta la durata del
tirocinio risolvendo, di volta in volta, le problematiche che si sono presentate.
1. Enterprise Information Portal: Liferay
Liferay è un Enterprise Portal Server Open Source basato sul linguaggio java che
utilizza le ultime tecnologie del Web 2.0.
I portal server nascono in un ambiente aziendale, per venire incontro alla necessità di
aggregare i servizi offerti da Legacy System aziendali.
Il portale svolge la funzione di Web Container. Una pagina può essere considerata una
aggregazione di moduli web, chiamati portlet, destinati a contenere applicazioni.
La scelta è ricaduta su Liferay in quanto offre una grande quantità di servizi integrati
di qualità ed un'ottima flessibilità. Tutto questo si va ad aggiungere ad una grande
capacità di organizzare e supportare la collaborazione.
Liferay infatti è un portale open source che offre un sistema potente ed integrato di
funzioni di collaborazione tra le quali:
•
Wiki: Ogni gruppo può condividere una propria Wiki con propri e differenziati
insiemi di autorizzazioni. Ogni utente con i diritti necessari può contribuire alla
crescita del repository di conoscenza condiviso. I contenuti vengono inseriti
semplicemente con un editor WISWYG, le pagine possono essere raggruppate
in gerarchie con tag di sistemi a vocabolario multipo (taxonomy e/o
folksonomy).
•
Bacheca elettronica: Un sistema di message boeard che permette di condividere
idee e annunci all'interno di una organizzazione o una community. Mette a
disposizione report sull'attività svolta nella bacheca, riportando i post recenti e
Esposito Paolo 566/2008
Pagina 3 di 148
gli utenti attivi. Ogni thread è visibile via feed RSS, ogni post può inviare una
mail di avviso che permetti di rispondere al post del client di posta. Come per
tutte le altre portlet, anche quella della bacheca è sottoposta al sistema di
gestione degli accessi e autorizzazioni che garantisce i controllo utilizzando i
ruoli.
•
RSS: Permette di condividere tutte le tipologie di contenuto tramite feeding
RSS
•
Blog: Un sistema ricco di funzionalità reso più efficace dalla natura “sociale”
del portale nel suo complesso. Tra le funzionalità più importanti l'editor
WYSWYG, social bookmarking, notifiche email per i contributi e i commenti,
sistemi di rating dei contributi, subscription via RSS, scheduling delle
pubblicazioni
•
Tracking delle attività: tiene traccia delle attività più recenti effettuate sul
portale.
•
Instant messaging: Comprende delle funzioni di instant messaging. Tramite la
lista degli amici vengono automaticamente visualizzati i nomi degli amici
collegati. L'accesso al servizio è inserito in una barra in fondo alla videata e
segue l'utente lungo la navigazione all'interno del portale rimandendo sempre
disponibile.
•
Calendari: È possibile impostare e utilizzare calendari di gruppo basati sulle
community. Gli eventi possono essere condivisi e gli alert possono essere settati
per un avviso via email o instant messaging.
•
Avvisi: È possibile inviare messaggi di tipo broadcast a gruppi di utenti, ogni
utente può impostare le modalità di ricezione degli avvisi.
•
Sondaggi: Sono disponibili delle portlet per l'impostazione, la presentazione e
la raccolta dati di sondaggi. Possono essere configurati e pubblicati più
sondaggi in contemporanea con visibilità differenziate rispetto ai gruppi.
Esposito Paolo 566/2008
Pagina 4 di 148
figura 1 : Schermata di prova con alcune portlet
Liferay è conforme alle specifiche SOA (Service Oriented Architecture) per una
robusta integrazione applicativa. Integra OpenSSO (Single Sign On) e può cooperare
con standard quali Shibbolet, Liberty Alliance, Open ID, CAS.
Qualunque applicazione sviluppata su Liferay beneficia di tutte le possibilità tipiche di
un Portal Server Enterprise: Multi-Tier, Limitess Clustering, High Avaibility, Page
Caching, ect.
Supporta standard molto importanti e diffusi:
•
Portlet Specification and API 1.0 (JSR-168)
•
JSR-252 (Java Server Faces) 1.2
•
JMX (Java Management Extension) 1.2
•
WSRP (Web Services for Remote Portlets) 1.0
•
Full J2EE 1.4 compliance quando usato con JBoss AS
Esposito Paolo 566/2008
Pagina 5 di 148
Alcune delle sue caratteristiche che lo contraddistinguono sono:
•
Elevata dinamicità che permette di creare, rimuovere e modificare portlet, temi,
layout, finestre e impostazioni di sicurezza a runtime.
•
IPC
(Interportlet
Comunication)
notevolmente
irrobustita
attraverso
un'organizzazione gerarchica delle portlet.
1.1. Caratteristiche
Liferay si può definire come un Portlet Engine. Viene distribuito anche come EAR
(Enterprise Archive) all'interno della Application Server JBoss.
JBoss implementa l'intera suite di servizi che si basano sulla Java Enterprise Edition.
Sono legati a JBoss tanti altri progetti open source che vengono racchiusi tutti sotto il
marchio della JBoss Enterprise Middleware Suite (JEMS)
In questo modo Liferay si può avvalere di tutti i vantaggi apportati dalla suite JEMS:
•
Disponibilità del servizio Object-Relational Mapping (ORM) fornito dalla
piattaforma per lo sviluppo di applicazioni Hibernate.
•
Utilizzo del Java Authentication and Authorization Service (JAAS) per la
gestione degli accessi alle risorse.
•
Caching per ridurre l'uso della banda e il tempo di accesso al sito.
•
Architettura cluster realizzando il sistema su un insieme di macchine
nascondendo la struttura alla vista del client.
•
Hot deployment delle portlet in modo da aggiungere applicazione war senza far
ripartire il server.
•
Single Sign On (SSO) e Lightweight Directory Access Protocol (LDAP) per
ottenere un'unica autenticazione e accedere alle risorse a lui consentite.
•
Business Process Management & Business Rules per ottimizzare, gestire e
monitorare i processi aziendali.
•
Gestire le transazioni distribuite su più server adibiti alla gestione delle risorse,
tramite un gestore delle transazioni.
Esposito Paolo 566/2008
Pagina 6 di 148
•
Utilizzo dell' Enterprise Messaging System (EMS) per permettere alle
organizzazioni di inviare messaggi tra i vari sistemi.
Di seguito una panoramica generale delle varie caratteristiche:
• Out-of-the-box tools: Grazie ad una community molto estesa, Liferay Portal
Server fornisce un grandissimo numero di portlet già integrate.
• SOA Framework: Liferay Portal Server è stato sviluppato utilizzando
l'architettura orientata ai servizi SOA Service Oriented Architecture che lo rende
la scelta ottimale per soluzioni Enterprise Application Integration in tecnologia
Web 2.0 tramite Web Services.
• Dynamic drag & drop: Liferay Portal Server offre la funzionalità di drag & drop
delle portlet. Gli utenti possono spostare gli elementi nel portale semplicemente
trascinando e rilasciando il mouse.
• Secure Single Sign On (SSO): Per accedere ai contenuti e alle applicazioni da
un punto unico di accesso. Liferay Portal Server può aggregare diversi sistemi
applicativi e renderli disponibili accedendo una volta sola con il massimo della
riservatezza tramite il Single Sign On.
• Granular, Role-Based Authorizations: Per garantire che le persone accedano con
diritto alle sole informazioni per le quali sono autorizzate. Gli amministratori
del portale possono assegnare ai singoli utenti o gruppi di utenti diversi "ruoli"
per attribuire loro differenti livelli di accesso e differenti diritti di modifica. Ad
esempio, un "direttore vendite" può visualizzare e modificare tutti i documenti
di vendita, ma un "Assistente di vendita" può solo visualizzarli.
• Personal User Pages : Tutti gli utenti abilitati potranno avere un spazio
personale dove immettere proprie informazioni. Potranno decidere se renderle
pubbliche o tenerle private. È possibile personalizzare lo spazio messo a
disposizione tramite il drag & drop delle portlet.
• Gestione contenuti: Il CMS integrato all'interno di Liferay Portal Server
fornisce un insieme esteso di funzionalità fortemente integrate con le funzioni
Esposito Paolo 566/2008
Pagina 7 di 148
di collaborazione e fornisce un repository centralizzato per conservare e gestire
contenuti da visualizzare sul web. Ciascuna community e ciascuna organization
hanno a disposizione una propria separata document library e image gallery.
Il CMS è implementato tramite Liferay Journal, un contenuto instrinseco (builtin) del portale Liferay che abilita una serie di funzionalità di gestione contenuti:
• Web Publishing: E' un sistema che può essere usato per creare pagine web in
modo veloce usando dei contenuti riusabili, dei modelli (Template) per il layout
flessibili.
• Flexibile Template Mechanism (XSL/VM): I modelli creati per gli Articoli
possono essere fatti in XSL o Velocity (VM) dando cosi agli sviluppatori la
flessibilità di disegnare le pagine web.
• Document Library: Provvede un deposito centralizzato per i servizi della
Library, fatto con JCR-170 Java Content Repository (Jackrabbit) per trattare
diversi documenti (PDF, DOC ...) che possono essere salvati sotto una unica
URL (vedi DocManagement).
• Image Gallery: Provvede un deposito centralizzato per immagini.
• Portal Publishing & Staging: Publishing permette di modificare pagine web in
tempo reale però senza pubblicare subito il cambiamento, solo quando si decide
di farlo. Invece Staging per creare varie copie di modifica della stessa pagina e
testarle senza toccare le pagine correnti sul Portale
1.2. Organizzazione delle Portlet
Liferay mette a disposizione tre tipologie di Portlet di amministrazione: Enterprise,
Organization e Location. .
La Portlet di tipo Enterprise ha il livello più alto di funzioni amministrative ed ha
accesso alle altre due Portlet amministrative e a quelle degli utenti.
La Portlet Organization può accedere, oltre che alle proprie informazioni, anche a tutte
quelle delle Location e degli utenti che appartengono ad essa.
Esposito Paolo 566/2008
Pagina 8 di 148
La Portlet Location, di conseguenza, accede alle proprie informazioni e a quelle dei
propri utenti.
Organization e Location rappresentano una gerarchia societaria. Organization
rappresenta la corporazione padre e può avere un qualunque numero di Location che
rappresentano invece le corporazioni figlie. Un utente può appartenere solo ad una
singola Organization e Location.
Gli utenti invece (Users) sono agglomerati in gruppi e assegnati, dagli amministratori,
in base ai permessi e ruoli. Un utente può appartenere ad un qualunque numero di
gruppi.
figura 2 : Vista della schermata Location
Come si vede dalla figura 1, le varie tipologie sono organizzate in tab. Per ognuna di
esse è possibile cercare oppure aggiungere. Cercare per esempio tutte le Location che
appartengono ad una determinata Organization, oppure aggiungere una Location
inserendo le informazioni necessarie.
Esposito Paolo 566/2008
Pagina 9 di 148
1.3. Permessi e sicurezza
Liferay ha un modello di sicurezza che include un sistema di permessi granulare che da agli
amministratori il pieno controllo sugli accessi e privilegi sulle Portlet ed oggetti all'interno del
portale.
Per comprendere questo modello di sicurezza è necessario prima capire tutte le entità
che lo compongono.
Risorsa è un termine generico per qualunque oggetto rappresentato in un portale.
Risorse sono, per esempio, Portlet, classi Java e File.
Le risorse possono avere una delle tre seguenti competenze: Enterprise, Community e
Individual.
Enterprise racchiude tutti gli oggetti all'interno del portale.
I permessi possono essere definiti come azioni da compiere su una risorsa.
Con i permessi di visualizzazione, per esempio, un utente può leggere qualunque topic.
Se i permessi sono assegnati ad una Community, Organization o Location, allora tutti
gli utenti che sono membri di questa entità riceveranno questi permessi.
Un ruolo è una collezione di permessi. Non ha nessuna altra utilità o scopo se non
quello di contenere i permessi a lui assegnati. Un ruolo può essere assegnato anche ad
una delle entità sopra descritte. In questo modo, tutti gli utenti che fanno parte di quei
gruppi, riceveranno i permessi di quel ruolo.
Un utente, in generale, è una persona che esegue operazioni sul portale. A seconda di
Esposito Paolo 566/2008
Pagina 10 di 148
quali saranno i privilegi e i ruoli a lui assegnati, avrà o non avrà i permessi per
eseguire determinate operazioni.
Prima di effettuare il login sul portale, l'utente è considerato un ospite (Guest) e in
quanto tale avrà il proprio set di permessi di default per gli oggetti del portale.
Solamente una volta autenticato sarà riconosciuto come un utente registrato. Un utente
registrato quindi, riassumendo quanto detto sopra, può ricevere i permessi nel seguente
modi:
•
Permessi direttamente assegnati all'utente
•
Permessi assegnati alla Community di appartenenza dell'utente
•
Permessi assegnati alla Organization alla quale l'utente appartiene
•
Permessi assegnati alla Location dell'utente
•
Permessi appartenenti al ruolo assegnato all'utente
•
Permessi di appartenenza al ruolo della Community dell'utente
•
Permessi di appartenenza al ruolo della Organization dell'utente
•
Permessi di appartenenza al ruolo della Location dell'utente
Esposito Paolo 566/2008
Pagina 11 di 148
figura 3 : Schermata dei ruoli con le azioni associate
2. Panoramica sull'applicazione NAGIOS
NAGIOS è una applicazione open source per il monitoraggio delle reti locali.
Un sistema di monitoraggio si occupa di controllare risorse delle macchine (carico
della CPU, memoria utilizzata, numero di processi attivi, ect.), e la disponibilità dei
servizi che i server offrono.
NAGIOS è l'acronimo di Notice Any Glitches In Our System, cioè notifica qualsiasi
malfunzionamento nel nostro sistema. Tra le varie funzionalità infatti c'è anche la
possibilità di abilitare le notifiche che ci saranno inviate, tramite email o sms, nel caso
si presenti un problema.
Sul mercato sono presenti altre soluzioni per il controllo dei sistemi.
La HP (Hewlett Packard) per esempio, distribuisce OpenView. OpenView è un
programma modulare che, grazie alla sua modularità, permette di caricare solo il
modulo relativo a quello che si vuole controllare, senza quindi appesantire troppo il
sistema.
Esposito Paolo 566/2008
Pagina 12 di 148
Un'altra alternativa è il Tivoli-netview della IBM che ha funzionalità dello stesso
livello di OpenView.
Entrambi però hanno un costo molto alto e presentano alcuni lati negativo. Openview
per esempio non dispone di una interfaccia web e può visionare lo stato dei sistemi
solo dal pc sul quale è installato.
Nonostante siano programmi più che buoni, considerando anche il costo, si preferisce
l'alternativa open source.
2.1. Caratteristiche e requisiti
NAGIOS è un demone, un programma sempre attivo eseguito in background e
residente in memoria. Nei file di configurazione sono specificate le modalità di
controllo e, in caso di malfunzionamenti, invia le notifiche a tutti gli utenti interessati.
NAGIOS si serve dei plugin per effettuare le interrogazioni ai servizi. Questi plugin
altro non sono che programmi i quali, una volta lanciati, interrogano i servizi e
restituiscono uno status e un output.
L'interfaccia web mette a disposizione una elevata quantità di dettagli mostrando lo
stato di tutti i servizi e tutto quello che è stato deciso debba essere controllato.
I requisiti necessari per la compilazione e il funzionamento di NAGIOS sono:
•
Un compilatore C utilizzato per la compilazione del programma e di tutti i
plugin relativi.
•
Una macchina che funga da web server che venga configurata affinché
Esposito Paolo 566/2008
Pagina 13 di 148
visualizzi l'interfaccia web. Deve supportare la tecnologia standard CGI usata
per interfacciarsi con applicazioni esterne.
•
La Graphics Library GD necessaria per generare, nell'interfaccia web, grafici e
disegni.
•
In ogni caso, al momento della configurazione di NAGIOS, qualunque requisito
manchi viene segnalato.
2.2. Installazione automatica
L'installazione di NAGIOS può essere fatta in due modi: Automatica e Manuale. Ho
eseguito entrambe le installazioni, la prima per il sistema definitivo sul server e la
seconda inizialmente come sistema di prova su una macchina locale.
Il primo modo, che è anche quello più semplice per chi voglia installare rapidamente
un sistema di monitoraggio completo di tool di configurazione, consiste
nell'installazione tramite FAN (Fully Automated NAGIOS).
Questa installazione è completamente automatica e si può completare in pochi
semplici passi.
Per prima cosa recarsi all'indirizzo:
http://fannagioscd.sourceforge.net/drupal/?q=node/11 .
Esposito Paolo 566/2008
Pagina 14 di 148
Da questa pagina è possibile scaricare la iso dell'ultima versione di FAN, attualmente
la FAN 2.0. La iso successivamente deve essere masterizzata su un cd.
L'installazione dal cd è guidata e necessita di risposte ad alcune domande.
Completata la procedura di installazione, si può accedere all'interfaccia di FAN tramite
un browser web, inserendo l'indirizzo IP della macchina.
Nel nostro caso, si può accedere alla pagina visualizzata nella figura 4, dall'indirizzo:
http://tier2-nagios.na.infn.it/
Da questa interfaccia sono raggiungibili i vari tool di configurazione, come si può
osservare appunto dalla figura.
figura 4 : Schermata principale di FAN
Esposito Paolo 566/2008
Pagina 15 di 148
2.3. Installazione manuale
L'altro modo per installare NAGIOS è la procedura manuale.
A questo proposito è necessario scaricare, dal sito ufficiale www.nagios.org, i file
sorgenti. I file che ci interessano sono il “Nagios Core” e il “Nagios Plugins”.
L'ultima versione di questi file è rispettivamente: nagios-3.2.3.tar.gz e nagios-plugins1.4.15.tar.gz.
Prima di iniziare l'installazione è necessario creare un nuovo utente il quale avvierà il
demone. Quello di default è “nagios”, ma è possibile cambiarlo in fase di
compilazione:
# adduser nagios
Una volta scaricati i file, estrarre il primo:
# tar -xzvf nagios-3.2.3.tar.gz
Supponiamo che il file sia stato estratto nella directory “/usr/local”, in questa viene
creata una directory, di nome nagios-3.2.3, nella quale è contenuto il programma.
Entrando in questa directory si può iniziare l'installazione.
Il primo comando da lanciare è “./configure” .
Questo comando è seguito da una serie di parametri. Non specificando alcun
parametro vengono utilizzati quelli di default. Nell'esempio seguente vengono
specificati proprio i parametri di default, unicamente per far capire come
personalizzare ulteriormente la propria installazione:
# ./configure --prefix=/usr/local/nagios --with-cgiurl=/nagios/cgi-bin --withEsposito Paolo 566/2008
Pagina 16 di 148
htmurl=/nagios/ --with- nagios-user=nagios –with-nagios-grp=nagios
Questa configurazione potrebbe non andare a buon fine nel caso mancassero
determinati pacchetti necessari all'installazione. In tal caso un messaggio di errore
indica quali pacchetti mancano, quindi installare questi pacchetti ed eseguire
nuovamente il comando.
Completata la configurazione dell'installazione, si può procedere con la compilazione,
seguita dall'installazione del programma:
# make all
# make install
Si procede poi con l'installazione dello script init, necessario per avviare
automaticamente il programma durante il boot del sistema e controllarne il corretto
funzionamento. In pratica controlla le operazioni di start, stop, restart e reload del
servizio.
# make install-init
Per completare l'installazione, installare i file di esempio utili per orientarsi durante la
prima configurazione:
# make install-config
Installiamo ora i plugin scaricati con l'altro file.
# tar -xzvf nagios-plugins-1.4.15.tar.gz
Esposito Paolo 566/2008
Pagina 17 di 148
Spostarsi nella cartella creata e far partire la configurazione dell'installazione.
# ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagiosgroup=nagios
# make all
# make install
A questo punto l'installazione può dirsi terminata e la directory /user/local/nagios/ ha il
seguente contenuto:
bin etc libexec sbin share var
Di seguito una breve descrizione del contenuto di queste cartelle:
•
bin: contiene il file eseguibile nagios
•
etc: i file di esempio e i file effettivi di configurazione
•
libexec: i file eseguibili dei plugin
•
sbin: gli script CGI per l'interfacia web
•
share: le pagine web statiche e la documentazione
•
var: le informazioni di esecuzione di nagios
Ultimata l'installazione non resta che la configurazione
2.4. Configurazione di NAGIOS
La configurazione di NAGIOS è un processo molto importante in quanto permette di
personalizzarlo tenendo conto di tutte le necessità.
Esposito Paolo 566/2008
Pagina 18 di 148
Proprio per questo motivo la configurazione non è un processo standard, ma varia a
seconda di quello che si vuole monitorare.
L'esempio seguente prende in considerazione il monitoraggio dello stato di una sola
risorsa, la macchina “local_pc”.
Per tutti i file di configurazione si può ovviamente prendere spunto dai file di esempio
precedentemente installati.
Prendere quindi il file hosts.cfg-sample e crearne uno uguale di nome hosts.cfg.
In questo file vengono specificate le informazioni di tutti gli host che devono essere
monitorati.
Il contenuto del file è il seguente:
figura 5 : Contenuto del file hosts.cfg
La definizione è abbastanza intuitiva in quanto ogni parametro è auto-esplicativo. Il
parametro più importante è “address”, cioè l'indirizzo della macchina. Può essere sia
un indirizzo locale che un indirizzo esterno.
Esposito Paolo 566/2008
Pagina 19 di 148
Il file hostgroups.cfg definisce invece i gruppi di host e il gruppo di contatto che sarà
allertato in caso di malfunzionamento.
figura 6 : Contenuto del file hostgroups.cfg
I contatti di riferimento invece sono organizzati in gruppi nel file contactgroups.cfg,
come è visibile in figura 7.
figura 7 : Contenuto del file contactgroups.cfg
I dettagli relativi ai contatti invece sono definiti nel file contact.cfg
Esposito Paolo 566/2008
Pagina 20 di 148
figura 8 : Contenuto del file contact.cfg
L'ultimo file di configurazione rimasto è quello relativo ai servizi “service.cfg”. Anche
in questo caso è presente un template definito come “generic-service” che va
obbligatoriamente incluso in testa al file.
Sotto a questa definizione vengono inserite le dichiarazioni dei servizi che si vogliono
monitorare.
Nella figura 9 si può vedere la definizione del servizio ping.
Osservando la dichiarazione del servizio si può capire come possa può capire come
possa essere regolato qualsiasi dettaglio, come il periodo di tempo (la cui definizione è
indicata nel file time.periods.cfg) di ventiquattro ore per sette giorni a settimana, il
numero massimo di tentativi prima di inviare la segnalazione di malfunzionamento,
dove inviare la notifica, ect.
Il parametro che indica il comando che viene eseguito per effettuare il controllo è
check_command, dove viene specificato il nome del plugin da utilizzare.
Nella figura 9 si può vedere anche come passare dei parametri al plugin, utilizzando il
punto esclamativo.
Esposito Paolo 566/2008
Pagina 21 di 148
figura 9 : Contenuto del file service.cfg
Come inserire nuovi plugin è spiegato nei capitoli successivi dove si parlerà dell'addon
NRPE e dei suoi plugin.
Il file dove sono indicate le opzioni per la gestione dei CGI, per l'utilizzo
dell'interfaccia web, è cgi.cfg.
I CGI sono una serie di programmi che NAGIOS utilizza per visualizzare nelle pagine
web le più svariate informazioni. Questi si trovano nella sottodirectory sbin.
In questo file vengono abilitate le linee relative ai permessi d'accesso.
Può essere utile definire, per esempio, l'utente che potrà accedere alla consultazione di
tutte le informazioni di NAGIOS, tramite browser.
In questo caso si deve specificare l'utente alla riga:
authorized_for_system_information =
Esposito Paolo 566/2008
Pagina 22 di 148
Tra i file rimanenti dependencies.cfg che contiene le dipendenze dei servizi al suo
interno. Si deve indicare, per esempio, che il sito non può funzionare senza
l'esecuzione del web server.
Un altro file è escalations.cfg nel quale vengono definite il numero totale di volte in
cui una notifica deve essere segnalata.
Altri file di configurazione verranno spiegati più avanti, quando si parlerà di NRPE.
Per ultimare la fase di installazione bisogna configurare il Server Web
2.5. Configurazione di Apache
Prima di avviare il programma è necessario predisporre il nostro Server Web Apache,
per il funzionamento di NAGIOS. Quindi nel file httpd.cfg devono essere aggiunge le
righe mostrate in figura 10:
Esposito Paolo 566/2008
Pagina 23 di 148
figura 10 : Contenuto del file httpd.cfg
In questo modo vengono dichiarate e protette le directory di NAGIOS.
Il discorso autenticazione si completa con la creazione del file “.htaccess ” nella
cartella cgi, con il contenuti mostrato in figura 11:
figura 11 : Contenuto del file .htaccess
Così facendo, la consultazione dei dati relativi allo stato dei servizi, è protetta.
Accedendo quindi alla pagina di Nagios, viene richiesta l'autenticazione con il nome
utente e password.
Esposito Paolo 566/2008
Pagina 24 di 148
Con il comando htpasswd si crea il file htpasswd.users che indica ad apache dove sono
inclusi i dati di accesso. Il comando è il seguente:
# htpasswd -c /usr/local/nagios/etc/ htpasswd.users local_user_1
Il file così viene creato e viene chiesto di inserire la password per l'utente specificato.
L'opzione -c serve per creare il file, quindi nel caso si vogliano aggiungere altri utenti
si potrà anche omettere.
La fase di configurazione è completata. Per avviare il demone di NAGIOS si deve
andare nella cartella /etc/xinetd/ e lanciare il seguente comando:
# nagios start
La maggior parte delle operazioni descritte sopra sono automatizzate utilizzando FAN.
Come verrà spiegato più avanti, nel capitolo riguardante Centreon, tutta la fase di
aggiunta di host, host group e servizi, così come fermare, avviare, riavviare e ricaricare
NAGIOS, può essere gestita tramite l'interfaccia di Centreon.
2.6. Interfaccia Web
In questo capitolo viene descritta l'interfaccia di NAGIOS e vengono spiegate tutte le
sue funzionalità accessibili dal suo menù.
Nella figura seguente si può vedere l'interfaccia di Nagios, in particolare il suo menù,
Esposito Paolo 566/2008
Pagina 25 di 148
alla quale si accede dall'indirizzo http://tier2-nagios.na.infn.it/nagios/.
figura 12 : Menu di Nagios
Nella seguente lista invece vengono elencate e descritte le varie voci del menù con le
rispettive funzionalità:
•
Tactical Overview
Per monitorare tutte le attività di monitoraggio della rete. Permette di vedere
rapidamente le interruzioni della rete, lo stato degli host e dei servizi
distinguendo tra i problemi che sono stati gestiti in qualche modo e quelli
invece che non sono stati gestiti e richiedono un intervento.
•
Nagvis Overview
Collegamento a Nagvis
•
NaReTo Overview
Esposito Paolo 566/2008
Pagina 26 di 148
Collegamento a NaReTo
•
Service Detail
Visualizza una lista dove sono mostrati tutti i servizi e i relativi dettagli sul loro
stato.
•
Host Detail
Visualizza una lista dove sono mostrati tutti gli host e i relativi dettagli sul loro
stato.
•
Hostname
È un form di ricerca che permette di ricercare un determinato host. La ricerca
mostra tutti i servizi sul host cercato.
•
Host Group
Visualizza un sommario di tutti gli host group con il sommario sullo stato dei
relativi host e servizi.
•
Service Group
•
Status Map
Per visualizzare una mappa creata automaticamente di tutti gli host che sono
stati definiti sulla rete.
•
Service Problems
Per visualizzare una lista di tutti i problemi relativi ai servizi, per ogni host. È
possibile visualizzare tutti i problemi oppure solo quelli non gestiti e risolti.
•
Host Problems
Per visualizzare una lista di tutti gli host che hanno problemi. Così come i
Service Problem, anche qui si possono visualizzare tutti gli host che hanno
problemi oppure solo quelli che hanno problemi che non sono stati risolti.
•
Comments
Permette di inserire, quindi anche di visualizzare, commenti relativi ad un
determinato host o servizio.
•
Downtime
Esposito Paolo 566/2008
Pagina 27 di 148
Visualizza, nel caso ce ne siano, gli host o i servizi che attendono di essere
schedulati.
•
Trends
Per visualizzare un grafico, creato automaticamente, sullo stato di host e servizi
su un prefissato periodo di tempo.
•
Availability
Per visualizzare la disponibilità di determinati host e servizi in un determinato
periodo di tempo, il tutto tramite parametri specificati dall'utente.
•
Alerts
Per visualizzare la cronologia dei problemi, per uno specifico host oppure per
tutti gli host. Si può anche filtrare le informazioni visualizzando solamente un
determinato tipo di problema.
•
Notifications
Per visualizzare le notifiche degli host e dei servizi che sono state mandate ai
contatti designati. Così come per la cronologia dei problemi, anche qui si può
filtrare le informazioni visualizzando solamente un determinato tipo di notifica.
•
Event Log
Mosta semplicemente il log file.
•
Performance
Visualizza statistiche relative agli host e servizi controllati in determinati
intervalli di tempo.
•
View Config
Visualizza qualsiasi file di configurazione scelto dall'utente.
3. L'addon NRPE
I servizi standard di una macchina possono essere controllati da remoto tramite
Esposito Paolo 566/2008
Pagina 28 di 148
l'interrogazione delle porte TCP. Allo stesso modo però non possono essere controllate
le risorse locali quali caricamento cpu, uso memoria, capienza del disco, processi in
esecuzione o numero di utenti collegati.
NRPE è stato progettato proprio per risolvere questo problema e permettere
l'esecuzione di NAGIOS su macchine remote linux.
E' possibile eseguire il NAGIOS plugin, su macchine remote linux, attraverso SSH.
C'è infatti un plugin chiamato check_by_ssh che permette di fare tutto questo.
Usare SSH è più sicuro che usare l'addon NRPE ma comporta un maggiore overhead
sia sulla macchina di monitoraggio che su quella remota.
Questo può diventare un problema quando si inizia a monitorare centinaia o migliaia
di macchine. Proprio per questo motivo molti preferiscono utilizzare l'addon NRPE
3.1. Nagios Remote Plugin Executor
L'addon di NRPE consiste di 2 componenti:
•
Il plugin check_nrpe, sulla macchina adibita al monitoraggio. Dove quindi è
presente NAGIOS.
•
Il demone nrpe che gira sulla macchina remota linux, dove si vuole effettuare il
controllo.
Quando NAGIOS ha bisogno di monitorare una risorsa su una macchina remota, la
logica di funzionamento è la seguente:
•
NAGIOS esegue il plugin check_nrpe e gli comunica che servizio ha bisogno di
essere controllato passando come parametro il nome del plugin remoto che si
vuole lanciare e il nome della macchina remota.
•
il plugin check_nrpe contatta il demone NRPE, in ascolto su una determinata
Esposito Paolo 566/2008
Pagina 29 di 148
porta (di solito la porta 5666), sul host remoto in questione, eventualmente con
una connessione protetta SSL.
•
Il demone NRPE esegue il plugin locale appropriato per controllare il servizio o
la risorsa.
•
Il risultato dal controllo del servizio è restituito dal demone NRPE al plugin
check_nrpe che lo ritorna al processo NAGIOS.
figura 13 : Schema del collegamento tra il plugin check_nrpe e il demone NRPE
Il demone NRPE richiede quindi che il plugin NAGIOS sia installato sulla macchina
remota. Senza il demone non è in grado di monitorare niente.
L'uso più diffuso dell'addon NRPE è monitorare risorse locali o private su una
macchina remota linux come caricamento cpu, memoria usata, swap usata, utenti
correnti, dischi usati, stato dei processi, ect.
figura 14 : Utilizzo diretto del NRPE
Si può anche usare NRPE per controllare indirettamente servizi pubblici e risorse di un
Esposito Paolo 566/2008
Pagina 30 di 148
server remoto che non possono essere raggiungibili direttamente dal host di
monitoraggio.
Se un host remoto con il demone NRPE e i plugin può comunicare con un web server
remoto, ma la macchina di monitoraggio no, si può configurare il demone NRPE per
monitorare il web server remoto indirettamente.
figura 15 : Utilizzo indiretto del NRPE
Esposito Paolo 566/2008
Pagina 31 di 148
3.2. Tipologia dei Nodi della rete
Prima di iniziare a installare NRPE su tutte le macchine è necessario avere una visione
completa di come è strutturata la rete, in particolare il data center, e le tipologie di
macchine che lo compongono.
Il datacenter SCoPE è situato nei pressi del dipartimento di Biologia, non molto
lontano dalla Control Room. Tutti quanti gli apparati sono raccolti all'interno dei rack,
come è visibile nella seguente figura:
figura 16: Rack del centro di calcolo.
Diventa fondamentale quindi distinguere il tipo di macchina, quali sono i suoi compiti
e quali sue risorse ci interessa monitorare.
Più in avanti si avrà una visione globale, attraverso le mappe, di quali e quanti
Esposito Paolo 566/2008
Pagina 32 di 148
componenti sono contenuti all'interno di ogni rack. È importante però ora fare una
distinzione in base alla tipologia delle macchine.
Di seguito un elenco, con una descrizione riguardante l' utilizzo, di tutti gli apparati e
macchine presenti:
•
Worker Node: è un nodo che esegue i calcoli elaborando i dati contenuti
all'interno degli Storage Element. Tra le varie risorse che può essere utile
monitorare c'è la quantità di memoria libera, lo spazio sul disco o il carico della
CPU.
•
Storage Element: è un nodo che ha come compito principale la
memorizzazione e l'accesso ai dati, che devono essere elaborati dai Worker
Node. Le risorse che può essere utile monitorare sono le stesse dei Worker
Node.
•
Service Node: è un nodo che ha il compito di smistare i job che devono essere
eseguiti sui Worker Node. Fa parte di questa tipologia anche il Computing
Element, macchina che deve gestire le code e che quindi deve avere uno
scheduler e un gestore delle risorse. In questo caso, oltre alle solite risorse,
diventa fondamentale monitorare anche le code.
•
Switch: apparati adibiti alla gestione del traffico. Poiché il trasferimento dei
dati è un parametro fondamentale per gli switch può essere utile controllare il
traffico oppure da quanto tempo lo switch è up.
•
CMC (Central Management Console ): apparati presenti in tutti i rack che
hanno il compito di controllare informazioni quali la temperatura, temperatura
dell'acqua o la velocità delle ventole. Questi quindi sono informazioni che
vanno monitorate per questa tipologia.
•
UPS (Uninterruptible Power Supply ): sono dei gruppi di continuità che
entrano in funzione quando manca la corrente e assicurano una determinata
autonomia in questi casi. Oltre al tempo di autonomia può essere utile
Esposito Paolo 566/2008
Pagina 33 di 148
monitorare anche la carica.
Queste quindi sono le varie tipologie di apparati presenti nel centro di calcolo. È stato
descritto brevemente quali sono le risorse locali che può essere utile monitorare. Per
ogni risorsa è presente un relativo plugin (script) eseguibile localmente o da remoto.
In seguito si vedrà come utilizzare questi plugin, in particolare per il controllo remoto
delle risorse.
3.3. Installazione e configurazione del NRPE
Nel caso non siano stati installati ancora i plugin, si possono scaricare, conoscendo
l'indirizzo del file, direttamente con il comando wget:
# wget http://downloads.sourceforge.net/project/nagiosplug/nagiosplug/1.4.14/nagiosplugins-1.4.14.tar.gz?use_mirror=garr&29422187
Per procedere con l'installazione è necessario scaricare l'addon NRPE. Sia il plugin che
il demone si trovano in un unico pacchetto. Conoscendo già l'indirizzo del file da
scaricare, utilizziamo il comando wget per scaricarlo:
# wget http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.12/nrpe2.12.tar.gz?use_mirror=garr&62681991
Per estrarre i file ed entrare nella cartella:
# tar xzf nrpe-2.12.tar.gz
# cd nrpe-2.12
Configurare l'addon nrpe con il seguente comando:
# ./configure
La configurazione potrebbe non andare a buon fine ritornando il seguente messaggio
Esposito Paolo 566/2008
Pagina 34 di 148
di errore:
checking for SSL headers... configure: error: Cannot find ssl headers
Questo significa che non sono state trovate le librerie relative al SSL.
SSL è l'acronimo di Secure Sockets Layers, letteralmente Livello di Socket Sicuri, ed è
un protocollo che permette una comunicazione sicura su reti TCP.
Per ovviare a questa mancanza, ci sono due modi per procedere.
Il primo modo prevede di installare le librerie in questione e ricompilare:
# yum install libssl-dev
Il secondo modo prevede invece di continuare la configurazione disabilitando lo SSL.
Quindi eseguo di nuovo la configurazione senza SSL e compilo:
# ./configure –disable-ssl
# make all
Alla fine di questo processo viene visualizzato a video il messaggio visibile nella
figura 17:
Esposito Paolo 566/2008
Pagina 35 di 148
figura 17 : Messaggio dopo la compilazione
Queste sono fondamentalmente le istruzioni per proseguire. La procedura completa
verrà però descritta di seguito.
Installare alcuni plugin che utilizzerò per il test, il demone e file di esempio per la
configurazione demone:
# make install-plugin
# make install-daemon
# make install-daemon-config
Installare il demone nrpe come un servizio sotto xinetd
# make install-xinetd
XINETD sta per eXtended InterNET services Daemon, e ha preso il posto di INETD
per ragioni di sicurezza. INETDT è un demone che resta in ascolto sulle porte
specificate nel suo file di configurazione e si occupa di avviare il relativo servizio nel
momento in cui viene fatta una richiesta.
Viene chiamato super demone per la sua funzione di controllo di altri demoni.
I vantaggi nell'usarlo sono evidenti. In questo modo si ottimizzano le risorse del
sistema avviando un programma relativo ad un determinato servizio solo quando ci
sono effettive richieste.
Il file nel quale vengono assegnati i servizi alle relative porte è /etc/services, un file
utilizzato anche da altri programmi.
Per proseguire nella configurazione quindi è necessario aggiungere anche nrpe tra i
suoi servizi. Aprire quindi il file /etc/services e metterlo in ascolto sulla porta 5666
aggiungendo la seguente riga:
nrpe
5666/tcp
Esposito Paolo 566/2008
# NRPE
Pagina 36 di 148
Altro file di configurazione da modificare è il file /etc/xinetd.d/nrpe. Il contenuto del
file è mostrato nella figura 18.
figura 18 : Contenuto del file /etc/xinetd.d/nrpe
Di default questo file è disabilitato, quindi la voce disable è impostata a yes.
Per utilizzare però NRPE sotto xinetd è necessario abilitare questo file di
configurazione e impostare disable a no. Questa operazione va accompagnata con
quella fatta precedentemente aggiungendo la riga nel file /etc/services.
Nella figura 18 possiamo notare che alla voce only_from c'è indirizzo IP. In particolare
only_from indica gli indirizzi abilitati alla comunicazione con il demone. L'indirizzo
IP della figura 18 è quello del server di monitoraggio e quindi dovrà essere impostato
proprio come mostrato in figura.
Inizialmente però, per fare dei test in locale, mettiamo come indirizzo quello del
localhost, quindi 127.0.0.1:
only_from = 127.0.0.1
Riavviare il servizio xinetd per rendere valide le modifiche:
Esposito Paolo 566/2008
Pagina 37 di 148
# service xinetd restart
Per testare se il demone nrpe è stato installato e configurato con successo, possiamo
testarlo quindi prima in locale.
Possiamo, a questo scopo, utilizzare alcuni script di prova installati precedentemente.
Prima di tutto assicuriamoci che il demone stia girando sotto xinetd.
Utilizziamo netstat che ci permette di vedere lo stato delle connessioni sul computer,
con le opzioni “-at” che ci permettono rispettivamente di vedere anche lo stato dei
socket non attivi in quel momento e di prendere solo le connessioni tcp:
# netstat -at | grep nrpe
Con il grep prendiamo solo le righe dove compare nrpe.
L'output dovrebbe mostrare un nrpe in ascolto. Il risultato di questo comando dovrebbe
essere quello nella figura 19
figura 19 : Output del comando netstat -at | grep nrpe
Il secondo test che facciamo ci assicura che il demone nrpe funziona correttamente.
Utiliziamo sempre uno dei plugin installati precedentemente.
Spostiamoci nella cartella dove è istallato check_nrpe, che dovrebbe essere
/usr/local/nagios/libexec/ (in alternativa cercare in /usr/lib64/nagios/plugins o qualcosa
di simile) , e lanciamo lo script:
# ./check_nrpe -H localhost
Questo comando dovrebbe restituire la versione installata di nrpe:
NRPE v2.12
L'opzione -H serve per specificare il nome del host. Un'altra opzione del comando
Esposito Paolo 566/2008
Pagina 38 di 148
check_nrpe è -c che viene utilizzata per l'esecuzione di un plugin e verrà spiegata più
in avanti.
A questo punto si dovrebbe controllare se il firewall sulla macchina permette l'accesso
al demone nrpe ai servizi remoti.
Con il comando “iptables -L” vediamo l'attuale situazione del firewall.
Nel caso siano permessi tutti gli accessi, come in figura 20, si può proseguire,
altrimenti si deve creare una eccezione.
figura 20 : Output del comando iptables -L
Questa procedura di configurazione, compresi i passaggi per Xinetd, è stata adottata
sui Storage Element, Worker Node e Service Node. La correttezza della procedura è
assicurata dai 2 test che vengono eseguiti.
Ci sono state alcune complicazioni che hanno portato a delle varianti nella
configurazione.
La prima complicazione ha riguardato gli Storage Element per i quali alla voce
only_from, della figura 18, c'è stato bisogno di specificare un altro indirizzo.
L'indirizzo in questione è quello esterno di tier2-nagios.na.infn.it:
only_from = 90.147.67.9
L'ultimo file di configurazione rimasto è nrpe.cfg, dove sono definiti i vari comandi
per lanciare gli script di prova. Questo file verrà descritto nel prossimo capitolo,
riguardante la configurazione dei plugin.
Per concludere invece questo capitolo vediamo una panoramica sulle problematiche
che si possono presentare.
Esposito Paolo 566/2008
Pagina 39 di 148
3.4. Risoluzione dei problemi
Di seguito una serie di errori che possono essere ritornati dall'esecuzione del plugin
check_nrpe, con il relativo significato.
•
“CHECK_NRPE: Socket timeout after 10 seconds" or "Connection refused or
timed out":
Questo errore può indicare che il comando che è stato chiesto di lanciare al
demone NRPE ha preso più di 10 secondi per essere eseguito. Questa è la causa
più comune di questo errore. In questo caso si può utilizzare l'opzione -t dalla
linea di comando per specificare un tempo più lungo per il plugin check_nrpe.
L'esempio seguente incrementa incrementa il tempo portandolo a 30 secondi:
# check_nrpe -H localhost -c generic_command -t 30
Un'altra causa di questo problema può essere che il demone NRPE non sia
installato o non stia girando sulla macchina remota. Bisogna quindi verificare
che il demone stia girando, come un demone indipendente oppure come sotto
inetd/xinetd. Si può controllare con i seguenti comandi:
# ps axuw | grep nrpe
# netstat -at | grep nrpe
L'ultima causa di questo problema può essere il firewall che blocca la
comunicazione tra il server di monitoraggio, dove è stato lanciato il plugin
check_nrpe, e la macchina remota sulla quale gira il demone NRPE.
In questo caso di devono verificare le regole del firewall, come detto già
precedentemente utilizzando il comando iptables, e controllare che non ci sia un
firewall fisicamente posizionato tra le due macchine.
•
"CHECK_NRPE: Received 0 bytes from daemon. Check the remote server logs
for an error message." :
La prima cosa che si dovrebbe controllare, come suggerisce il messaggio
Esposito Paolo 566/2008
Pagina 40 di 148
dell'errore, è il log del server remoto. Il messaggio del log dovrebbe dare
qualche indicazione a riguardo. Controllare la versione del OpenSSL su
entrambe le macchine. Se si sta usando una versione commerciale di SSL sul
host remoto, ci potrebbero essere problemi di compatibilità.
•
"NRPE: Unable to read output":
Questo errore indica che il comando lanciato dal demone NRPE non ha
ritornato nessun carattere in output. Questo può significare che la definizione
del comando, nel relativo file, è incorretta oppure che il plugin cui fa
riferimento il comando è mal funzionante. In questo caso si deve lanciare il
plugin direttamente da linea di comando, senza il check_nrpe, per controllarne
il funzionamento.
•
CHECK_NRPE: Error - Could not complete SSL handshake
Questo errore indica che non si riesce a stabilire la connessione tra le due
macchine. Questo problema dipende dalla macchina remota con il demone in
ascolto. Può capitare che la macchina funzioni in determinati momenti e in altri
momenti no, in particolare quando il carico della CPU tocca soglie elevate.
Questa eventualità si verifica lì dove NRPE gira in modalità standalone e non
sotto Xinedt.
•
"NRPE: Command 'x' not defined":
Questo errore significa che non è stato definito il comando x nel file di
configurazione sul host remoto. Corretto il comando, è necessario, in caso il
demone stia girando indipendentemente e non sotto inetd o xinetd, riavviare il
servizio.
•
"NRPE: Command timed out after x seconds":
Questo errore indica che il comando che è stato lanciato dal demone NRPE non
ha finito la sua esecuzione nei tempi specificati. Si può incrementare questo
tempo nel file di configurazione, dove sono definiti i comandi, modificando il
valore della variabile command_timeout. Così come nel caso precedente è
necessario riavviare il servizio per rendere attiva questa modifica.
Esposito Paolo 566/2008
Pagina 41 di 148
Nel caso ci siano altri problemi può essere utile attivare il debug. Nel file di
configurazione modificare il valore del parametro debug portandolo ad 1 e riavviare il
servizio. Eseguendo di nuovo il plugin check_nrpe si dovrebbero avere delle
informazioni di debuggin, nel file di log, sulla macchia remota. Leggendo attentamente
il file di log si dovrebbero trovare degli indizi su dove persiste il problema.
I file di log di Nagios si trovano nella cartella /usr/local/nagios/var suddivisi in
differenti file. Il più importante è sicuramente “nagios.log” nel quale sono salvati tutti i
log in generale. Questo file viene salvato, ogni giorno, con la data corrispondente nella
sottodirectory archives. Così facendo si possono consultare i vecchi log, suddivisi per
data, e controllare eventualmente la causa di qualche malfunzionamento. In questo file
di log sono visualizzabili tutti i risultati dei controlli che vengono ritornati al server di
monitoraggio e tutte le informazioni sui malfunzionamenti.
Altri file di configurazione sono comment.log, downtime.log, status.sav e nagios.lock.
Comment.log contiene tutti commenti generati automaticamente da Nagios o che sono
stati scritti da un utente per descrivere un determinato malfunzionamento che si è
presentato su un host o un servizio.
Downtime.log contiene i periodi nei quali il monitoraggio di un determinato servizio o
host è stato sospeso con la relativa motivazione. Si può voler sospendere un servizio
che presenta un malfunzionamento per un determinato periodo in modo da evitare che
venga ripetutamente notificato.
Status.sav contiene lo stato che hanno gli host prima di terminare un determinato
processo.
Nagios.lock utilizzato quando Nagios, avendo molti servizi da monitorare, tende a
creare molti processi figli, quindi è necessario memorizzare l'id del processo padre.
Esposito Paolo 566/2008
Pagina 42 di 148
Questo file viene utilizzato anche quando si intende arrestare l'esecuzione di nagions e
quindi fermare il processo padre e tutti i suoi processi figlio.
4. Configurazione dei plugin
Nei precedenti capitoli sono stati installati il nucleo del programma di monitoraggio
NAGIOS e il suo addon NRPE per l'esecuzione remota del plugin. È stato installato
anche il pacchetto nagios-plugins che, come si intuisce dal nome del pacchetto,
contiene una collezione di plugin che possono essere utilizzati per il monitoraggio.
Di solito i plugin sono posizionati nella cartella omonima nella diretcory di
installazione di NAGIOS. Altre volte può capitare che, con una installazione
differente, siano posizionati invece nella cartella libexec.
Importante è non trascurare il percorso di questa directory, che potrebbe essere causa
del l'errore "NRPE: Unable to read output" in quanto, con un percorso errato, non
verrebbe trovato il plugin e l'esecuzione del plugin check_nrpe non produrrebbe alcun
output con conseguente errore.
Precedentemente è stato già accennato l'utilizzo del plugin check_nrpe. Questo plugin
è eseguito sul server di monitoraggio e richiede diverse opzioni. L'uso del plugin a
linea di comando è nel seguente formato:
# check_nrpe -H <host> [-n] [-u] [-p <port>] [-t <timeout>] [-c <command>] [-a
<arglist...>]
Le opzioni racchiuse tra parentesi quadre sono obbligatorie. Di seguito una breve
descrizione di quello che queste opzioni specificano:
•
-H: Indirizzo dell'host sul quale gira il demone NRPE.
•
-n: Non usare SSL
•
-u: Per far ritornare lo stato Unknown invece che Critical, quando scade il
tempo di attesa per il socket.
Esposito Paolo 566/2008
Pagina 43 di 148
•
-p: La porta sulla quale il demone sta girando. Per specificarne una diversa da
quella 5666 di default.
•
-t: Numero di secondi prima che il tempo della connessione scada. In questo
modo si specifica un valore diverso da quello standard di 10 secondi.
•
-c: Il nome del comando che il server remoto deve lanciare.
•
-a: Lista di argomenti che vengono passati al plugin specificato dal comando.
L'opzione -c è quella più importante in quanto specifica indirettamente il plugin che
deve essere eseguito. Per ogni plugin che voglia essere eseguito, sulla macchina
remota, si deve creare un comando nel file di configurazione.
Il file di configurazione nel quale vengono specificati questi comandi, nelle ultime
versioni di nagios, prende il nome di nrpe.cfg. Nelle versioni precedenti invece si
chiamava command.cfg.
Questo file si trova, a meno che non sia stato specificato un percorso diverso in fase di
installazione, nella cartella /ect/nagios. La definizione di un comando ha il formato
seguente:
command[<command_name>]=<command_line>
Quando il demone riceve la richiesta di ritornare il risultato di “command_name”,
eseguirà il comando specificato con la “command_line”. Questa richiesta fatta al
demone è proprio l'opzione -c seguita dal nome del comando, cioè il “command”.
4.1. Contenuto del file nrpe.cfg
Il file nrpe.cfg è un file di configurazione campione per il demone NRPE, quindi ha
bisogno di essere posizionato sul host remoto nel quale gira il demone e non sul host
da quale il client check_nrpe è stato eseguito.
Di seguito viene mostrato il contenuto del file, descritto riga per riga:
Esposito Paolo 566/2008
Pagina 44 di 148
log_facility=daemon
#Specifica il servizio che si occupa dei messaggi di log al
momento dell'autenticazione. La facility di default è daemon, cioè il demone syslogd.
pid_file=/var/run/nrpe.pid
#Il nome del file nel quale il demone NRPE scrive il
suo numero ID del suo processo. Il file è scritto solo se il demone è avviato dall'utente
root e in modalità indipendente. Quindi non viene creato alcun file in quanto il demone
gira come servizio sotto xinetd.
server_port=5666
#Porta sulla quale il demone aspetta per le connessioni.
server_address=172.16.20.148
#Questo indirizzo è utile per specificare una
particolare interfaccia, nel caso ce ne siano diverse, per il bind, assegnando questo
indirizzo alla socket.
nrpe_user=nagios
nrpe_group=nagios
#Queste due voci determinano rispettivamente
l'utente e il gruppo con cui dovrebbe girare il demone. Si può specificare un nome
utente (nome di un gruppo nel secondo caso) oppure un ID (GID)
allowed_hosts=127.0.0.1
#Questa è una opzionale lista di indirizzi IP (oppure
hostname), separati da una virgola, che indica quali host sono abilitati a comunicare
con il demone. Questo fa solo un controllo elementare sull'indirizzo IP del client.
Quindi è altamente consigliato, nel caso si voglia limitare la comunicazione a
determinati host, utilizzare il file /etc/hosts.allow per specificare gli host abilitati alla
connessione sulla porta sulla quale sta girando il demone.
Tutta le opzioni presenti fino a questo punto del file sono ignorate nel caso il demone
giri sotto xinetd. Quindi vengono specificate in un altro file, cioè il file nrpe nella
directory /etc/xinetd.d/, che verrà visto dettagliatamente in seguito.
dont_blame_nrpe=0
#Questa opzione determina se permettere o meno ai
client di specificare gli argomenti dei comandi che stanno eseguendo. Questa opzione
Esposito Paolo 566/2008
Pagina 45 di 148
è disabilitata di default ovviamente per questioni di sicurezza. Questa opzione, per
funzionare, necessita anche che, in fase di configurazione, sia con la seguente opzione:
--enable-command-args
Un'altra opzione disabilitata di default per questione di sicurezza è la seguente:
command_prefix=/usr/bin/sudo
#Questa opzione permette di inserire come prefisso a
tutti i comandi una stringa inserita dall'utente. Uno spazio è automaticamente aggiunto
tra la stringa specificata come prefisso e la linea di comando definita.
L'esempio specificato (/usr/bin/sudo) è solo un possibile scenario d'uso. In questo
modo si restringe l'esecuzione dei comandi con l'utilizzo di sudo. Per far questo è
necessario aggiungere l'utente nagios nel file /etc/sudoers. Per esempio si potrebbe
aggiungere questa riga, per permettere l'esecuzione dei plugin in quella cartella:
nagios
ALL=(ALL) NOPASSWD: /usr/lib/nagios/plugins/
Questo fa in modo che gli utenti nagios possano lanciare tutti e soli i comandi di quella
directory senza password. Ovviamente non si deve assolutamente dare agli utenti
generici i permessi di scrittura su questa directory o ai suoi contenuti.
debug=0
#con questa opzione si possono aggiungere anche i messaggi di debug ai
log di sistema. Utile nel caso sia presente un malfunzionamento e si voglia qualche
informazione in più sulla causa.
command_timeout=60
#questa specifica il massimo numero di secondi
consentito ai plugin per finire la loro esecuzione. Dopo il tempo specificato il demone
ucciderà il processo.
connection_timeout=300
#questa specifica il massimo numero di secondi che
il demone aspetterà per una connessione che si sta stabilendo, prima di uscire. Spesso
viene visto come un problema di rete che ferma la SSL prima che sia stabilita
nonostante tutte le sessioni di rete siano connesse. Questo causa un accumulo che può
consumare le risorse del sistema, quindi si consiglia di non mettere valori troppo bassi.
allow_weak_random_seed=1
Esposito Paolo 566/2008
#questa direttiva, disabilitata di default, permette di
Pagina 46 di 148
usare SSL anche se non sono presenti i file /dev/random e /dev/urandom, file speciali
utilizzati per la generazione casuale di numeri. La generazione di numeri casuali viene
fata da un file il quale è un puntatore alla variabile d'ambiente $RANDFILE
oppure $HOME/.rnd. Se nessuna delle due esiste viene messo uno pseudo numero e un
segnale di warning viene inviato.
include=<somefile.cfg>
# questa opzione, disabilitata per default, permettere di
includere le definizioni da un file di configurazione esterno.
include_dir=<somedirectory>
#questa direttiva permette di includere file di
configurazione da una o più directory ricorsivamente.
Il resto del file consiste nella parte più importante per il funzionamento dei plugin,
cioè la definizione dei comandi che il demone lancerà.
La definizione è scritta nel formato seguente:
command[<command_name>]=<command_line>
La linea di comando per ogni plugin utilizzato verrà mostrata e descritta nel successivo
capitolo.
Come si è visto, molte delle opzioni del file nrpe.cfg sono ignorate in quanto l'addon
nrpe è stato configurato in modo da girare sotto il demone xinetd.
In questo caso è necessario dare uno sguardo al contenuto del file (figura 16). Come si
può intuire molte delle opzioni che troviamo qui sono le stesse del file nrpe.cfg, le
stesse opzioni che in quel file vengono ignorate.
Di default questo file è disabilitato, quindi per abilitarlo si deve settare la relativa voce
a yes. La voce only_from indica l'indirizzo del server di monitoraggio.
Il servizio, come possiamo notare dalla prima voce, prende il nome di nrpe, stesso
nome che è stato dato al servizio nel file etc/services.
Esposito Paolo 566/2008
Pagina 47 di 148
Si è visto come avviare NRPE sotto il demone xinetd. Nel caso si voglia invece
avviarlo in modalità standalone è sufficiente andare nella sottocartella sbin ed eseguire
il seguente comando:
# nrpe – c /etc/nagios/nrpe.cfg -d
Per avviarlo automaticamente al boot del sistema invece, si devono aggiungere le
seguenti righe nel file /etc/rc.local:
if [ -x /usr/local/nagios/sbin/nrpe ]; then
echo -n ' nrpe'
/usr/local/nagios/sbin/nrpe -c /etc/nagios/nrpe.cfg -d
fi
4.2. Descrizione dei plugin
Nel precedente capitolo è stata vista la forma della definizione di un comando.
Se per esempio i plugin stessero nella cartella /usr/lib64/nagios/plugins/ la linea di un
comando avrebbe la seguente definizione:
command[nome_comando_plugin]=/usr/lib64/nagios/plugins/script
I vari plugin utilizzati, quelli che nella linea di comando precedente sono stati
generalizzati con il nome script, sono da distinguere in 2 tipologie.
La prima tipologia è composta dai plugin base di NAGIOS, quelli cioè scaricati e
scompattati precedentemente. La seconda tipologia invece comprende tutti gli script
esterni, creati da terzi. Molti di questi sono fatti dal gruppo ATLASItalia e sono
scaricabili dal relativo sito web.
Esposito Paolo 566/2008
Pagina 48 di 148
Non tutti i plugin base installati con NAGIOS sono stati utilizzati in questo lavoro. Per
completezza però vengono ugualmente spiegati nel caso si debba utilizzarli. Di seguito
vengono descritti brevemente tutti quelli di base, per maggiori informazioni si può
consultare il man. I plugin effettivamente utilizzati invece verranno spiegati
dettagliatamente nel prossimo capitolo.
I plugin vengono scritti nella forma “/nome_plugin”, cioè come compaiono nel file
nrpe.cfg nella definizione dei comandi (dopo il relativo percorso). Gli stessi plugin
possono ovviamente essere eseguiti da linea di comando come eseguibili, quindi nella
forma: “./nome_plugin”.
•
/check_apt
È utilizzabile nei sistemi che usano apt-get come software per la gestione dei
pacchetti e controlla se sono presenti degli aggiornamenti software. Nel caso si
usino le opzioni di default non è necessario avere i privilegi di root. Si può
decidere se fare l'update o l'upgrade, se filtrare la ricerca per una determinata
stringa o se fare l'avanzamento di versione
•
/check_breeze
Controlla la potenza del segnale di apparecchi wireless di tipo breezecom.
•
/check_by_ssh
Utilizza SSH per eseguire un comando su un host remoto. È necessario
specificare il nome del host e il nome del comando da eseguire. Si può
specificare il protocollo da utilizzare, se utilizzare un ipv4 o un ipv6 oppure
specificare l'username per il login sul host remoto. Utile per installare i plugin
su macchine remote controllando tutto da un server di monitoraggio.
•
/check_clamd
Controlla le connessioni CLAMD, quindi di un server clamd, specificando un
Esposito Paolo 566/2008
Pagina 49 di 148
host oppure un socket. Come nel caso precedente si può specificare se utilizzare
ipv4 o ipv6. Opzionalmente si può utilizzare la connessione SSL.
•
/check_cluster
Controlla lo stato dei cluster per un servizio o per un host specificando le soglie
di warning e critical per un certo numero di host o servizi.
•
/check_dhcp
Controlla la presenza del server DHCP su una rete. Si può specificare l'indirizzo
IP del server.
•
/check_dig
Controlla il servizio DNS di un host specificato utilizzando il comando dig. Si
possono specificare le soglie di warning e critical su determinati tempi di
risposta oppure controllare la correttezza dell'output.
•
/check_disk_smb
Controlla lo spazio di condivisione del protocollo SMB utilizzato per la
condivisione di risorse e file.
•
/check_dns
Utilizza, a differenza di dig, nslookup per ottenere l'indirizzo IP di un dato host
o dominio. Si può specificare facoltativamente un server DNS da utilizzare. Di
default viene utilizzato il server specificato in /etc/resolv.conf.
•
/check_dummy
Ritorna semplicemente lo stato specificato a riga di comando.
•
/check_file_age
Controlla che un file non sia vuoto ed effettua controlli sulla data di ultimo
accesso o modifica specificando un periodo di tempo.
•
/check_flexlm
Esposito Paolo 566/2008
Pagina 50 di 148
Controlla la presenza del gestore delle licenze flexlm.
•
/check_fping
Controllo di un host con il comando fping.
•
/check_ftp
Controlla una connessione FTP con un host o socket specificato. Si può fare
opzionalmente anche un controllo sulla correttezza dell'output.
•
/check_game
Controlla un game server con il comando qstat
•
/check_hpjd
Controlla lo stato di una stampante HP JetDirect. Nella macchina sulla quale
gira il plugin deve essere installato Net-snmp
•
/check_http
Controlla il servizio HTTP su un host specificato. Può controllare anche tempi
di connessione e certificati scaduti.
•
/check_icmp
Effettua dei controlli sul protocollo ICMP, utilizzato per trasmettere
informazioni riguardati malfunzionamenti dei componenti di una rete.
•
/check_ide_smart
Controlla, utilizzando l'interfaccia SMART, lo stato di un hard disk di tipo ide.
•
/check_ifoperstatus
Controlla lo stato di una determinata interfaccia di rete, di un determinato host,
utilizzano snmp.
•
/check_ifstatus
Controlla, a differenza del precedente, lo stato di tutte le interfacce.
Esposito Paolo 566/2008
Pagina 51 di 148
•
/check_imap
Controlla le connessioni IMAP di un host o socket specificato ed eventualmente
si autentica.
•
/check_ircd
Controlla un IRC Server
•
/check_jabber
Controlla una connessione JABBER su un host o socket specificato.
•
/check_ldap e /check_ldaps
Controllano un server LDAP
•
/check_log
Controlla un file di log su un determinato percorso.
•
/check_mailq
Controlla la lunghezza della coda delle email.
•
/check_mrtg
Controlla nel log file MRTG il valore medio o il valore massimo di una delle
variabili memorizzate al suo interno.
•
/check_mrtgtraf
Controlla il transfer rate in entrata e in uscita da un router o uno switch
memorizzato in un file di log MRTG. Se il nuovo valore è più vecchio di
“expire minutes” allora viene ritornato uno stato di warning. Se sia il traffico in
entrata che in uscita eccede le relative soglie allora viene ritornato uno stato di
critical.
•
/check_mysql
Controlla la connessione di un server MySQL
Esposito Paolo 566/2008
Pagina 52 di 148
•
/check_mysql_query
Controlla la connessione di un server MySQL con l'ausilio dei risultati di una
query.
•
/check_nagios
Controlla lo stato del processo NAGIOS sulla macchina locale. Si assicura che
il file di log non sia più vecchio di quello specificato nell'opzione che specifica
la scadenza in minuti. Fa anche uno controllo sulla tabella dei processi con un
confronto con gli argomenti dei comandi.
•
/check_nntp e /check_nntps
Controllano la connessione, rispettivamente NNTP e NNTPS per un
determinato host o socket.
•
/check_nrpe
Utilizzato per controllare l'installazione dell'addon NRPE e per eseguire i
plugin in remoto.
•
/check_nt
Raccoglie dai dal servizio Nsclient che gira su una macchina con windows
server nt/2000/2003/xp.
•
/check_ntp, /check_ntp_peer, /check_ntp_time
Effettuano controlli sul server ntp specificato
•
/check_nwstat
Contatta il MRTGEXT NLM che gira su un server Novel per ottenere varie
informazioni.
•
/check_oracle
Effettua l'autenticazione su un server Oracle.
Esposito Paolo 566/2008
Pagina 53 di 148
•
/check_overcr
Contatta il demone Over-CR, che gira su un server remoto unix, per ottenere le
informazioni richieste.
•
/check_pgsql
Contatta un server PostgreSQL per vedere se accetta connessioni, prova
l'autenticazione e le query.
•
/check_ping
Usa il ping per controllare statistiche sulla connessione di un host remoto.
•
/check_pop
Controlla la connessione POP specificando un host o un socket.
•
/check_procs
Controlla tutti i processi e genera stati di warning e critical se le metriche
specificate superano le soglie richieste.
•
/check_radius
Controlla se il server radius accetta connessioni.
•
/check_real
Controlla il servizio REAL su un host specificato.
•
/check_rpc
Controlla se c'è un servizio RPC su un server remoto.
•
/check_sensors
Utilizzando i sensori lm-sensors controlla lo stato del hardware.
•
/check_simap
Controlla una connessione SIMAP su un host o socket specificato
Esposito Paolo 566/2008
Pagina 54 di 148
•
/check_ssmtp
Cerca di aprire una connessione SSMTP con un host specificato.
•
/check_swap
Controlla lo spazio swap su un host.
•
/check_tcp
Controlla una connessione TCP su un host o socket specificato
•
/check_time
Controlla l'ora su un host specificato.
•
/check_udp
Controlla la connessione UDP su un host o socket specificato
•
/check_ups
Controlla lo stato degli UPS con i Network UPS Tools
•
/check_users
Controlla il numero di utenti autenticati, in quel momento, nel sistema locale e
genera un errore se il numero degli utenti supera le soglie specificate.
•
/check_wave
Controlla la potenza di un segnale ricevuto.
Questa lista comprende tutti i plugin base che fanno parte del pacchetto Nagios-Plugin.
Non sono stati inseriti quelli effettivamente aggiunti come servizi che verranno invece
descritti dettagliatamente, insieme a tutti gli altri script utilizzati, nel prossimo
capitolo.
Esposito Paolo 566/2008
Pagina 55 di 148
4.3. Script utilizzati per gli Host
I primi script utilizzati in questo lavoro di tesi, che vengono analizzati, sono quelli che
fanno parte del plugin di base di NAGIOS, in particolare check_disk, check_load e
check_ssh.
Check_disk è un plugin che controlla la quantità di spazio occupata su un disco di un
file system montato e genera degli avvertimenti se lo spazio libero è minore della
soglia specificata.
Questo plugin prende due opzioni obbligatorie che sono le soglie di warning e di
critical.
Per tutti gli host sono state inserite le stesse soglie, rispettivamente 5% e 1%. Finchè lo
spazio libero è superiore al 5% lo stato ritornato dal plugin è OK. Appena scende sotto
il 5% lo stato diventa warning e quando arriva al 1%, cioè quasi tutto il disco è
occupato, lo stato diventa critical.
Se non si inserisce nessuna altra opzione il plugin fa un controllo su tutte le partizioni
disponibili. Questo però può essere un problema in quanto, sul alcuni host, è presente
una partizione opt che è quasi del tutto occupata. Lo spazio libero della partizione opt
è costantemente è al di sotto del 5%, quindi comporterebbe un perenne stato di
Esposito Paolo 566/2008
Pagina 56 di 148
warning.
Fortunatamente il plugin check_disk permette anche di specificare la partizione sulla
quale effettuare il controllo con l'ausilio dell'opzione “-p”.
Lì dove non c'è stato bisogno di distinguere le partizioni, il comando inserito nel file di
configurazione prende il nome di “check_all_disk” e ha questa forma:
command[check_all_disk]=/usr/lib64/nagios/plugins/check_disk -w 5% -c 1%
Gli host in questione sono tutti gli Storage Element.
Per gli altri host, dove c'era bisogno di non considerare la partizione opt, è stato creato
un comando per ogni partizione.
È possibile vedere le partizioni di una macchina con il comando:
# df
Sui Worker Node sono presenti solo 2 partizioni, una di queste è proprio opt.
Quindi è stato creato un comando di nome “check_disk” che controlla solo l'altra
partizione (/dev/sda1):
command[check_disk]=/usr/lib64/nagios/plugins/check_disk -w 5% -c 1% -p
/dev/sda1
Sui Service Node la situazione invece cambia da host in host. Su atlas-squid, monitor e
t2-hlr-01 è stato utilizzato “check_all_disk”.
Su atlasui01, atlasui02 e atlasce01 invece sono stati usati “check_disk1” e
“check_disk2” per le 2 rispettive partizioni. Di seguito i due comandi per le due
partizioni di atlasce01:
command[check_disk1]=/usr/lib/nagios/plugins/check_disk -w 5% -c 1% -p /dev/sda1
command[check_disk3]=/usr/lib/nagios/plugins/check_disk -w 5% -c 1% -p /dev/sda3
Check_load è un plugin che controlla il carico medio della CPU di un host. Anche in
Esposito Paolo 566/2008
Pagina 57 di 148
questo caso è necessario specificare delle soglie di warning e critical. Essendo però un
calcolo medio ogni soglia prende non uno ma tre valori che rappresentano
rispettivamente il carico negli ultimi 1, 5 e 15 minuti. La soglia si considera superata
se uno qualunque dei tre valori di carico supera i valori specificati nell'opzione. I
valori vengono calcolati con una media pesata del carico durante il periodo di
riferimento in modo da dare più importanza ai valori più recenti.
Praticamente ogni CPU parte da uno stato di idle, uno stato nel quale non sta
eseguendo nessun processo. In questo stato ha un carico pari a 0. Ogni processo che è
in uno stato di running o di waiting sulla CPU aggiunge al carico un valore di 1.
Spesso si considerano anche processi in attesa sull' I\O e questo comporta ovviamente
un aumento del carico della CPU.
Tutte le macchine in questione hanno 2 o 4 CPU core, quindi si deve ripartire il carico
per ogni CPU dividendo il carico totale per il numero delle stesse. Per questo motivo le
soglie sono state aumentate e moltiplicate per il numero di core.
Per conoscere informazioni riguardanti la CPU del sistema si può eseguire il seguente
comando:
# cat /proc/cpuinfo
Questo script, pur controllando solo il carico della CPU, ha due scopi di utilizzo
fondamentalmente diversi. Ci sono determinate macchine, in particolare i Worker
Node, che devono sempre lavorare, quindi lo scopo di check_load in questo caso è
controllare appunto che stiano lavorando. Uno eventuale stato di warning quindi è da
prendere positivamente. Negli altri casi invece, la funzione di check_load è di
controllare che succeda l'esatto contrario, cioè che le macchine non siano troppo sotto
sforzo e il carico della cpu non sia eccessivamente elevato. In questo caso quindi un
eventuale warning deve essere preso negativamente,
Di seguito la definizione dei comandi del plugin check_load adattate al numero di
CPU core presenti nel sistema:
Esposito Paolo 566/2008
Pagina 58 di 148
command[check_load]=/usr/lib64/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
command[check_load]=/usr/local/nagios/libexec/check_load -w 30,20,10 -c 60,50,40
Check_ssh è un plugin che controlla la connessione SSH (Secure Shell) su una
determinata porta e host. La porta di default sulla quale gira il demone è la 22.
L'unica opzione che deve essere obbligatoriamente specificata è l'host name.
Il plugin viene eseguito da remoto, ma il controllo del SSH deve essere fatto
localmente, quindi come host si inserisce localhost. Un'altra opzione che deve essere
settata è se usare una connessione ipv4 o ipv6. In questo caso si utilizza la prima. Già è
stato detto che la porta di default è la 22, su alcune macchine però il demone è attivo
su una porta diversa, la 5022, quindi si deve utilizzare l'opzione “-p” per specificare
una porta che non si quella di default. La connessione viene provata per 10 secondi
dopo i quali la richiesta scade. Anche questo è un valore di default, si può specificare
un tempo diverso con l'opzione “-t”.
Di seguito la definizione del comando per atlasce01.na.infn.it:
command[check_ssh]=/usr/lib/nagios/plugins/check_ssh -4 -t 10 -p 22 localhost
Oltre a questi plugin sono stati aggiunti anche altri script, scritti in perl, messi a
disposizione da ATLASItalia: check_memory, check_nfs_stale. check_df, check_pbs,
check_cert, check_pbs_all, check_0queue. Per far funzionare questi script in perl, oltre
ad aver installato sul sistema il perl c'è bisogno di un particolare modulo di nagios
relativo al perl. Infatti già provando gli script in perl senza nrpe, se non è presente
questo modulo, viene restituito un errore del seguente tipo:
Can't locate Nagios/Plugin.pm in @INC (@INC contains: ...) at ./check_memory.pl
line 46.
BEGIN failed--compilation aborted at ./check_memory.pl line 46.
Esposito Paolo 566/2008
Pagina 59 di 148
Si può installare il modulo mancante in due modi. Il primo modo è direttamente
tramite il perl, eseguendo questo comando:
# perl -MCPAN -e 'install Nagios::Plugin'
L'altro modo è installare il pacchetto tramite il gestore di pacchetti della distribuzione
utilizzata (in questo caso yum). Quindi, se presente nei repository, si può fare:
# yum install perl-Nagios-Plugin
Check_memory è uno script che controlla la quantità di memoria centrale libera.
Prende come valori 2 soglie, rispettivamente per il warning e per il critical. I valori
delle soglie devono essere in percentuale. Sono stati inserite le stesse soglie utilizzate
per il plugin check_disk, cioè 5% per il warning e 1% per il critical.
La definizione del comando è la stessa per tutti gli host, prendiamo come esempio
quella di atlasce01.na.infn.it:
command[check_memory]=/usr/lib/nagios/plugins/check_memory.pl -w 5% -c 1%
Check_nfs_stale è uno script che controlla presenza, ed eventualmente cerca di
risolvere, l'errore “NFS: Stale file handle” sulle macchine che montano l'area software
via NFS. Lo script ha bisogno dei permessi di scrittura sui file temporanei $temp_file
per montare e smontare i comandi senza la richiesta della password. Questo script, per
il momento, non è stato aggiunto come comando e quindi neanche come servizio.
Restituisce critical se il problema NFS è stato trovato e lo script non è riuscito a
risolverlo, warning se è stato trovato il problema ma lo script lo ha risolto e OK nel
caso in cui non sia stato trovato.
Check_df è uno script che controlla, tramite il comando df, se il file system passato
come parametro è montato correttamente. L'unico parametro obbligatorio da
specificare ovviamente è il nome del file system da controllare. Anche questo script,
Esposito Paolo 566/2008
Pagina 60 di 148
come il precedente, non è stato aggiunto temporaneamente né ai comandi né ai servizi.
Ritorna OK se il path passato è stato trovato, critical in tutti gli altri casi.
Check_pbs è uno script che controlla le code con il comando “qstat -q”. Esegue
controllo su soft limit ed hard limit di tutte le code ed esegue un controllo sulla cosa
cert che non ha soft ed hard limit definiti in maui.cfg. Prende due parametri opzionali,
il percorso del file maui.cfg e il percorso dell'output. Un parametro interno invece, di
nome max_runnable_job, deve essere settato con il numero massimo di job che
possono essere eseguiti contemporaneamente. Questo script è usato sul CE, di seguito
la definizione del comando:
command[check_pbs]=/usr/lib/nagios/plugins/check_pbs.pl
Questo script ha bisogno di uno scheduler di cluster per funzionare, in particolare del
Maui. I controlli che fa sono i seguenti:
•
Controllo sui soft limit: controlla le code con i job in coda e i job che stanno
girando al di sotto del soft limit e che il numero totale di job sul CE al di sotto
del proprio limiti.
•
Controllo sugli hard limit: controlla le code con i job in coda e i job che stanno
girando al di sotto del hard limit e che il numero totale di job sul CE al di sotto
del proprio limiti. Questo controllo è effettuato solo se il precedente controllo
non ha trovato nessuna coda che rispecchia le sue condizioni, quindi si può
assumere che tutte le code hanno un numero di job che stanno girando
maggiore del soft limit.
•
Controllo della coda cert: controlla se la coda cert ha dei job in coda e che il
numero totale di job che stanno girando sul CE è minore del proprio limite.
Questo controllo deve essere fatto separatamente dagli altri due in quanto la
coda cert non ha soft limit e hard limit definiti in maui.cfg,. In ogni caso,
commentando determinate righe che si riferiscono al cert, nel file di
Esposito Paolo 566/2008
Pagina 61 di 148
configurazione, si può far in modo che anche questa coda abbia i soft e hard
limit e venga trattata come tutte le altre.
I primi due controlli sono mirati a controllare se il sistema di code PBS è
sottoutilizzato. Per esempio se ci sono dei job in coda che per qualche motivo non
stanno girando.
Il controllo numero 3 è uguale ai precedenti solo che è per la coda cert.
Questo script ritorna critical se almeno uno dei 3 controlli è verificato, altrimenti
ritorna lo stato OK.
Check_cert è uno script che controlla se la coda cert ha dei job in coda ma nessuno di
questi sta girando, questo indipendentemente dal numero di job totali, parametro che
invece viene considerato nello script check_pbs. Questo script è utile quando si vuole
essere certi che la coda cert giri sempre. L'unico parametro che prende, per'altro
opzionale, è il nome della coda cert. Anche questo script è utilizzato sul CE, di seguito
la definizione del comando:
command[check_cert]=/usr/lib/nagios/plugins/check_cert.pl
Ritorna lo stato di critical se uno dei controllo si verifica, in tutti gli altri casi invece
ritorna lo stato OK.
Check_pbs_all è uno script che esegue contemporaneamente check_pbs e check_cert.
Questo script può essere usato nel caso non si abbia la necessità di gestire
separatamente i due script, per esempio se non si ha la necessità di specificare un
tempo di timeout diverso. Vediamo sempre la definizione del comando sul CE:
command[check_pbs_all]=/usr/lib/nagios/plugins/check_pbs_all.pl
Ritorna lo stato di critical se uno dei controllo si verifica, in tutti gli altri casi invece
ritorna lo stato OK.
Esposito Paolo 566/2008
Pagina 62 di 148
Check_0queue è l'ultimo script rimasto, lasciato per ultimo in quanto è l'unico di
questi a non essere scritto in perl, ma è uno script shell. Controlla semplicemente se
sulla coda passata come parametro sono presenti o meno dei job in coda. Utile quando
si vuole essere certi che la coda abbia sempre qualche job che sta girando. E' usata per
la coda atlas. Anche questo script utilizza il comando “qstat -q”. Di seguito la
definizione del comando sul CE:
command[check_0queue]=/usr/lib/nagios/plugins/check_0queue atlas
Ritorna lo stato OK se la coda specificata è abilitata e ci sono dei job in coda.
Ritorna lo stato di warning se la coda specificata è disabiltiata a prescindere dal
numero di job in coda.
Ritorna lo stato critical se la coda specificata è abilitata e non ci sono job in coda.
4.4. Il protocollo SNMP
Non tutti i nodi della rete sono macchine, con un sistema operativo che gestisce le
risorse. Senza un sistema operativo non si può ovviamente utilizzare l'addon nrpe per
controllare le risorse locali di un nodo remoto. In questi casi si può usare per il
monitoraggio il protocollo SNMP (Simple Network Managment Protocol ), usato di
solito sulle reti TCP/IP, un protocollo utilizzato per la gestione di infrastrutture di rete.
SNMP permette il monitoraggio e il controllo di dispositivi di rete quali Router,
Switch o Hub, permettendo di conoscere informazioni di tipo prestazionali o sullo
stato del sistema.
Un framework SNMP è composto da un sistema gestito (managed object), un agente di
gestione (management agent) e un sistema di gestione (manager).
Un sistema gestito, come un generico nodo o uno switch per esempio, ospita un agente
di gestione ed un certo numero di subagent. L'agente di gestione funge da
intermediario tra il sistema di gestione e i subagent. Quando un sistema di gestione
Esposito Paolo 566/2008
Pagina 63 di 148
interroga l'agente di gestione, questo invia le informazioni richieste sul dispositivo del
quale si occupa.
Ogni subagent prende le decisioni di gestione per quanto concerne nei propri compiti,
in un determinato sottosistema o aspetto del sistema.
In sistemi con una gestione più semplice, l'agente di gestione e i sottoagenti possono
costituire un'unica struttura, chiamata semplicemente agente, in grado di dialogare con
il sistema di gestione e prendere decisioni.
Di solito gli agenti, in un dispositivo di rete, sono implementati proprio nel firmware
del dispositivo oppure, nel caso dei server, all'interno di servizi software.
SNMP utilizza una chiara separazione tra il protocollo di gestione e la struttura
dell'oggetto gestito. In questa architettura, per ogni sottosistema, è definito un database
di nome MIB (Management Information Base), gestito dal corrispondente subagent il
quale rappresenta lo stato del sottosistema gestito, limitato ai soli aspetti dei quali si
vuole consentire la gestione.
Gli oggetti gestiti dagli agent, quindi tutti gli attributi che si possono monitorare, sono
contenuti in questa MIB, secondo la struttura definita nella SMI (Structure
Management Information).
Il MIB ha una struttura ad albero ed ogni oggetto è identificato all'interno di questa
struttura tramite un OID (Object Identification). Un oggetto ha anche una etichetta
associata, quindi può essere identificato o tramite il suo ID o tramite la sua etichetta.
Ogni modifica a questa MIB causa un un cambiamento dello stato del corrispondente
sistema che rappresenta. Questa è una proprietà delle MIB che viene garantita da un
subagent.
Si accede alla MIB tramite un'interfaccia messa a disposizione del sistema di gestione.
Esposito Paolo 566/2008
Pagina 64 di 148
Ogni MIB, cambia nei propri contenuti, ma mantiene la stessa struttura generale e gli
stessi meccanismi di accesso ai dati, in lettura e scrittura, da parte del sistema di
gestione.
Sulle macchine da monitorare è già installato, tramite il pacchetto snmpd, il demone
SNMP.
SNMP utilizza come protocollo di trasmissione UDP in modo da ottenere migliori
performance e minore overhead della rete. In particolare viene utilizzata la porta UDP
161 per le interrogazioni e le risposte, e la porta UDP 162 come destinazione dei
messaggi trap SNMP generate dagli agent SNMP.
Gli apparati di rete gestiti da SNMP sono organizzati in una comunità (community). La
comunità rappresenta un identificativo che permette di garantire la sicurezza delle
interrogazioni SNMP. Un agente SNMP risponde solo alla richieste di informazioni
effettuate da un sistema di gestione appartenente alla stessa comunità.
I nomi di comunità sono formati da 32 caratteri e sono di tipo case sensitive.
Esistono tre tipi di comunità:
monitor, che permette di lavorare in sola lettura, quindi di effettuare solamente
interrogazioni agli agenti (il cui nome di comunità deve corrisponde a quello del
sistema di gestione che ne ha fatto la richiesta). Il control, che permette tramite gli
agenti SNMP di effettuare delle operazioni in lettura/scrittura sul dispositivo, quindi di
variarne delle impostazioni sempre previo controllo di sicurezza. Il trap, che permette
ad un agente di inviare un messaggio trap SNMP al sistema di gestione secondo la
propria configurazione.
Spesso i nomi di community di default predefiniti sono public per le comunità di sola
lettura e write o private per quelle in lettura/scrittura. Ovviamente è bene modificare
queste impostazioni di default per motivi di sicurezza.
Esposito Paolo 566/2008
Pagina 65 di 148
SNMP utilizza sei tipi di messaggi di base per svolgere il proprio lavoro. Ogni
messaggio è definito in PDU (Protocol Data Unit) separate, e precisamente:
•
GetRequest: è utilizzata per interrogare un MIB su un agent SNMP.
•
GetNextRequest: è utilizzata per leggere in modo sequenziale un MIB.
•
GetBulk: permette di leggere un MIB con un unica richiesta anzichè utilizzare
più messaggi GetNextRequest.
•
SetRequest: modifica il valore all'interno di un MIB acceddibile in
lettura/scrittura.
•
GetResponse: identifica la risposta da parte di un agent SNMP ad
un'interrogazione di una management station.
•
Trap: permette all'agent di inviare un messaggio al verificarsi di un determinato
evento.
Alcune trap sono predefinite:
•
coldStart: generata quando l'agente SNMP si reinizializza e la configurazione è
stata cambiata (Es. reboot del sistema).
•
warmStart: generata quando l'agente SNMP si reinizializza ma senza
cambiamenti nella configurazione.
•
linkDown: generata quando il collegamento con l'agent non funziona
correttamente.
•
linkUp: generata quando il collegamento con l'agent viene ripristinato.
•
authenticationFailure: generata da un'autenticazione con l'agent non andata a
buon fine (Es. nome di comunità errato).
•
egpNeighborLoss: generata da problemi di EGP (Exterior Gateway Protocol utilizzato dai router).
Esposito Paolo 566/2008
Pagina 66 di 148
•
enterpriseSpecific: evento definito dal produttore del device.
La SMI (Structure Mangement Information) definisce in modo standard come devono
essere strutturate le informazioni e la loro gerarchia per essere inserite nel database
MIB e quindi gestite da una manager SNMP.
La gerarchia degli oggetti, è ad albero:
-----------------[root]
[ccit(0)][iso(1)][joint-iso-ccitt(2)]
----------------[org(3)]
----------------[dod(6)]
----------------[internet(1)]
[directory(1)][management(2)][experimental(3)][private(4)]
-----------[mib(II)][enterprise(1)]
[System(1)][Interfaces(2)][Address Translation(3)][Ip(4)][Icmp(5)][Tcp(6)][Udp(7)]
[Egp(8)][Snmp(9)]
Ogni oggetto della gerarchia viene identificato in modo univoco, attraverso il suo
percorso nell'albero, la variabile Hostname per esempio è identificata da:
iso.org.dod.internet.management.mib.system.sysdescr oppure 1.3.6.1.2.1.1.1.
Gli oggetti sono definiti tramite la sinstassi ASN.1 (Abstract Syntax Notation One), la
quale permette di non avere ambiguità tra funzioni e proprietà dell'oggetto definito.
La management Information Base, è una base di dati contenente tutte le informazioni
gestite dall'agent SNMP che è in funzione sulla device monitorata. Gli oggetti
all'interno di una MIB vengono definiti in base alle strutture SMI. Attualmente lo
standard utilizzato è la MIB-II.
All'interno di ogni MIB gli oggetti sono suddivisi in categorie, in particolare:
•
System: contiene informazioni di carattere generale sul device di rete.
Esposito Paolo 566/2008
Pagina 67 di 148
•
Interfaces: contiene le informazioni relative alle interfacce di rete.
•
Address Translation: contiene informazioni relative alla conversioni degli
indirizzi (Es. da logico a fisico), esiste per compatibilà con MIB-I.
•
Ip: contiene informazioni relative al protocollo IP.
•
Icmp: contiene informazioni relative al protocollo ICMP.
•
Tcp: contiene informazioni relative al protocollo TCP. Gli oggetti di questo
gruppo esistono solo per la durate della sessione TCP.
•
Udp: contiene informazioni relative al protocollo UDP.
•
Egp: contiene informazioni relative al protocollo EGP (protocollo utilizzato da
un router per scambiare informazioni tra Autonomous System).
•
Transmission: sperimentale, contiene informazione sui mezzi trasmissione
utilizzato da ogni interfaccia di rete.
•
Snmp: contiene informazioni relative al protocollo SNMP.
4.5. Script per UPS, Switch e CMC
Tutti gli script che seguiranno fanno uso del SNMP. Questi script, considerando la loro
natura, sono presenti solo sul server e non si deve fare alcun tipo di configurazione,
ma possono essere utilizzati semplicemente eseguendo il plugin dal server e
specificando il dns dell'apparato:
•
Water Temperature: Si utilizza il plugin check_snmp per controllare la
temperatura dell'acqua dell'impianto di raffreddamento, tramite i CMC. Tra i
vari parametri da passare ci sono le soglie di warning e critical, il dns del CMC
e l'unità di misura della temperatura. Il comando da lanciare dal server è il
seguente:
check_snmp -H cmc.na.infn.it -C public -o .1.3.6.1.4.1.2606.4.2.3.5.2.1.5.1 -w
Esposito Paolo 566/2008
Pagina 68 di 148
40 -c 60 -l 'Temperature' -u '°C'
•
Temperature: Si utilizza il plugin check_snmp per controllare la temperatura
dell'ambiente all'interno dei rack, sempre tramite i CMC. I parametri da passare
sono gli stessi del precedente script.
/check_snmp -H cmc.na.infn.it -C public -o .1.3.6.1.4.1.2606.4.2.3.5.2.1.5.1 -w
35 -c 60 -l 'Temperature' -u '°C'
•
Fan Speed: Si utilizza uno script denominato check_snmp_fanspeed per
controllare la velocità delle ventole. Anche in questo caso si utilizzano i CMC e
si inseriscono soglie di warning o critical che si riferiscono alla velocità.
/check_snmp_fanspeed.sh cmc.na.infn.it
•
Uptime: Tramite il plugin check_snmp si controlla da quanto tempo è up
l'apparato. Questo script può essere utilizzato sia per i CMC che per i Switch e
UPS. La definizione del comando è la seguente:
check_snmp cmc.na.infn.it -C public -o sysUpTime.0
•
Traffic: Uno dei parametri più importanti che interessano degli Switch, cioè la
percentuale di banda utilizzata. Si utilizza uno script chiamato traffico_link:
/traffico_link.sh switch.na.infn.it
•
Descrption: Tramite il plugin check_snmp, per tutti gli apparati, è possibile
ottenere come informazione la descrizione dell'apparato. La definizione del
comando è la seguente:
/check_snmp switch.na.infn.it -C public -o sysDescr.0
•
UPS Charge: tramite lo script check_snmp_ups_charge si può controllare la
carica rimanente di un UPS:
/check_snmp -H upsmon.na.infn.it -o UPSMIB::upsEstimatedChargeRemaining.0 -C !n0npublic -w 80:50 -c 49:0
Esposito Paolo 566/2008
Pagina 69 di 148
•
UPS Autonomy: Tramite lo script check_snmp si può conoscere qual'è il tempo
rimanente della carica della batteria prima che si esaurisca. Anche questo viene
utilizzato per gli UPS e la definizione del comando è:
/check_snmp -H upsmon.na.infn.it -o UPSMIB::upsEstimatedChargeRemaining.0 -C !n0npublic -w 80:50 -c 49:0
•
UPS Status: Questo script chiamato check_ups_status, che controlla lo stato
degli ups, è definito come segue:
/check_ups_status.pl -H upsmon.na.infn.it -C !n0npublic
4.6. Considerazioni
In questi capitoli si è visto come installare il software di monitoraggio NAGIOS sul
server, l'addon NRPE sugli host per il monitoraggio, da remoto, delle risorse locali e
come configurare i plugin sulle varie macchine.
I plugin eseguiti tramite NRPE possono essere testati prima localmente, mettendo
“localhost” come indirizzo del server, poi da remoto, eseguendoli direttamente dal
server tier2-nagios. Tutti gli accessi remoti alle macchine sono stati fatti con SSH,
quasi sempre sulla porta 22.
Per accedere ad una macchina tramite ssh si può eseguire il seguente comando:
# ssh [email protected]
Esposito Paolo 566/2008
Pagina 70 di 148
Per accedere viene chiesta anche la password dell'username specificato.
L'installazione e la configurazione di queste componenti è stata fatta prima
manualmente, poi automatizzata il più possibile.
L'applicazione NAGIOS è stata installata dal cd con il FAN, che automaticamente
installa anche Centreon e Nagvis, che verranno visti in seguito. L'installazione del
NRPE su tutte le macchine invece è stata fatta tramite i pacchetti rpm aggiornando i
repository. La configurazione dei file del NRPE è stata fatta prima semi-automatica,
con l'utilizzo di una macchina lxlupo per copiare un file di configurazione, di una
macchina configurata correttamente, su tutte le altre macchine non ancora configurate.
Successivamente è stata automatizzata anche questa procedura in modo che, quando è
installato NRPE su una macchina, questa sia già configurata.
I repository sono stati aggiornati su molte macchine in modo da includere anche il
perl-Nagios-Plugin, che prima non era presente, necessario per il funzionamento degli
script in perl.
Questo lavoro di tesi, come già accennato precedentemente, è stato fatto su un sistema
di monitoraggio NAGIOS già esistente. Per provare prima in locale la configurazione
NAGIOS-NRPE è stato necessario installare localmente un'altra copia di NAGIOS.
Localmente si dovevano provare anche gli script della macchina CE, prima di caricarli
con il file di configurazione su questa macchina. La macchina CE è adibita al controllo
delle code e prende il nome di atlasce01.na.infn.it . Per provare quindi gli script
relativi alle code devono essere presenti uno scheduler di cluster e un gestore delle
risorse. Entrambi ovviamente sono già presenti su atlasce01. Per provare gli script
localmente si devono installare anche sulla macchina locale. Sono stati scelti, come
scheduler il Maui e come gestore delle risorse il Torque compatibile con Maui.
Esposito Paolo 566/2008
Pagina 71 di 148
4.7. Scheduler e Resource Manager
Il Maui è uno scheduler di cluster avanzato, usato per migliorare il controllo e
l'efficienza dei cluster e delle risorse dei supercomputer.
Questa mini-guida evidenzia i passi chiave e le considerazioni coinvolte nell'
installazione, la costruzione, la configurazione e il testing del Maui su nuovi sistemi.
Il primo passo è la comprensione di cos'è il Maui.
Il Maui è uno scheduler, prende decisioni riguardo a dove, quando e come far girare i
job tramite un insieme di politiche configurabili, priorità e limiti.
Prende le sue decisioni interrogando e controllando un sistema di gestione delle risorse
come OpenPBS, PBSPro, Torque, LoadLeveler, SGE, ect.
Per far girare il Maui sono richiesti tra i 20 e i 50 mb di RAM e almeno 20 MB di
spazio sul disco per tenere sorgenti, file binari, statistiche e log file.
Richiede che un manager di risorse sia installato ed operativo.
Maui deve girare sotto un user id con accesso da amministratore al manager delle
risorse che viene usato.
L'installazione e configurazione del Maui deve essere condotta sotto questo user id.
Prima di tutto devono essere determinate l'host e la home directory che ospiteranno il
Maui.
Spesso l'host sarà lo stesso della macchina sulla quale gira il manager delle risorse.
La Home directory invece sarà la locazione standard local, per esempio /usr/local/src.
Per prima cosa è necessario andare sul sito http://www.clusterresources.com.
Qui sarà possibile scaricare il file tar solo dopo aver effettuato la registrazione.
Una volta scaricato il file maui-3.3.tar.gz sul desktop spostarlo in una cartella
appropriata:
# mv /root/Desktop/maui-3.3.tar.gz /usr/local/src/
Estrarre ed entrare nella cartella estratta:
# gtar -xzvf maui-3.3.tar.gz
Esposito Paolo 566/2008
Pagina 72 di 148
# cd maui-3.3
A questo punto, se si lancia ./configure si vede che l'operazione non va a buon fine,
con il seguente errore:
configure: WARNING: Resource Manager not specified - attempting build with pbs
configure: error: can't find pbs-config or libpbs.a
Come si evince dall'errore manca proprio un Resorce Manager.
È stato scelto e installato TORQUE come gestore delle risorse affiancato dal Maui
come scheduler.
TORQUE è un manager delle risorse anche conosciuto con il suo nome storico: PBS
(Portable Batch System).
Scaricare Torque:
# cd /usr/local/src
# wget http://www.clusterresources.com/downloads/torque/torque-2.5.1.tar.gz
Estrarre ed entrare nella cartella creata:
# tar -xzvf torque-2.5.1.tar.gz
# cd torque-2.5.1
Compilare e Inizializzare:
# ./configure
# make
# make install
TORQUE richiede solo pochi passi per inizializzare, configurare e far girare il sistema.
Per prima cosa il server ha bisogno di conoscere di quali computer node può fidarsi.
Esposito Paolo 566/2008
Pagina 73 di 148
In secondo luogo il server deve essere inizializzato e configurato.
Infine ogni computer node ha bisogno di sapere dove è posizionato il pbs_server.
Per configurare il pbs_server lanciare il comando torque.setup <USER>, dove user è
l'utente che sarà l'admin di TORQUE:
# ./torque.setup root
Una alternativa è fare:
# pbs_server -t create
Se non si è specificato durante il configure una cartella diversa, il pbs_server e il
pbs_mom vengono messi nella cartella /usr/local/sbin
Per vedere la configurazione lanciare il comando:
# qmgr -c 'p s'
l'output del comando è è il seguente:
#
# Set server attributes.
#
set server acl_hosts = pc10.scope.unina.it
set server log_events = 511
set server mail_from = adm
set server scheduler_iteration = 600
set server node_check_rate = 150
set server tcp_timeout = 6
A questo punto l'installazione e la configurazione di TORQUE è terminata. Possiamo
utilizzare il comando “qstat -q” e controllare che ci sia una coda fittizia, creata da
Esposito Paolo 566/2008
Pagina 74 di 148
torque.setup, chiamata batch. Possiamo proseguire anche la configurazione del Maui
da dove era stata interrotta e provare gli script, alcuni dei quali richiedono proprio la
posizione del file maui.cfg.
4.8. Problematiche
Durante questa parziale fase del lavoro ho riscontrato e risolto alcune problematiche.
Una prima problematica riguarda il file di log /var/log/messages.
Ogni volta che viene fatta una interrogazione al demone nrpe, da parte del server, 2
righe di codice vengono scritte nel file di log del sistema, in particolare le seguenti
righe:
Nov 3 10:58:15 pc01 xinetd[2940]: START: nrpe pid=25903 from=172.xxx.xxx.xxx
Nov 3 10:58:16 pc01 xinetd[2940]: EXIT: nrpe status=0 pid=25903 duration=1
Su una macchina vengono eseguiti mediamente 5 script ogni 5 minuti. Questo
significa 2 righe di file log ogni minuto, 120 righe ogni ora, 2880 righe al giorno nel
file di log.
Questo è un problema sia dal punto di vista dello spazio occupato all'interno del file,
sia dal punto di vista della grandezza del file stesso. Il file ovviamente viene svuotato
periodicamente. Questa situazione quindi, di per se, no sarebbe un problema se non
fosse che il file di log, su alcune macchine, è utilizzato da altre persone per altri scopi.
È necessario quindi spostare i log del demone xinetd da qualche altra parte in modo da
liberare il file di log del sistema. Per fare questo è sufficiente andare nel file di
configurazione di xinetd, xinetd.conf, che si trova nella directory etc.
Alla voce log_type è impostato il valore “SYSLOG daemon info” che fa appunto
copiare il log nel file di sistema. Sostituire il valore come segue:
log_type
= SYSLOG authpriv
Esposito Paolo 566/2008
Pagina 75 di 148
In questo modo i log di xinetd vengono messi in un file di log diverso, in particolare
“/var/log/secure”. Il problema quindi è stato risolto
Altri problemi che si sono presentati sono emersi quando sono stati provati gli script
che utilizzano SNMP. Provando check_ups_autonomy, tramite check_snmp, usciva il
seguente errore:
External command error: UPS-MIB::upsEstimatedMinutesRemaining.0: Unknown
Object Identifier
Non riusciva quindi ad identificare l'oggetto all'interno della MIB. Questo richiedeva
che i MIB venissero aggiornati. Questo aggiornamento è stato fatto anche per gli altri
apparati che usano SNMP.
Un altro problema è sorto con l'altro script per gli ups, check_ups_charge. In
particolare lanciando questo script viene ritornato l'errore seguente:
Range format incorrect
Dopo alcune ricerche si è ipotizzato che questo errore possa essere dovuto ad un bug
presente in check_snmp nella versione nagios-plugins 1.4.14.
Questa ipotesi è stata fatta in quanto ci sono altri precedenti sui forum di persone che
hanno avuto lo stesso problema e hanno risolto passando ad una versione precedente.
L'ipotesi è avvalorata dal fatto che questo script, su una versione vecchia di FAN,
quindi con una versione vecchia del nagios-plugin, funzionava.
Il problema non è stato risolto, quindi lo script attualmente non funziona. Piuttosto che
fare un downgrade della versione del nagios-plugin, in questi giorni è uscita una nuova
versione: nagios-plugins 1.4.15.
Esposito Paolo 566/2008
Pagina 76 di 148
Si potrebbe quindi provare ad fare un upgrade per vedere se il problema si risolve.
5. Aggiunta dei servizi con Centreon
Centreon è un tool di monitoraggio che configura e controlla Nagios tramite una
interfaccia web e memorizza l'output dei plugin di Nagios all'interno di un database
MySQL. Questi dati sono utilizzati per mostrare lo stato degli Host e Servizi, proprio
come fa Nagios, e vengono utilizzati per la creazione di grafici.
Centreon, così come Nagios e Nagvis è compreso nel pacchetto di installazione di
FAN. Poiché Centreon è già installato, quindi perfettamente funzionante e integrato
con Nagios, in questo capitolo vengono affrontate solo le funzionalità di Centreon, in
particolare quelle necessarie per aggiungere i servizi sugli host da monitorare in
nagios.
Esposito Paolo 566/2008
Pagina 77 di 148
L'installazione di Centreon si può raggiungere, tramite interfaccia web e previa
autenticazione, dall'indirizzo:
http://tier2-nagios.na.infn.it/centreon
figura 21 : Home di Centreon con sommario della situazione degli Host e Servizi
Una volta effettuata l'autenticazione si accede alla pagina principale di Centreon. La
prima schermata che si vede è “Tactical Overview”, un sommario con la situazione
generale di tutti gli host e servizi, lo stesso Tactical Overview che si vede in Nagios ma
con una interfaccia nettamente migliore.
5.1. Host e Host Group
Il primo passo nella procedura di configurazione è aggiungere un Host. Per fare questo
andare in:
Configuration → Hosts
Nel menu a tendina sono disponibili tutte le possibili azioni da fare su un determinato
host, come duplicarlo, cancellarlo o disabilitarlo. Quella che interessa però è l'azione
“add” che permette di aggiungere un host. Premendo il tasto “add” si apre la
schermata, con un form da compilare, visualizzata in figura 22.
Esposito Paolo 566/2008
Pagina 78 di 148
figura 22 : Form per l'aggiunta di un nuovo host
Prendiamo come esempio, di un host da inserire, atlasse04.na.infn.it.
Le informazioni necessarie sono il nome del Host, un alias e il suo indirizzo IP:
Host Name = atlasse04.na.infn.it
Alias = Storage Element 04
IP Address = 90.147.67.14
Altre informazioni non sono necessarie in questo momento in quanto, verranno
aggiunge successivamente, con l'aggiunta di host group, command e service. Quindi si
può già salvare il nuovo Host creato.
Esposito Paolo 566/2008
Pagina 79 di 148
Aggiungere qui informazioni, come il periodo di controllo, significherebbe fare una
distinzione tra i vari host. Queste informazioni invece sono comuni a tutti gli host che
hanno un particolare servizio e vengono specificate nel template del servizio come si
vedrà più avanti.
Gli stessi servizi non vengono associati a singoli host ma a gruppi di host della stessa
tipologia. A questo scopo tutti gli host sono stati raggruppati in 2 modi: per il rack di
appartenenza e per la funzionalità. Per quelli raggruppati per funzionalità è stata fatta
una ulteriore distinzione per la loro locazione (Scope o Atlas).
Per creare un Host Group, sempre nella sezione “Hosts”, selezionare “Hosts Group”
nel menu a sinistra (che visualizza la lista di tutti gli Host Group) e selezionare “add”.
Si aprirà un form come quello visibile nella seguente figura:
figura 23 : Form per l'aggiunta di un nuovo host group
Esposito Paolo 566/2008
Pagina 80 di 148
Supponiamo di voler creare un gruppo nel quale sono contenuti i CMC di Atlas, allora
si inserisce come nome del gruppo e alias “CMC_atlas”.
Più sotto, dove compare la lista di tutti gli host, si deve specificare quali host fanno
parte di questo gruppo, selezionarli e premere il pulsante “Add”
Quindi selezionare cmcatlas1, cmcatlas2, cmcatlas3, cmcatlas4 e salvare il gruppo.
In questo capitolo non vengono descritti tutti gli host e host group creati in quanto
saranno visibili chiaramente nelle mappe più in avanti.
5.2. Aggiungere un comando
Una volta aggiunti tutti gli Host ed raggruppati in Host Group, si devono aggiungere i
comandi relativi all'esecuzione dei plugin.
Nella sezione “Commands” si può visualizzare la lista di tutti i comandi già aggiunti
ed aggiungerne altri con “add”.
Il form per l'aggiunta di un nuovo comando è visibile in figura 24:
figura 24 : Form per l'aggiunta di un nuovo comando
Esposito Paolo 566/2008
Pagina 81 di 148
Per creare il comando per l'esecuzione dello script check_memory è necessario inserire
un nome per il comando e la linea del comando da eseguire.
Come nome del comando si può inserire qualcosa che risalti l'utilizzo di nrpe, per
esempio check_memory_nrpe. In questo modo, quando si visualizza la lista dei
comandi, tramite il form di ricerca, si possono filtrare i comandi in modo da
visualizzare solo quelli eseguiti tramite NRPE.
La linea di comando invece è quella che è stata eseguita dalla shell del server per
l'esecuzione di un plugin remoto, quindi:
$USER1$/libexec/check_nrpe -H $HOSTADDRESS$ -c check_memory
USER1 e HOSTADDRESS sono due variabili che, di volta in volta, contengono
l'utente che sta eseguendo il comando e l'indirizzo del host remoto, quando si esegue il
comando su un determinato host.
È possibile comporre la linea di comando in modo più rapido e senza errori
aggiungendo direttamente le variabili o lo script, selezionando quello che interessa
aggiungere nei menu a tendina sulla destra.
A questo punto il comando si può anche salvare. È presente però un'altra funzionalità
molto importante che permette di testare il plugin. Subito sotto la linea di comando si
può inserire l'indirizzo di un host e testare il plugin per vedere se funziona. Questa
funzionalità, non presente nelle precedenti versioni di Centreon, è utilissima per capire
se il comando è stato scritto correttamente.
Ad ogni comando corrisponde un plugin da eseguire e corrisponderà un servizio.
Tutti i plugin, che sono stati descritti già precedentemente, vengono richiamati da
“check_nrpe” il quale specifica il nome del Host e il nome del Comando.
La linea di comando, per ogni plugin, deve essere scritta nella stessa forma vista per il
comando check_memory.
Fanno eccezione i comandi per i plugin che utilizzano SNMP. In questo caso non si
Esposito Paolo 566/2008
Pagina 82 di 148
deve utilizzare check_nrpe, ma check_snmp. Questo comando richiede anche altri
parametri, gli stessi presenti nella descrizione dei relativi plugin nel capitolo 4.
5.3. Creare un servizio
Il passo finale di questa procedura è l'aggiunta di un servizio. Ogni servizio esegue un
determinato comando, di quelli descritti precedentemente.
Prima di creare un servizio si deve creare un template per il servizio. Selezionare
quindi la Tab Services, tra le voci del menu di sinistra c'è anche quella relativa ai
Template. Qui è possibile vedere la lista dei template già creata oppure creare un
nuovo template cliccando su add. Si aprirà un form per la creazione del servizio così
come si può vedere nella figura 25.
figura 25 : Form per l'aggiunta di un nuovo template per i servizi
Esposito Paolo 566/2008
Pagina 83 di 148
Le prime informazioni necessarie da inserire sono il nome del template e l'alias.
È necessario poi impostare i parametri relativi ai tempi dei controlli. Una impostazione
tipo potrebbe essere:
Check Period = 24x7
Max Check Attempts = 3
Normal Check Interval = 5 * 60 sec
Retry Check Interval = 1 * 60 sec
In questo modo si imposta il controllo per 24 ore, 7 giorni a settimana. Il massimo
numero di tentativo è impostato a 3. Ogni controllo viene fatto ad intervalli di 5 minuti
e in caso di errore viene riprovato dopo 1 minuto.
Nella parte bassa del template si possono attivare anche le notifiche, che vengono
inviate all'amministratore del sistema. Si possono impostare le notifiche per 24 ore, 7
giorni a settimana, proprio come sopra, in modo da renderle attive per tutto il periodo
di controllo. Si deve poi scegliere il motivo per il quale ricevere la notifica, se per un
warning, un critical, un recovery, ect.
Queste sono le impostazioni più importanti per un template. Fatto questo si può
passare alla creazione di un servizio.
I servizi possono essere creati per un determinato Host oppure per un gruppo di Host.
Precedentemente gli Host sono stati raggruppati proprio per questo motivo.
Raggruppare gli Host della stessa tipologia fa in modo che si possa creare un servizio
per quel gruppo di host.
Esposito Paolo 566/2008
Pagina 84 di 148
A questo scopo andare in “Services by hosts group” per aggiungere un nuovo servizio
su un Host Group. Qui ovviamente sarà visibile la lista di tutti gli Host Group con i
relativi servizi. Tra le varie informazioni consultabili in questa schermata, per ogni
servizio, c'è il periodo di controllo (e di retry), il template utilizzato e lo stato del
servizio, cioè se è abilitato o disabilitato. Da qui è possibile anche disabilitarlo,
disabilitandolo però anche per tutti gli altri host group.
Sempre selezionando “add” si può aggiungere un nuovo servizio. Il form per la
creazione di un nuovo servizio è quello della figura seguente:
figura 26 : Form per l'aggiunta di un nuovo servizio per host group
Esposito Paolo 566/2008
Pagina 85 di 148
Precedentemente si è visto come aggiungere un comando per il plugin check_memory.
Se si volesse creare un servizio che implementi questo controllo, alla voce “check
command”, selezionare dal menu a tendina lo script check_memory.
Nelle informazioni generali inserire un nome del servizio che ricordi il comando
utilizzato e selezionare il template precedentemente creato.
Le altre informazioni sottostanti possono essere lasciate vuote in quanto sono già
comprese nel template. Nel caso che si specifichi un valore diverso in questi campi
sarà preso in considerazione al posto di quello presente nel template.
Le informazioni di base per il servizio sono state inserite, non resta che specificare gli
host group sul quale renderlo attivo. Per far ciò si deve passare alla tab “relations”. Per
creare il collegamento tra il servizio e il gruppo di host, nella schermata “Linked with
HostGroup” si deve aggiungere il gruppo\i dalla lista di quelli disponibili. Fatto
questo non resta che salvare il servizio creato.
Con la creazione del servizio il processo di configurazione con Centreon è terminato,
non resta che esportare la configurazione per il Nagios.
Per esportare la configurazione e rendere attivi le modifiche andare alla voce “nagios”,
mettere una spunta a “move export file” e “restart nagios”, selezionare come metodo
“reload” e premere sul tasto “export”.
Dopo pochi secondi dovrebbe uscire un riepilogo delle operazioni fatte ed
eventualmente dei warning e critical.
I warning solitamente si riferiscono a degli host che non hanno associato alcun
servizio. Questo host vengono anche specificati. I critical invece se quanto fatto non è
stato fatto correttamente.
Esposito Paolo 566/2008
Pagina 86 di 148
La verifica delle operazioni fatte può essere visualizzata in Nagios, ma così come in
Nagios può essere vista anche in Centreon in quanto è esso stesso un tool di
monitoraggio. Nel prossimo paragrafo viene illustrata questa funzionalità di
monitoraggio.
5.4. Centreon come Tool di monitoraggio
Una volta esportato il file di configurazione per nagios è possibile monitorare lo stato
dei servizi anche da Centreon. Nell'introduzione di questo capitolo si è visto che, nella
home di Centreon, è visibile la “Tactical Overview” per un sommario sullo stato dei
servizi e degli host. Del resto è la stessa che è visualizzabile da Nagios.
Nel menu principale, subito dopo la voce “Home”, c'è “Monitoring”.
Il monitoraggio è diviso in 3 sezioni: Services, Hosts e Event Log.
Come è intuibile dal nome la prima permette di monitorare tutto quello che riguarda i
Servizi, la seconda quello che riguarda gli Host e l'ultima il log degli eventi.
La sezione Services permette di vedere:
•
Services Problems
Visualizza tutti i servizi che hanno problemi. In particolare per ogni servizio
non funzionante si può vedere l'host sul quale ha un problema, lo stato del
servizio (warning, critical, unknown), la durata del servizio, quando è stato
effettuato l'ultimo controllo, quante volte è stato provato e in fine l'output
dell'errore. Si possono questi servizi per lo stato del servizio visualizzando solo
quelli che hanno un warning, un critical o un unknown. Passando il mouse sul
Esposito Paolo 566/2008
Pagina 87 di 148
nome del servizio si possono visualizzare informazioni più dettagliate come
quando ci sarà il prossimo controllo oppure la latenza. Si può anche cliccare sul
servizio in modo da vedere la schermata dei dettagli
•
All Services
A differenza del precedente qui vengono visualizzati tutti i servizi. Le
informazioni a disposizione sono le stesse visibili in Services Problems, anche
qui passando il puntatore sopra il nome del servizio si vedono informazioni
dettagliate. L'unico filtraggio che si può fare in questa voce è quello dei servizi
funzionanti. Si possono vedere quindi tutti i servizi che ritornano lo stato OK.
•
Grids
Un elenco di tutti gli host, per ogni host una lista di tutti i servizi attivi, con
relativo colore che indica lo stato del servizio. Anche qui si può cliccare su un
servizio per vederne i dettagli. È possibile filtrare visualizzando solo quelli che
hanno problemi.
•
Overview
Simile a Grids con l'aggiunta di un'unica informazione: Lo stato del Host.
•
Summary
Un elenco di tutti gli host, raggruppati per Host Group. Per ogni host c'è il
numero di servizi che funzionano, il numero di quelli che hanno un warning o il
numero di quelli che hanno un critical. Si possono filtrare vedendo solo quelli
che hanno problemi.
In aggiunta alla versione precedente di Centreon c'è anche una funzionalità che
permette la creazione dei grafici per ogni servizio.
In tutte le voci elencate sopra, di fianco ad ogni servizio, c'è un'icona che rappresenta il
grafico. Si può visualizzare il grafico semplicemente passando con il puntatore sopra
Esposito Paolo 566/2008
Pagina 88 di 148
l'icona, oppure entrando nei dettagli del servizio selezionando il nome del servizio.
C'è proprio una voce del menu dedicata al visualizzazione dei grafici, chiamata
“Views”.
Qui si possono vedere tutti i grafici specificando un intervallo di due periodi di tempo
(data e ora), oppure si può entrare nello specifico selezionando un determinato Host
Group, Host o Servizio e vedere tutti i grafici. Selezionando un Host Group si vedono
tutti i grafici di tutti i servizi di tutti gli Host di quel gruppo. Selezionando un Host si
vedono tutti i grafici di tutti i servizi di quel Host. Selezionando invece un Servizio si
vede solo il grafico relativo a quel servizio.
figura 27 : grafico per il servizio check_memory su atlasce01
Nella figura precedente si vede il grafico del servizio check_memory attivo sul host
atlasce01. Il grafico fa riferimento ad un periodo di 3 giorni
I grafici generalmente vengono generati in automatico prendendo i parametri di output
dagli script. Non tutti gli script però hanno un grafico. Questo perchè i grafici vengono
costruiti su dei dati ritornati dagli script. Questi dati prendono il nome di perfdata
(performance data).
Se uno script non ha dei perfdata, ma solo uno stato, allora Centreon non ha modo di
costruire un grafico.
Esposito Paolo 566/2008
Pagina 89 di 148
6.
Creazione delle mappe con Nagvis
Tutto quello che è stato fatto fin'ora permette di visualizzare lo stato dei servizi
all'interno di una tabella che elenca gli stessi e gli host sui quali sono attivi.
Sicuramente quanto fatto è sufficiente ad avere una panoramica generale delle risorse
dei nodi in quanto le informazioni ottenute sono complete ed esaurienti. È anche vero
però che visualizzare le informazioni in questa forma tabellare non è il massimo
dell'efficienza.
Viene in aiuto agli amministratori del sistema un altro addon di Nagios installato, così
come Centreon, nel pacchetto FAN 2.0: Nagvis.
Nagvis è usato per dare una visuale grafica ai dati di Nagios con la possibilità di
aggiungere mappe in formato png.
Su ogni mappa c'è la possibilità di inserire delle “service icon” che fanno riferimento
ad i servizi e cambiano icona e colore a seconda dello stato degli stessi.
Precedentemente tutti gli apparati della rete sono stati raggruppati per tipologia e rack
di appartenenza, per poi essere suddivisi tra quelli che appartengono a SCoPE
Esposito Paolo 566/2008
Pagina 90 di 148
Datacenter e quelli che appartengono invece a ATLAS Datacenter.
Tutto questo lavoro di raggruppamento è stato fatto principalmente per poter essere
utilizzato in Nagvis.
Si parte da una mappa generale, visibile in figura 28, nella quale sono rappresentati
tutte le tipologie di apparati: Storage Elements, Worker Nodes, Service Nodes, CMC,
Switch, Router e UPS. Per alcuni di essi c'è la distinzione (L1 e L2) tra la locazione
nel datacenter, come spiega la legenda in basso alla mappa.
Per ogni tipologia c'è una icona che si riferisce al gruppo, ai suoi host e ai servizi attivi
su essi.
figura 28 : mappa principale visibile dalla home di tier2.na.infn.it
Questa mappa è visualizzabile dalla home del portale di Liferay, raggiungibile
dall'indirizzo tier2.na.infn.it.
Esposito Paolo 566/2008
Pagina 91 di 148
L'obbiettivo è quello di visualizzare, da questa mappa, la stato generale dei servizi per
ogni tipologia di apparato, in modo da inquadrare più velocemente il problema che si
presenta.
L'icona verde indica che tutti i servizi relativi a quella tipologia restituiscono uno stato
di OK. L'icona gialla indica che almeno un servizio di quella tipologia restituisce un
warning. L'icona rossa indica che almeno un servizio di quella tipologia restituisce lo
stato critical. L'icone grigia invece indica che almeno un servizio restituisce lo stato
unknown.
Portando il puntatore del mouse su una di queste icone, si visualizza un elenco
(ridotto) degli apparati che fanno parte di quella tipologia, con il relativo stato del host,
stato del servizio e numero dei servizi che sono in quello stato, come si vede in figura
29.
Esposito Paolo 566/2008
Pagina 92 di 148
figura 29 : mappa principale, sommario servizi sui Service Node
Questa mappa è stata resa anche navigabile. Selezionando infatti una delle icone, si
accede ad una mappa più dettagliata nella quale sono visibili i singoli apparati
all'interno dei rack. Nella figura 30 c'è la mappa dei Service Node.
Quasi tutte le icone visibili nella mappa generale sono navigabili nel dettaglio. Anche
nella legenda sotto a questo riquadro ci sono 2 icone navigabili, che si riferiscono però
a tutti gli apparati del datacenter di SCoPE e di ATLAS. Quindi, in Centreon, sono stati
creati anche questi due gruppi. Non sono navigabili invece le icone degli UPS.
Nella mappa dettagliata ci sono altre icone, questa volta si riferiscono al singolo host.
Passando il mouse su queste icone si vede, in dettaglio, lo stato di tutti i servizi attivi
su quel host più altre informazioni generali sullo stato del host. Nella figura 30 c'è il
dettaglio dei servizi per atlasce01.
Esposito Paolo 566/2008
Pagina 93 di 148
figura 30 : mappa nel dettaglio dei Service Node
Si può ancora scendere nel dettaglio selezionando il singolo host. In questo caso si
accede direttamente alla Web Management dell'apparato. Si apre in una nuova pagina
la home della web management con la schermata di autenticazione.
Nella figura seguente la Web Management di atlasce01.
Esposito Paolo 566/2008
Pagina 94 di 148
figura 31 : web management di atlasce01
Queste mappe costituiscono l'obiettivo finale del lavoro di tesi e sono da considerarsi
il risultato finale di tutto il lavoro fatto con NAGIOS, NRPE e Centreon. I precedenti
capitoli infatti descrivono tutto il lavoro che c'è dietro.
Le mappe sono state ottenute con una procedura che viene spiegata dettagliatamente
nei prossimi paragrafi. In questo capitolo vengono illustrate solo alcune mappe allo
scopo di spiegare il risultato ottenuto e i passi necessari per ottenerlo. Tutte le mappe
sono incluse nel capitolo dell'appendice.
Esposito Paolo 566/2008
Pagina 95 di 148
6.1. Inserire una mappa
Per la creazione di una mappa con Nagvis si deve partire da una base, una immagine
png esterna da importare in Nagvis.
Le immagini delle mappe generali, visualizzabili entrando nel dettaglio dalla legenda
in basso, sono state create per un'altra tesi (Un sistema di monitoraggio per una rete ad
alte prestazioni e ad alte affidabilità). Quindi il lavoro è stato fatto con l'ausilio di
queste mappe. Da queste mappe sono state create infatti quelle specifiche per ogni
tipologia di apparato.
Per importare una mappa in Nagvis è necessario fare 2 operazioni: La prima
operazione è quella di caricare, sul server di tier2-nagios, l'immagine in formato png.
La seconda operazione è invece quella di creare, per ogni immagine, un file di
configurazione omonimo con estensione cfg.
Le immagini png sono tutte della stessa risoluzione (900x704) tranne quella principale
nella home. I file png devono essere caricati su tier2-nagios, nella directory:
/usr/share/nagios/nagvis/nagvis/images/maps/
Inserito questo file png nella directory delle mappe, si deve creare un file di
configurazione nella directory:
/usr/share/nagios/nagvis/etc/maps/
Carichiamo per esempio l'immagine “Tier2_INFN_SN.png” , quella utilizzata per la
mappa della figura 30. Nel percorso per i file di configurazione delle mappe si deve
creare un file “Tier2_INFN_SN.cfg”. Questo file, inizialmente vuoto, deve avere una
struttura iniziale definita così:
define global {
Esposito Paolo 566/2008
Pagina 96 di 148
allowed_user=EVERYONE
allowed_for_config=EVERYONE
iconset=std_medium
map_image=Tier2_INFN_SN.png
}
Qui si devono specificare gli utenti che possono visualizzare e modificare la mappa, la
grandezza dell'icona e il file png di riferimento.
Sono sufficienti queste poche informazioni per creare una mappa. La mappa
ovviamente è inizialmente vuota e mostra semplicemente l'immagine png.
Per accedere alla mappa tramite Nagvis e modificarla si può andare direttamente
all'indirizzo:
http://tier2-nagios.na.infn.it/nagios/nagvis/wui/
Da qui si può, con il tasto destro del mouse, aprire una delle mappe caricate, per
esempio, Tier2_INFN_SN, della quale è stato creato il file di configurazione
precedentemente.
Esposito Paolo 566/2008
Pagina 97 di 148
6.2. Editor di mappe
Come si è visto nel paragrafo precedente, per creare una mappa sono sufficienti poche
righe di codice nel suo file di configurazione, per specificare il nome della mappa e il
nome del file png.
Questo file di configurazione però corrisponde a quello di una mappa vuota.
Aggiungendo oggetti sulla mappa, per ogni oggetto, viene creata una nuova struttura
all'interno del file.
Si parla di oggetti da aggiungere alla mappa, definiamo quindi cosa sono questi
oggetti.
Ci sono 3 tipologie di oggetti che si possono aggiungere: icone, line e oggetti speciali.
Per adesso gli oggetti speciali sono solo due: campi di testo e pulsanti di collegamento.
I pulsanti di collegamento possono (e vengono) utilizzati come pulsanti utili per
tornare alla pagina precedente. Questi pulsanti sono stati aggiunti su ogni mappa, di
fianco al titolo in alto, e hanno una forma a freccia, indirizzata verso sinistra, che sta
ad indicare appunto la sua funzionalità.
Nella figura 32 si può vedere come è fatto questo pulsante.
Ogni volta che si aggiunge un oggetto, questo inizialmente prende dimensioni, aspetto
e funzionalità di default. Passando con il mouse sull'oggetto in questione, compare un
menù con un elenco di tutti i parametri modificabili dell'oggetto e con due possibili
opzioni: eliminare l'oggetto e modificarlo. I parametri dipendono dal tipo di oggetto
creato.
Cliccando su modifica si possono ovviamente modificare tutti i parametri e
personalizzare quindi l'oggetto. I parametri già personalizzati sono quelli evidenziati in
nero, sotto la voce “Configured”. Quelli grigi invece hanno i valori di default e si
trovano sotto la voce “Inherited”. Di seguito il menù per il tasto che porta alla pagina
precedente:
Esposito Paolo 566/2008
Pagina 98 di 148
figura 32 : parametri per gli oggetti
Questo tipo di oggetto è chiamato Shape. Come detto la creazione di questo oggetto
genera una nuova struttura nel file di configurazione, che contiene solo i parametri
Configured. Infatti, sotto quella inizialmente creata per il caricamento della mappa, c'è
quella appena aggiunta:
define shape {
icon=B-dietro.png
x=677
y=5
url=index.php?map=atlas
}
Qui possiamo notare 4 parametri. Il primo è l'immagine png utilizzata per questo
collegamento, immagine aggiunta successivamente quindi non di default.
Il secondo e il terzo parametro indicano la posizione del pulsante sullo schermo.
Esposito Paolo 566/2008
Pagina 99 di 148
L'ultimo parametro invece il collegamento del pulsante. In questo caso è stata scelta la
mappa principale.
Da questo si può fare una considerazione. Se si può aggiungere un oggetto
graficamente personalizzandolo e si crea così una nuova voce nel file di
configurazione, allora si può anche l'opposto. Si può aggiungere direttamente la voce
nel file di configurazione e vedere così, graficamente l'oggetto creato.
L'altra tipologia di oggetto utilizzata, come si è visto nelle figure 28,29 e 30, sono le
icone. Le icone possono far riferimento ad un Host, Servizio, gruppo di Host, gruppo
di Servizi e Mappa. L'icona di Host, la più usata in questo lavoro, oltre a mostrare le
informazioni generali sullo stato del host, mostra anche un sommario sullo stato dei
servizi ed un elenco con tutti i servizi con relativo stato e output. Icone per host sono
tutte quelle della figura 30, nella quale si vede lo stato dei servizi della macchina
atlasce01.
Nella figura 29 invece si vedono tutte le icone di gruppi di Host.
Anche le due icone della legenda (figura 28) sono riferite a gruppi di host. Le icone
degli UPS sono icone di host. Quella invece in alto è una icona del tipo mappa.
L'unica icona non utilizzata è quella per i singoli servizi.
Si è visto nel dettaglio l'oggetto special di tipo Shape. L'oggetto icon di tipo Host ha
molti parametri in più che possono essere modificati. Nella figura 33 si vedono i
parametri per la Icon Host di atlasce01
Esposito Paolo 566/2008
Pagina 100 di 148
figura 32 : parametri dell'icona di atlasce01
Vediamo anche cosa viene aggiunto nel file di configurazione:
define host {
url=http://tier2-nagios.na.infn.it/checkaccess.php?address=http://atlasce01.na.infn.it
url_target=_blank
host_name=atlasce01.na.infn.it
x=592
y=320
iconset=std_mini
Esposito Paolo 566/2008
Pagina 101 di 148
Si può notare che, a differenza del “define shape”, non c'è più l'immagine png da usare
per l'oggetto, in quanto le icone hanno immagini prestabilite che cambiano a seconda
dello stato dei servizi. C'è invece la grandezza dell'icona. È stato aggiunto anche qui
un url, infatti selezionando l'icona si va all'indirizzo specificato che rappresenta la web
management. Il discorso però della web management e degli url viene affrontato nel
prossimi paragrafo.
L'oggetto icona per gli hostgroup è praticamente identico a quello delle icone per gli
host. Identico per quanto riguarda i parametri. L'unica differenza, oltre ovviamente a
quello che si controlla, è da ricercarsi nel file di configurazione.
Si può notare che al posto del “define host” c'è un “define hostgroup”.
Anche per l'icona della mappa, che vede lo stato generale di tutto quello incluso in
quella mappa, è uguale fatta eccezione per il define, che questa volta è “define map”.
Con questo si è fatta una panoramica di tutti gli oggetti utilizzati nelle mappe. Si è
visto a cosa servono e come personalizzarli. Le mappe complete sono visibili
nell'appendice.
L'unico aspetto rimasto, che è stato volutamente messo da parte per essere affrontato
dettagliatamente, è quello che riguarda la Web Management.
6.3. Url e Web Management
Accedere alla Web Management di un apparato è una delle finalità di questo lavoro di
tesi. Una volta completate le mappe, l'amministratore della rete ha a disposizione la
mappa principale dalla quale è visibile un quadro generale dello stato dei servizi su
tutti gli apparati.
Nel caso ci sia un problema su un determinato apparato, l'amministratore deve poter
ovviamente accedere a questo apparato per controllarne la causa. Per questo motivo è
Esposito Paolo 566/2008
Pagina 102 di 148
stata implementata la possibilità di poter cliccare su una singola icona di host per
essere indirizzati direttamente alla sua web management.
Di default queste icone hanno già un collegamento, specificato nel campo url e
url_target. Il collegamento di default apre una pagina generata automaticamente dove
sono visualizzabili le informazioni sui servizi di quel host. Queste informazioni però
sono ridondanti in quanto già visualizzabili dalla mappa sulla quale è presente questa
icona di host. Quindi il collegamento a questa pagina risulta inutile.
Il collegamento, come già detto, è messo di default. Per toglierlo e fare in modo che
l'icona non punti a niente si deve andare nel file di configurazione, rintracciare il
define relativo a quell'icona, e aggiungere dentro il define:
url=
In questo modo l'icona risulta non cliccabile. Questo è stato fatto per gli apparati che
non hanno una web management, cioè per tutti gli ups, tranne upsmon250.na.infn.it.
Anche per l'icona della mappa è stato disabilitato l'url.
Lì dove si inserisce invece un url, si deve specificare un “url_target”, cioè dove aprire
l'url. Di default l'url target ha il valore “_self”, che indica che il link deve essere aperto
nella stessa pagina. Questo ovviamente può essere alquanto fastidioso in quanto,
piuttosto sarebbe meglio aprire la web management in un'altra pagina.
Questo si fa inserendo il seguente valore:
url_target = _blank
Per accedere all'interfaccia grafica della web management si deve inserire, nel campo
url, l'host name della macchina preceduto da “ipmi-”
Esposito Paolo 566/2008
Pagina 103 di 148
Questo va fatto in tutti i casi tranne che per gli switch.
Alcuni host non hanno ancora un'interfaccia, ma l'indirizzo del'url è stato comunque
messo in previsione di un funzionamento futuro.
Gli indirizzi non sono raggiungibili dall'esterno, ma solo dall'interno della rete. Quindi
provando ad andare sulla web management dall'esterno si visualizza un “impossibile
visualizzare la pagina”. Si è voluto sostituire questa pagina di errore generico con una
pagina personalizzata che spiegasse il motivo dell'impossibilità di accedere a quel link.
In particolare per la mancanza di permessi potendoci accedere solo chi è interno alla
rete.
È stata quindi fatta una pagina di errore in html con un segnale di divieto d'accesso.
Di seguito il codice della pagina errore.html:
<html>
<head>
<title>Accesso Negato</title>
</head>
<body>
<p align='center'>
<font size="12"> Access forbidden! </font> <br> </p>
<p align='center'>
You don't have permission to access the request page<br><br><br>
<img src="noaccess.jpg" title="Accesso Negato" alt="Accesso Negato" width="224"
height="200" />
</p>
</body>
Esposito Paolo 566/2008
Pagina 104 di 148
</html>
Ora il problema è come e quando mostrare questa pagina.
Per far questo si è dovuto creare un ulteriore file, questa volta in php, che facesse il
controllo sull'indirizzo che sta cercando di accedere a quella pagina.
Se l'indirizzo è esterno si fa un redirect alla pagina di errore altrimenti si va
all'interfaccia grafica della Web Management.
Nell'url di ogni icona di host quindi è necessario inserire un collegamento a questo file
php, chiamato “checkaccess.php”. Il file php però ha bisogno di sapere da quale icona
di host è stato chiamato e quindi quale indirizzo di host utilizzare.
La soluzione più semplice è passare, come parametro al file php, l'host name che lo sta
chiamando. Per capire meglio l'indirizzo completo, di seguito l'url per atlasce01:
http://tier2-nagios.na.infn.it/checkaccess.php?address=http://ipmi-atlasce01.na.infn.it
Quindi l'indirizzo è quello del file checkaccess.php al quale si passa come parametro
address (tramite il punto interrogativo) l'host name. Tutti gli url alla web management
degli host sono visibili dal file di configurazione della mappa che li contiene.
Il file checkaccess.php si trova, così come errore.html, nella directory /var/www/html
di tier2-nagios. Di seguito il suo codice:
<?php
$ip=$_SERVER['REMOTE_ADDR'];
if ((($ip[0]=="1") && ($ip[1]=="7") && ($ip[2]=="3") && ($ip[4]=="1") &&
($ip[5]=="6")) || (($ip[0]=="1") && ($ip[1]=="9") && ($ip[2]=="2") &&
($ip[4]=="8") && ($ip[5]=="4") && ($ip[7]=="1") && ($ip[8]=="3") &&
($ip[9]=="4") && ($ip[11]=="2") && ($ip[12]=="3") && ($ip[13]=="0")))
Esposito Paolo 566/2008
Pagina 105 di 148
{
$address=$_GET['address'];
header("location: $address");
}
else
{
header("location: /errore.html");
}
?>
Con questo si può dire completato il mio lavoro. Il codice dei file di configurazione
delle mappe è incluso, così come le immagini delle mappe, nell'appendice.
Esposito Paolo 566/2008
Pagina 106 di 148
7. Conclusioni
Come si evince dalla lettura di questa tesi NAGIOS è una applicazione open source
completa che risulta essere una valida alternativa agli altri tool di monitoraggio
reperibili a pagamento. Garanzia di validità è proprio questo lavoro svolto su una rete
grande ed eterogenea come quella del Tier2-Napoli.
Grazie alla sua diffusione, il suo utilizzo è accompagnato da nuove release che
vengono incontro alle nuove necessità che si presentano, addon sempre più funzionali
per una migliore gestione dell'applicazione e da una documentazione oramai
collaudata per una corretta installazione, configurazione e risoluzione di eventuali
problemi.
Unico limite evidente è il suo impossibile utilizzo su piattaforma windows.
Questa tesi si pone come obiettivo quello di guidare, passo per passo, chiunque abbia
la necessità di installare una applicazione di monitoraggio per le risorse di una rete. In
particolare si concentra sul monitoraggio di risorse locali di host remoti.
Proprio per questo motivo, molti aspetti sono stati affrontati anche in maniera
generale, potendo essere d'aiuto a chi avesse necessità o problemi diversi.
Altri aspetti correlati invece sono stati solamente accennati e brevemente descritti in
quanto complementari a questo lavoro di tesi oppure già affrontati in altri lavori.
Si è infatti detto che l'applicazione Nagios è stata inserita all'interno di una portlet, di
un portale liferay. Le problematiche relative all'installazione del portale e
all'integrazione di applicazioni all'interno delle portlet sono ampiamente affrontare in
un altro lavoro di tesi fatto in questo laboratorio.
Se ci fosse quindi il bisogno di ampliare il lavoro ad un EIP aziendale si può integrare
quanto scritto qui, con il lavoro svolto in quest'altra tesi che prende il nome di: “Un
Esposito Paolo 566/2008
Pagina 107 di 148
Sistema di Monitoraggio per il Tier2-ATLAS dell' INFN”.
Così come questo lavoro di tesi può essere considerato il continuo di un altro lavoro, è
da considerarsi a sua volta una base per lavori futuri facendo parte di un progetto più
ampio. Il prossimo passo infatti, già in corso, è quello di sviluppare ulteriormente il
lato che riguarda la Web Management introducendo, per esempio, la possibilità di un
Single Sign On. Attualmente infatti ci si deve autenticare più volte. Una volta
all'ingresso del portale e ogni volta che si vuole accedere all'interfaccia grafica della
Web Mangement di un apparato. Con il SSO invece ci si autenticherà solo una volta al
portale e, in base ai permessi sul proprio profilo, si potrà direttamente accedere o meno
ad un apparato senza passare di nuovo per l'autenticazione.
Ulteriori sviluppi futuri prevedono anche l'utilizzo dei grafici generati per ogni
servizio e l'aggiunta di nuovi script per il monitoraggio di altre risorse.
Si ricorda inoltre che questo lavoro rientra nell'ambito del progetto ATLAS a Napoli.
È stato anche presentato alla Conferenza del GARR che si è svolta a Torino dal 26 al
28 Ottobre 2010 come parte di un portale di monitoraggio centralizzato per i centri di
calcolo distribuito.
Esposito Paolo 566/2008
Pagina 108 di 148
8. Appendice
8.1. File di Configurazione delle Mappe
define global {
allowed_user=EVERYONE
allowed_for_config=EVERYONE
iconset=std_medium
map_image=ATLASv2n800_legenda.png
}
define hostgroup {
url=index.php?map=Tier2_INFN_CMC
iconset=std_small
hostgroup_name=CMC_atlas
x=523
y=356
}
define hostgroup {
url=index.php?map=Tier2_INFN_WN
iconset=std_small
hostgroup_name=Atlas_Worker_Nodes
x=700
y=172
}
define hostgroup {
url=index.php?map=Tier2_INFN_SW
iconset=std_small
hostgroup_name=Atlas_Switchs
x=610
y=313
}
define host {
iconset=std_small
host_name=upsmonatlas01.na.infn.it
x=190
y=146
url=
}
define host {
iconset=std_small
host_name=upsmonatlas02.na.infn.it
x=269
y=146
Esposito Paolo 566/2008
Pagina 109 di 148
url=
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=upsmon250.na.infn.it
iconset=std_small
host_name=upsmon250.na.infn.it
x=72
y=147
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=upsmon400a.na.infn.it
iconset=std_small
host_name=upsmon400a.na.infn.it
x=144
y=266
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=upsmon400b.na.infn.it
iconset=std_small
host_name=upsmon400b.na.infn.it
x=221
y=276
}
define map {
iconset=std_small
map_name=atlas
x=347
y=31
url=
}
define hostgroup {
url=/nagios/nagvis/nagvis/index.php?map=Tier2_INFN-900
hostgroup_name=Atlas_Device
x=395
y=503
iconset=std_small
}
define hostgroup {
Esposito Paolo 566/2008
Pagina 110 di 148
url=index.php?map=Tier2_SCOPE_WN
hostgroup_name=Scope_Worker_Nodes
x=729
y=172
iconset=std_small
}
define hostgroup {
url=/nagios/nagvis/nagvis/index.php?map=Tier2_SCOPE_1-900
hostgroup_name=Scope_Device
x=395
y=522
iconset=std_small
}
define hostgroup {
url=index.php?map=Tier2_INFN_SN
hostgroup_name=Service_Nodes
x=641
y=222
iconset=std_small
}
define hostgroup {
url=index.php?map=Tier2_INFN_Router
hostgroup_name=Cisco_routers
x=594
y=462
iconset=std_small
}
define hostgroup {
url=index.php?map=Tier2_SCOPE_SW
hostgroup_name=Scope_Switchs
x=639
y=313
iconset=std_small
}
define hostgroup {
url=index.php?map=Tier2_SCOPE_CMC
hostgroup_name=CMC_scope
x=552
y=356
iconset=std_small
}
define hostgroup {
url=index.php?map=Tier2_INFN_SE
hostgroup_name=Atlas_Storage_Elements
Esposito Paolo 566/2008
Pagina 111 di 148
x=436
y=173
iconset=std_small
}
define hostgroup {
url=index.php?map=Tier2_SCOPE_SE
hostgroup_name=Scope_SE_DBoxController
x=465
y=173
iconset=std_small
}
define global {
allowed_user=EVERYONE
allowed_for_config=EVERYONE
iconset=std_medium
map_image=Tier2_INFN_Router.png
}
define host {
url_target=_blank
url=http://router-atlas.na.infn.it
host_name=router-atlas.na.infn.it
x=438
y=189
iconset=std_mini
}
define shape {
icon=B-dietro.png
x=680
y=5
url=index.php?map=atlas
}
define global {
allowed_user=EVERYONE
allowed_for_config=EVERYONE
iconset=std_medium
map_image=Tier2_INFN_SE.png
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
Esposito Paolo 566/2008
Pagina 112 di 148
address=http://atlasse03.na.infn.it
host_name=atlasse03.na.infn.it
x=292
y=326
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://atlasse02.na.infn.it
host_name=atlasse02.na.infn.it
x=292
y=339
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlasse06.na.infn.it
host_name=atlasse06.na.infn.it
x=583
y=230
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlasse07.na.infn.it
host_name=atlasse07.na.infn.it
x=583
y=243
iconset=std_mini
}
define shape {
icon=B-dietro.png
x=709
y=5
url=index.php?map=atlas
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlasse04.na.infn.it
host_name=atlasse04.na.infn.it
x=583
Esposito Paolo 566/2008
Pagina 113 di 148
y=324
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlasse05.na.infn.it
host_name=atlasse05.na.infn.it
x=583
y=336
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://t2-dpm-01.na.infn.it
host_name=t2-dpm-01.na.infn.it
x=583
y=206
iconset=std_mini
}
define global {
allowed_user=EVERYONE
allowed_for_config=EVERYONE
iconset=std_medium
map_image=Tier2_SCOPE_CMC.png
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://172.21.0.76
host_name=rack26scope
x=478
y=371
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://172.21.0.77
host_name=cmcRack27scope
x=477
Esposito Paolo 566/2008
Pagina 114 di 148
y=318
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://172.21.0.78
host_name=cmcRack28scope
x=476
y=262
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://172.21.0.81
host_name=cmcRack31scope
x=753
y=318
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://172.21.0.82
host_name=rack32scope
x=752
y=261
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://172.21.0.83
host_name=rack33scope
x=753
y=207
iconset=std_mini
}
define shape {
icon=B-dietro.png
x=686
y=5
url=index.php?map=atlas
}
Esposito Paolo 566/2008
Pagina 115 di 148
define global {
allowed_user=EVERYONE
allowed_for_config=EVERYONE
iconset=std_medium
map_image=Tier2_INFN_SN.png
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://monitor.na.infn.it
host_name=monitor.na.infn.it
x=293
y=216
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://t2-hlr-01.na.infn.it
host_name=t2-hlr-01.na.infn.it
x=293
y=233
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://atlasui01.na.infn.it
host_name=atlasui01.na.infn.it
x=293
y=257
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://atlasui02.na.infn.it
host_name=atlasui02.na.infn.it
x=293
y=275
iconset=std_mini
}
Esposito Paolo 566/2008
Pagina 116 di 148
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://atlas-squid.na.infn.it
host_name=atlas-squid.na.infn.it
x=586
y=242
iconset=std_mini
}
define host {
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlasce01.na.infn.it
url_target=_blank
host_name=atlasce01.na.infn.it
x=592
y=320
iconset=std_mini
}
define shape {
icon=B-dietro.png
x=677
y=5
url=index.php?map=atlas
}
define global {
allowed_user=EVERYONE
allowed_for_config=EVERYONE
iconset=std_medium
map_image=Tier2_SCOPE_SE.png
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlasse08.na.infn.it
host_name=atlasse08.na.infn.it
x=185
y=202
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlasse09.na.infn.it
host_name=atlasse09.na.infn.it
Esposito Paolo 566/2008
Pagina 117 di 148
x=185
y=216
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://atlas-e4-03a.na.infn.it
host_name=atlas-e4-03a
x=185
y=247
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://atlas-e4-03b.na.infn.it
host_name=atlas-e4-03b
x=185
y=261
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlasse10.na.infn.it
host_name=atlasse10.na.infn.it
x=437
y=264
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlasse11.na.infn.it
host_name=atlasse11.na.infn.it
x=437
y=276
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://atlas-e4-04a.na.infn.it
host_name=atlas-e4-04a
Esposito Paolo 566/2008
Pagina 118 di 148
x=437
y=304
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://atlas-e4-04b.na.infn.it
host_name=atlas-e4-04b
x=437
y=318
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlasse12.na.infn.it
host_name=atlasse12.na.infn.it
x=687
y=329
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlasse13.na.infn.it
host_name=atlasse13.na.infn.it
x=687
y=344
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlasse14.na.infn.it
host_name=atlasse14.na.infn.it
x=687
y=358
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlasse15.na.infn.it
host_name=atlasse15.na.infn.it
Esposito Paolo 566/2008
Pagina 119 di 148
x=687
y=372
iconset=std_mini
}
define shape {
icon=B-dietro.png
x=823
y=5
url=index.php?map=atlas
}
define global {
allowed_user=EVERYONE
allowed_for_config=EVERYONE
iconset=std_medium
map_image=Tier2_INFN_SW.png
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://sw3com-atlas01.na.infn.it
host_name=sw3com-atlas01
x=81
y=137
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://sw3com-atlas02.na.infn.it
host_name=sw3com-atlas02
x=351
y=155
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://swlinksys-cs.na.infn.it
host_name=swlinksys-cs
x=581
y=133
iconset=std_mini
Esposito Paolo 566/2008
Pagina 120 di 148
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://swdell-scope01.na.infn.it
host_name=swdell-scope01
x=581
y=147
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://sw3com-atlas03.na.infn.it
host_name=sw3com-atlas03
x=797
y=132
iconset=std_mini
}
define shape {
icon=B-dietro.png
x=618
y=5
url=index.php?map=atlas
}
define global {
allowed_user=EVERYONE
allowed_for_config=EVERYONE
iconset=std_medium
map_image=Tier2_SCOPE_SW.png
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://cat2960-atlas01.na.infn.it
host_name=cat2960-atlas01
x=432
y=203
iconset=std_mini
}
define host {
url_target=_blank
Esposito Paolo 566/2008
Pagina 121 di 148
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://swdell-atlas01.na.infn.it
host_name=swdell-atlas01
x=432
y=235
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://swdell-atlas02.na.infn.it
host_name=swdell-atlas02
x=432
y=292
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://sw3com-atlas04.na.infn.it
host_name=sw3com-atlas04
x=432
y=345
iconset=std_mini
}
define shape {
icon=B-dietro.png
x=724
y=5
url=index.php?map=atlas
}
define global {
allowed_user=EVERYONE
allowed_for_config=EVERYONE
iconset=std_medium
map_image=Tier2_INFN_WN.png
}
define host {
url_target=_blank
url=http://ipmi-atlaswn09.na.infn.it
host_name=atlaswn09.na.infn.it
x=445
y=343
Esposito Paolo 566/2008
Pagina 122 di 148
iconset=std_mini
}
define host {
url_target=_blank
url=http://ipmi-atlaswn10.na.infn.it
host_name=atlaswn10.na.infn.it
x=445
y=356
iconset=std_mini
}
define host {
url_target=_blank
url=http://ipmi-atlaswn11.na.infn.it
host_name=atlaswn11.na.infn.it
x=445
y=369
iconset=std_mini
}
define host {
url_target=_blank
url=http://ipmi-atlaswn12.na.infn.it
host_name=atlaswn12.na.infn.it
x=445
y=381
iconset=std_mini
}
define host {
url_target=_blank
url=http://ipmi-atlaswn13.na.infn.it
host_name=atlaswn13.na.infn.it
x=445
y=394
iconset=std_mini
}
define host {
url_target=_blank
url=http://ipmi-atlaswn14.na.infn.it
host_name=atlaswn14.na.infn.it
x=445
y=406
iconset=std_mini
}
define host {
url_target=_blank
Esposito Paolo 566/2008
Pagina 123 di 148
url=http://ipmi-atlaswn15.na.infn.it
host_name=atlaswn15.na.infn.it
x=445
y=419
iconset=std_mini
}
define host {
url_target=_blank
url=http://ipmi-atlaswn16.na.infn.it
host_name=atlaswn16.na.infn.it
x=445
y=431
iconset=std_mini
}
define host {
url_target=_blank
url=http://ipmi-atlaswn17.na.infn.it
host_name=atlaswn17.na.infn.it
x=445
y=444
iconset=std_mini
}
define shape {
icon=B-dietro.png
x=674
y=5
url=index.php?map=atlas
}
define global {
allowed_user=EVERYONE
allowed_for_config=EVERYONE
iconset=std_medium
map_image=Tier2_SCOPE_WN.png
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn44.na.infn.it
host_name=atlaswn44.na.infn.it
x=289
y=196
iconset=std_mini
}
Esposito Paolo 566/2008
Pagina 124 di 148
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn46.na.infn.it
host_name=atlaswn46.na.infn.it
x=289
y=209
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn48.na.infn.it
host_name=atlaswn48.na.infn.it
x=289
y=223
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn50.na.infn.it
host_name=atlaswn50.na.infn.it
x=289
y=237
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn28.na.infn.it
host_name=atlaswn28.na.infn.it
x=289
y=267
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn29.na.infn.it
host_name=atlaswn29.na.infn.it
x=289
y=280
iconset=std_mini
}
Esposito Paolo 566/2008
Pagina 125 di 148
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn30.na.infn.it
host_name=atlaswn30.na.infn.it
x=289
y=294
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn31.na.infn.it
host_name=atlaswn31.na.infn.it
x=289
y=307
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn32.na.infn.it
host_name=atlaswn32.na.infn.it
x=289
y=321
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn33.na.infn.it
host_name=atlaswn33.na.infn.it
x=289
y=335
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn34.na.infn.it
host_name=atlaswn34.na.infn.it
x=289
y=348
iconset=std_mini
Esposito Paolo 566/2008
Pagina 126 di 148
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn35.na.infn.it
host_name=atlaswn35.na.infn.it
x=289
y=362
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn18.na.infn.it
host_name=atlaswn18.na.infn.it
x=289
y=392
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn19.na.infn.it
host_name=atlaswn19.na.infn.it
x=289
y=405
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn20.na.infn.it
host_name=atlaswn20.na.infn.it
x=289
y=419
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn21.na.infn.it
host_name=atlaswn21.na.infn.it
x=289
y=433
Esposito Paolo 566/2008
Pagina 127 di 148
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn22.na.infn.it
host_name=atlaswn22.na.infn.it
x=289
y=446
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn45.na.infn.it
host_name=atlaswn45.na.infn.it
x=415
y=195
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn47.na.infn.it
host_name=atlaswn47.na.infn.it
x=415
y=208
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn49.na.infn.it
host_name=atlaswn49.na.infn.it
x=415
y=222
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn51.na.infn.it
host_name=atlaswn51.na.infn.it
x=415
Esposito Paolo 566/2008
Pagina 128 di 148
y=237
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn36.na.infn.it
host_name=atlaswn36.na.infn.it
x=415
y=266
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn37.na.infn.it
host_name=atlaswn37.na.infn.it
x=415
y=279
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn38.na.infn.it
host_name=atlaswn38.na.infn.it
x=415
y=293
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn39.na.infn.it
host_name=atlaswn39.na.infn.it
x=415
y=307
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn40.na.infn.it
host_name=atlaswn40.na.infn.it
Esposito Paolo 566/2008
Pagina 129 di 148
x=415
y=320
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn41.na.infn.it
host_name=atlaswn41.na.infn.it
x=415
y=333
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn42.na.infn.it
host_name=atlaswn42.na.infn.it
x=415
y=347
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn43.na.infn.it
host_name=atlaswn43.na.infn.it
x=415
y=361
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn23.na.infn.it
host_name=atlaswn23.na.infn.it
x=415
y=392
iconset=std_mini
}
define host {
url_target=_blank
Esposito Paolo 566/2008
Pagina 130 di 148
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn24.na.infn.it
host_name=atlaswn24.na.infn.it
x=415
y=404
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn25.na.infn.it
host_name=atlaswn25.na.infn.it
x=415
y=418
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn27.na.infn.it
host_name=atlaswn27.na.infn.it
x=415
y=446
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn07.na.infn.it
host_name=atlaswn07.na.infn.it
x=587
y=381
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn52.na.infn.it
host_name=atlaswn52.na.infn.it
x=587
y=394
iconset=std_mini
}
Esposito Paolo 566/2008
Pagina 131 di 148
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn54.na.infn.it
host_name=atlaswn54.na.infn.it
x=587
y=407
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn56.na.infn.it
host_name=atlaswn56.na.infn.it
x=587
y=420
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn26.na.infn.it
host_name=atlaswn26.na.infn.it
x=415
y=432
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn01.na.infn.it
host_name=atlaswn01.na.infn.it
x=587
y=341
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn03.na.infn.it
host_name=atlaswn03.na.infn.it
x=587
y=355
Esposito Paolo 566/2008
Pagina 132 di 148
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn05.na.infn.it
host_name=atlaswn05.na.infn.it
x=587
y=368
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn58.na.infn.it
host_name=atlaswn58.na.infn.it
x=587
y=433
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn02.na.infn.it
host_name=atlaswn02.na.infn.it
x=710
y=341
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn04.na.infn.it
host_name=atlaswn04.na.infn.it
x=710
y=355
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn06.na.infn.it
host_name=atlaswn06.na.infn.it
x=710
y=367
Esposito Paolo 566/2008
Pagina 133 di 148
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn08.na.infn.it
host_name=atlaswn08.na.infn.it
x=710
y=381
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn53.na.infn.it
host_name=atlaswn53.na.infn.it
x=710
y=394
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn55.na.infn.it
host_name=atlaswn55.na.infn.it
x=710
y=407
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn57.na.infn.it
host_name=atlaswn55.na.infn.it
x=710
y=420
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://ipmi-atlaswn59.na.infn.it
host_name=atlaswn59.na.infn.it
x=710
y=433
Esposito Paolo 566/2008
Pagina 134 di 148
iconset=std_mini
}
define shape {
icon=B-dietro.png
x=805
y=5
url=index.php?map=atlas
}
define global {
allowed_user=EVERYONE
allowed_for_config=EVERYONE
iconset=std_medium
map_image=Tier2_INFN_CMC.png
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://cmc1atlas.na.infn.it
host_name=cmc1atlas
x=221
y=313
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://cmc2atlas.na.infn.it
host_name=cmc2atlas
x=391
y=312
iconset=std_mini
}
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://cmc3atlas.na.infn.it
host_name=cmc3atlas
x=554
y=312
iconset=std_mini
}
Esposito Paolo 566/2008
Pagina 135 di 148
define host {
url_target=_blank
url=http://tier2-nagios.na.infn.it/checkaccess.php?
address=http://cmc4atlas.na.infn.it
host_name=cmc4atlas
x=720
y=312
iconset=std_mini
}
define shape {
icon=B-dietro.png
x=609
y=5
url=index.php?map=atlas
}
Esposito Paolo 566/2008
Pagina 136 di 148
8.2. Mappe
Esposito Paolo 566/2008
Pagina 137 di 148
Esposito Paolo 566/2008
Pagina 138 di 148
Esposito Paolo 566/2008
Pagina 139 di 148
Esposito Paolo 566/2008
Pagina 140 di 148
Esposito Paolo 566/2008
Pagina 141 di 148
Esposito Paolo 566/2008
Pagina 142 di 148
Esposito Paolo 566/2008
Pagina 143 di 148
Esposito Paolo 566/2008
Pagina 144 di 148
Esposito Paolo 566/2008
Pagina 145 di 148
Esposito Paolo 566/2008
Pagina 146 di 148
Esposito Paolo 566/2008
Pagina 147 di 148
Bibliografia
Centreon http://www.centreon.com/
Nagios http://www.nagios.org
Liferay http://www.liferay.com/
Nagios Plugin http://nagiosplugins.org/
Nagios and Nrpe Documentation http://nagios.sourceforge.net/docs/3_0/toc.html
ATLASItalia https://t2-wn-51.roma1.infn.it/
Guida PHP di base http://php.html.it/guide/leggi/99/guida-php-di-base/
Esposito Paolo 566/2008
Pagina 148 di 148