Old:Nagios: monitorare server e servizi: differenze tra le versioni

m
mNessun oggetto della modifica
m (→‎Come gestire al meglio i file di configurazione: corretta informazione non vera)
Riga 1: Riga 1:
Nagios ([http://www.nagios.org Home Page]) è uno strumento molto usato ed utilissimo per il monitoraggio di server e servizi. All'inizio, per molti utenti, è un po' complicato da configurare, ma dopo aver capito il funzionamento risulterà semplice, potente e versatile, attributi necessari per questo genere di strumenti.
= Introduzione =
In questa guida vedremo come installare e configurare al meglio un touchpad compatibile coi driver synaptics, utilizzato nella maggioranza dei notebook.


= Installazione =
= Installazione =
La macchina su cui verrà installato Nagios è un Debian Stable (Etch). Installeremo la versione 2 di Nagios, con i relativi pacchetti per avere un maggior numero di plugin e immagini (vedremo dopo come usarle).
I driver synaptic sono scaricabili direttamente dal repository Debian:
 
Per installare nagios è sufficiente un:
<pre>
#  apt-get install nagios2 nagios2-common nagios-plugins nagios-images nagios-plugins-basic  nagios-plugins-standard
</pre>
 
Dopo aver scaricato (sono circa 3.5Mb) ed installato nagios provvediamo all'installazione di un web server (necessario per consultare la comoda [[web-interface]]); la mia scelta è ricaduta su apache2, anche perchè il server in questione ospiterà applicazioni scritte in php. Procediamo ad installare apache2 con:
<pre>
<pre>
# apt-get install apache2 libapache2-mod-php5
# apt-get install xorg-driver-synaptics</pre>
</pre>
(xfree86-driver-synaptics se si ha Xfree).


Sono presenti, inoltre, degli utili tools di configurazione:
* gsynaptics: Per Gnome (librerie gtk)
* ksynaptics: Per kde (librerie qt)
* qsynaptics: Per tutti (librerie qt)


= Configurazione =
= Configurazione =
== Apache ==
La configurazione � semplice: � sufficiente apportare alcune modifiche al file /etc/X11/xorg.conf (o /etx/X11/XF86Config(-4) per gli utenti di Xfree).
Al momento dell'installazione viene creato in modo automatico il file <tt>/etc/apache2/conf.d/nagios2.conf</tt> (il file è, a tutti gli effetti, un link simbolico al file <tt>/etc/nagios2/apache2.conf</tt>) con il seguente contenuto:
<pre>
# apache configuration for nagios 2.x
# note to users of nagios 1.x:
# throughout this file are commented out sections which preserve
# backwards compatibility with bookmarks/config for nagios 1.x.  simply
# look for lines following "nagios 1.x:" comments.
 
ScriptAlias /cgi-bin/nagios2 /usr/lib/cgi-bin/nagios2
ScriptAlias /nagios2/cgi-bin /usr/lib/cgi-bin/nagios2
# nagios 1.x:
#ScriptAlias /cgi-bin/nagios /usr/lib/cgi-bin/nagios2
#ScriptAlias /nagios/cgi-bin /usr/lib/cgi-bin/nagios2
 
# Where the HTML pages live
Alias /nagios2 /usr/share/nagios2/htdocs
# nagios 1.x:
#Alias /nagios /usr/share/nagios2/htdocs
 
<DirectoryMatch (/usr/share/nagios2/htdocs|/usr/lib/cgi-bin/nagios2)>
Options FollowSymLinks
 
DirectoryIndex index.html
 
AllowOverride AuthConfig
Order Allow,Deny
Allow From All
 
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /etc/nagios2/htpasswd.users
# nagios 1.x:
#AuthUserFile /etc/nagios/htpasswd.users
require valid-user
</DirectoryMatch>
 
# Where the stylesheets (config files) reside
#Alias /nagios2/stylesheets /etc/nagios2/stylesheets
# nagios 1.x:
#Alias /nagios/stylesheets /etc/nagios2/stylesheets
 
# Enable this ScriptAlias if you want to enable the grouplist patch.
# See http://apan.sourceforge.net/download.html for more info
# It allows you to see a clickable list of all hostgroups in the
# left pane of the Nagios web interface
# XXX This is not tested for nagios 2.x use at your own peril
#ScriptAlias /nagios2/side.html /usr/lib/cgi-bin/nagios2/grouplist.cgi
# nagios 1.x:
#ScriptAlias /nagios/side.html /usr/lib/cgi-bin/nagios2/grouplist.cgi
</pre>
Il file contiene una bozza di configurazione per nagios che permette di raggiungere il servizio digitando, semplicemente <nowiki>http://IP/nagios2/</nowiki>. Questo sistema a me, personalmente, non piace, in quanto nagios sarebbe accessibile da qualsiasi sito ospitato sulla macchina, semplicemente digitando <nowiki>http://www.sito.it/nagios2/</nowiki>, non molto sicuro e pulito.
 
Creeremo, quindi, un sottodominio dedicato a nagios, modificando il file nel seguente modo:
<pre>
 
<VirtualHost *:80>
    ServerAdmin root@knio.it
#    DocumentRoot /var/www/nagios/
    ServerName nagios.knio.it
 
    ErrorLog /var/log/apache2/nagios.knio.it_error.log
    CustomLog /var/log/apache2/nagios.knio.it_access.log combined
 
    <Directory />
        AllowOverride All
        Options +Multiviews
        Options Indexes Includes FollowSymLinks MultiViews
        DirectoryIndex index index.html
    </Directory>
 
    ScriptAlias /cgi-bin/nagios2 /usr/lib/cgi-bin/nagios2
    ScriptAlias /nagios2/cgi-bin /usr/lib/cgi-bin/nagios2
 
   
    #Alias /nagios2/stylesheets /etc/nagios2/stylesheets
    Alias /nagios2 /usr/share/nagios2/htdocs
    # Enable this ScriptAlias if you want to enable the grouplist patch.
    # See http://apan.sourceforge.net/download.html for more info
    # It allows you to see a clickable list of all hostgroups in the
    # left pane of the Nagios web interface
    # XXX This is not tested for nagios 2.x use at your own peril
    #ScriptAlias /nagios2/side.html /usr/lib/cgi-bin/nagios2/grouplist.cgi
    <DirectoryMatch (/usr/share/nagios2/htdocs|/usr/lib/cgi-bin/nagios2)>
Options FollowSymLinks
DirectoryIndex index.html
AllowOverride AuthConfig
Order Allow,Deny
Allow From All
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /etc/nagios2/htpasswd.users
require valid-user
    </DirectoryMatch>
</VirtualHost>
</pre>
 
Creiamo la Root Directory per questo sito con:
<pre>
# mkdir  /var/www/nagios
# chown -R www-data:www-data /var/www/nagios/
# touch /var/www/nagios/index.html
</pre>
la directory conterrà un file <tt>index.html</tt> vuoto, in questo file potremmo mettere o una pagina di benvenuto oppure un redirect alla directory contenente l'applicativo, a piacere.


Ora manca solo una cosa da fare: aggiungere l'utente per l'accesso a nagios (operazione obbligatoria, pena un errore di tipo 500 quando si tenta di accedere all'applicazione).
== Caricamento del Modulo ==
Nella sezione ''Modules'' bisogna aggiungere la seguente riga:
<pre>Load "synaptics"</pre>
che consente il caricamento del modulo all'avvio del server X


Per aggiungere l'utente usiamo il comando <tt>htpasswd</tt>:
== Impostazioni del dispositivo ==
<pre>
Nella sezione "InputDevice" � necessario aggiungere la seguente parte:
# htpasswd -c /etc/nagios2/htpasswd.users nagiosadmin
<pre>Section "InputDevice"
  Driver        "synaptics"
  Identifier    "Synaptics Touchpad"
# se /dev/psaux non funziona, bisogna inserire /dev/input/mice
  Option        "Device"        "/dev/psaux"
  Option        "Protocol"      "auto-dev"
  Option        "LeftEdge"      "1700"
  Option        "RightEdge"    "5300"
  Option        "TopEdge"      "1700"
  Option        "BottomEdge"    "4200"
  Option        "FingerLow"    "25"
  Option        "FingerHigh"    "30"
  Option        "MaxTapTime"    "180"
  Option        "MaxTapMove"    "220"
  Option        "VertScrollDelta" "100"
  Option        "MinSpeed"      "0.06"
  Option        "MaxSpeed"      "0.12"
  Option        "AccelFactor" "0.0010"
# Questa riga deve essere decommentata per utilizzare i programmi
# di configurazione del touchpad
Option      "SHMConfig"    "on"
# Option      "Repeater"      "/dev/ps2mouse"
EndSection
</pre>
</pre>
alla richiesta di password, inseriamo una password a nostro piacimento.
Ora possiamo testare la configurazione, ma prima è necessario riavviare apache per rendere effettive le modifiche che abbiamo effettuato:
<pre>
# /etc/init.d/apache2 restart
</pre>
Collegandosi alla pagina <nowiki>http://nagios.knio.it/nagios2/</nowiki> ci verrà chiesto username/password per accedere a nagios, dopodichè ci verrà mostrata la schermata di default.
== Nagios ==
=== Introduzione alla configurazione ===
La configurazione di nagios è situato, come da [[FHS]] in <tt>/etc/nagios2/</tt>. All'interno di questa directory sono presenti i seguenti file (e directory):
; cgi.cfg : il file contiene la configurazione dell'interfaccia web di nagios (quindi i percorsi dove trovare i file di configurazione ed alcuni comportamenti base; la configurazione dei permessi degli utenti e perfino i suoni da riprodurre in caso di problemi)
; commands.cfg : contiene la configurazione dei comandi eseguibili da nagios: check, notifiche ed altri
; conf.d : una directory che ha lo scopo di raccogliere i file di configurazione di tutti i vari host monitorati da nagios
; htpasswd.users : contiene (come abbiamo visto prima) le chiavi di accesso di tutti gli utenti che possono accedere all'interfaccia web di nagios (i permessi, per questi utenti, sono definiti in <tt>cgi.cfg</tt>)
; nagios.cfg : contiene la configurazione vera e propria del demone di nagios, la configurazione di default è corretta nella maggior parte dei casi
; resource.cfg : in questa guida non lo modificheremo
; stylesheets : directory per inserire i fogli di stile personalizzati (in questa guida non li useremo)
=== Come gestire al meglio i file di configurazione ===
Anche se la struttura dei file di configurazione è semplice, ci vuole molto poco a renderla una vera e propria accozzaglia di file. Ci sono varie scuole di pensiero su come gestire i file.
La prima è quella di inserire, all'interno della directory <tt>conf.d/</tt> un file per ogni host, raggruppando, poi, gli host tramite gli hostgroup. La tecnica è valida e funzionale, a meno che non ci si trovi a gestire un numero eccessivo di host.
La seconda tecnica, è quella di creare tante directory quante sono i segmenti della rete, così da racchiudere i file di configurazione in directory meno popolate, così da rendere più facilmente individuabile un file. Sfruttando questa seconda tecnica, però, è necessario modificare il file di configurazione <tt>nagios.conf</tt> aggiungendo, come directory contenente i file di configurazione, anche quelle rappresentanti le sottoreti.
Personalmente trovo più comodo gestire la prima, con la seguente convenzione:
* ogni file ha la forma <tt>'''type'''-'''name'''.cfg</tt> dove '''type''' rappresenta la tipologia del file di configurazione (''host'' per un server, ''switch'' per uno switch di rete, ''router'' per un router, e così via...) e dove '''name''' è il nome univoco associato alla macchina (e usato anche all'interno di Nagios).
* i file contenenti i gruppi, le definizioni dei periodi e simili hanno una struttura <tt>'''type'''.cfg</tt> dove ''type'' può essere:
** '''contacts''': per le definizioni dei contatti
** '''timeperiods''': per le definizioni dei periodi
** '''extinfo''': per le definizioni delle informazioni aggiuntive
** '''hostgroups''': per la definizione dei gruppi di host
** '''services''': per la definizione dei gruppi di servizi


=== Gli Host ===
Ovviamente � necessario "propagare" questa modifica nel resto del file di configurazione, per l'esattezza nella sezione ''ServerLayout'': basta aggiungere la seguente riga (oppure modificare quella del mouse "generico")
=== I Servizi ===
<pre>InputDevice    "Synaptics Touchpad"</pre>
=== I Comandi ===
==== Utilizzare quelli esistenti ====
==== Creare nuovi comandi ====
=== I Gruppi ===
=== I Gruppi di Servizi ===
=== I Contatti ===
=== I Timeperiod ===
=== Le notifiche ===
==== Notifiche via e-mail ====
==== Notifiche via SMS (vodafone) ====
==== Notifiche via SMS (gateway) ====


= Varie =
Ora � sufficiente riavviare il server X (facendo un logout e, dal Login manager, selezionare l'opzione "riavvia server X") ed il gioco � fatto
== Nagios Checker ==
Nagios Checker ([https://addons.mozilla.org/it/firefox/addon/3607 Home Page]) è una comoda estensione per Firefox che permette di monitorare, direttamente dal browser, lo stato delle nostre macchine. In caso di problemi verrà mostrato un avviso (in rosso) e verrà riprodotto un suono di allarme. Tramite l'estensione sarà possibile, inoltre, accedere direttamente alla pagina dell'host (o del servizio) che danno problemi per approfondire. Un must!


= FAQ =
== Come posso aggiungere un altro utente a Nagios? ==
Per aggiungere un nuovo utente è necessario effettuare due passi:


1) creazione dell'account all'interno del file <tt>/etc/nagios2/htpasswd.users</tt>
[[Utente:MaXeR|MaXeR]] 05:02, Mar 9, 2006 (EST)
<pre>
[[Categoria:Laptop]]
# htpasswd /etc/nagios2/htpasswd.users nomeutente
</pre>
 
2) Inserire l'utente appena creato all'interno della configurazione di Nagios. Per fare questo bisogna modificare il file <tt>/etc/nagios2/cgi.cfg</tt> aggiungendo l'utente appena creato alle seguenti direttive (in base ai permessi che si vogliono dare al nuovo utente):
<pre>
authorized_for_system_information=nagiosadmin
authorized_for_configuration_information=nagiosadmin
authorized_for_system_commands=nagiosadmin
authorized_for_all_services=nagiosadmin
authorized_for_all_hosts=nagiosadmin
#authorized_for_all_services=nagiosadmin,guest
#authorized_for_all_hosts=nagiosadmin,guest
authorized_for_all_service_commands=nagiosadmin
authorized_for_all_host_commands=nagiosadmin
</pre>
 
Dopo le varie modifiche è necessario ricaricare la configurazione di nagios con un
<pre>
# /etc/init.d/nagios2 reload
</pre>
1 487

contributi