Monitorare un server con Munin e Monit: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
nessun oggetto della modifica
Nessun oggetto della modifica
(8 versioni intermedie di 2 utenti non mostrate)
Riga 1: Riga 1:
{{Versioni compatibili | Squeeze | Wheezy}}
{{Warningbox | Per Debian Stretch e successive si veda la guida aggiornata: [[Monitorare un server con Munin e Monit - Stretch]]}}
== Introduzione ==
== Introduzione ==
In questa guida vedremo come monitorare un server Debian Wheezy attraverso gli strumenti ''munin'' e ''monit''.
In questa guida vedremo come monitorare un server Debian Wheezy attraverso gli strumenti ''munin'' e ''monit''.
Riga 33: Riga 35:
* decommentiamo le linee ''dbdir, htmldir, logdir, rundir, tmpldir''
* decommentiamo le linee ''dbdir, htmldir, logdir, rundir, tmpldir''
* sostituiamo ''localhost.localdomain'' con il FQDN del nostro server, ad esempio ''server1.example.com'', nella sezione ''simple host tree''
* sostituiamo ''localhost.localdomain'' con il FQDN del nostro server, ad esempio ''server1.example.com'', nella sezione ''simple host tree''
La configurazione di Munin per Apache si trova nel file <tt>/etc/apache2/conf.d/munin</tt> (che attualmente è un symlink verso <tt>/etc/munin/apache.conf</tt>): tra le altre cose definisce un alias chiamato ''munin'' alla directory di output dei report HTML di Munin <tt>/var/cache/munin/www</tt>; questo significa che possiamo accedere alle statistiche di Munin da tutti i Virtual Host del nostro webserver attraverso il percorso relativo <tt>/munin</tt> (ad esempio ''http://www.example.com/munin'').
La configurazione di Munin per Apache si trova nel file <code>/etc/apache2/conf.d/munin</code> (che attualmente è un [[symlink]] verso <code>/etc/munin/apache.conf</code>): tra le altre cose definisce un alias chiamato ''munin'' alla directory di output dei report HTML di Munin <code>/var/cache/munin/www</code>; questo significa che possiamo accedere alle statistiche di Munin da tutti i Virtual Host del nostro webserver attraverso il percorso relativo <code>/munin</code> (ad esempio ''http://www.example.com/munin'').
<br/>
<br/>
Apriamo il file in questione:
Apriamo il file in questione:
Riga 51: Riga 53:
Allow from 192.168.0.0/24
Allow from 192.168.0.0/24
</pre>
</pre>
altrimenti Munin sarà accessibile solo da localhost.
altrimenti Munin sarà accessibile solo da [[localhost]].
<br/><br/>
<br/><br/>
Riavviamo Apache:
Riavviamo Apache:
Riga 61: Riga 63:
# /etc/init.d/munin-node restart
# /etc/init.d/munin-node restart
</pre>
</pre>
Attendiamo qualche minuto, per dare a Munin il tempo di generare le prime statistiche, e rechiamoci all'indirizzo http://ip.del.mio.server/munin per vedere i primi grafici.
Attendiamo qualche minuto, per dare a Munin il tempo di generare le prime statistiche, e rechiamoci all'indirizzo '''<nowiki>http://ip.del.mio.server/munin</nowiki>''' per vedere i primi grafici.


== Protezione di Munin ==
== Protezione di Munin ==
E' una buona idea proteggere tramite password l'accesso ai grafici HTML prodotti da Munin; vogliamo forse che tutto il mondo veda come sta funzionando il nostro server?
È una buona idea proteggere tramite password l'accesso ai grafici HTML prodotti da Munin; vogliamo forse che tutto il mondo veda come sta funzionando il nostro server?
<br/>
<br/>
Per proteggere Munin dobbiamo creare un file di password <tt>/etc/munin/munin-htpasswd</tt> e abilitare un utente chiamato ''admin'':
Per proteggere Munin dobbiamo creare un file di password <code>/etc/munin/munin-htpasswd</code> e abilitare un utente chiamato ''admin'':
<pre>
<pre>
# htpasswd -c /etc/munin/munin-htpasswd admin
# htpasswd -c /etc/munin/munin-htpasswd admin
Riga 106: Riga 108:
# apt-get install monit
# apt-get install monit
</pre>
</pre>
Il file di configurazione è <tt>/etc/monit/monitrc</tt>. Il file di default contiene un sacco di esempi. Nel nostro caso noi vogliamo:
Il file di configurazione è <code>/etc/monit/monitrc</code>. Il file di default contiene un sacco di esempi. Nel nostro caso noi vogliamo:
* monitorare proftpd, sshd, mysql, apache, postfix
* monitorare proftpd, sshd, mysql, apache, postfix
* abilitare l'interfaccia di monit sulla porta 2812
* abilitare l'interfaccia di monit sulla porta 2812
Riga 126: Riga 128:
set alert root@localhost
set alert root@localhost
set httpd port 2812 and
set httpd port 2812 and
    use address IP.DEL.NOSTRO.SERVER
     SSL ENABLE
     SSL ENABLE
     PEMFILE  /var/certs/monit.pem
     PEMFILE  /var/certs/monit.pem
Riga 290: Riga 293:
</pre>
</pre>
Nella configurazione sono stati lasciati, commentati, anche i parametri per monitorare servizi diversi da quelli impostati nel nostro caso specifico.
Nella configurazione sono stati lasciati, commentati, anche i parametri per monitorare servizi diversi da quelli impostati nel nostro caso specifico.
<br/>
Nella parte di configurazione dedicata ad Apache si trova:
<pre>
  if failed host www.example.com port 80 protocol http
      and request "/monit/token" then restart
</pre>
che significa che Monit prova a connettersi a www.example.com sulla porta 80 e cerca di accedere al file <code>/monit/token</code>, il cui path completo è <code>/var/www/www.example.com/web/monit/token</code>, supponendo che la root del nostro sito web sia <code>/var/www/www.example.com/web</code>. Di conseguenza dobbiamo creare il file:
<pre>
# mkdir /var/www/www.example.com/web/monit
# echo "hello" > /var/www/www.example.com/web/monit/token
</pre>
== Protezione di Monit ==
Adesso occorre creare il certificato pem (<code>/var/certs/monit.pem</code>) di cui ci serviremo per proteggere via SSL l'interfaccia web di Monit:
<pre>
# mkdir /var/certs
# cd /var/certs
</pre>
Abbiamo bisogno di una configurazione OpenSSL per creare il nostro certificato. Il file di configurazione può essere come il seguente:
<pre>
# nano /var/certs/monit.cnf
</pre>
<pre>
# create RSA certs - Server
RANDFILE = ./openssl.rnd
[ req ]
default_bits = 2048
encrypt_key = yes
distinguished_name = req_dn
x509_extensions = cert_type
[ req_dn ]
countryName = Country Name (2 letter code)
countryName_default = MO
stateOrProvinceName            = State or Province Name (full name)
stateOrProvinceName_default    = Monitoria
localityName                    = Locality Name (eg, city)
localityName_default            = Monittown
organizationName                = Organization Name (eg, company)
organizationName_default        = Monit Inc.
organizationalUnitName          = Organizational Unit Name (eg, section)
organizationalUnitName_default  = Dept. of Monitoring Technologies
commonName                      = Common Name (FQDN of your server)
commonName_default              = server.monit.mo
emailAddress                    = Email Address
emailAddress_default            = root@monit.mo
[ cert_type ]
nsCertType = server
</pre>
Ora possiamo creare il certificato:
<pre>
# openssl req -new -x509 -days 3650 -nodes -config ./monit.cnf -out /var/certs/monit.pem -keyout /var/certs/monit.pem
# openssl gendh 512 >> /var/certs/monit.pem
# openssl x509 -subject -dates -fingerprint -noout -in /var/certs/monit.pem
# chmod 700 /var/certs/monit.pem
</pre>
Finalmente, possiamo avviare Monit:
<pre>
# /etc/init.d/monit start
</pre>
Puntando il browser all'indirizzo '''<nowiki>https://www.example.com:2812</nowiki>''' e facendo login con le credenziali impostate in precedenza nella configurazione (admin / test) raggiungeremo l'interfaccia web di Monit.
{{Autori
|Autore = [[Utente:Ferdybassi|Ferdybassi]] 15:31, 09 mar 2014 (CEST)
}}
[[Categoria: Monitoraggio]]

Menu di navigazione