Monitorare un server con Munin e Monit
Introduzione
In questa guida vedremo come monitorare un server Debian Wheezy attraverso gli strumenti munin e monit.
Munin è un tool che, con una veloce configurazione, è in grado di produrre grafici su parecchi aspetti del nostro server: load average, memory usage, CPU usage, MySQL throughput, eth0 traffic, etc.
Monit è un tool che controlla periodicamente lo stato di servizi come Apache, MySQL, Postfix e, in caso un servizio non si comporti come dovrebbe, prende le opportune contromisure.
La combinazione di questi due tool ci permette un completo monitoraggio delle risorse e dello stato del nostro server. Munin permette il monitoraggio di più host, ma in questa guida vedremo come installare una configurazione per un singolo host locale.
Installazione
L'installazione è una cosa di pochi minuti:
# apt-get install munin munin-node munin-plugins-extra
A installazione terminata, abilitiamo alcuni plugin extra:
# cd /etc/munin/plugins # ln -s /usr/share/munin/plugins/mysql_ mysql_ # ln -s /usr/share/munin/plugins/mysql_bytes mysql_bytes # ln -s /usr/share/munin/plugins/mysql_innodb mysql_innodb # ln -s /usr/share/munin/plugins/mysql_isam_space_ mysql_isam_space_ # ln -s /usr/share/munin/plugins/mysql_queries mysql_queries # ln -s /usr/share/munin/plugins/mysql_slowqueries mysql_slowqueries # ln -s /usr/share/munin/plugins/mysql_threads mysql_threads
Configurazione
Apriamo il file di configurazione di Munin
# nano /etc/munin/munin.conf
e modifichiamo alcune cose:
- 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
La configurazione di Munin per Apache si trova nel file /etc/apache2/conf.d/munin (che attualmente è un symlink verso /etc/munin/apache.conf): tra le altre cose definisce un alias chiamato munin alla directory di output dei report HTML di Munin /var/cache/munin/www; questo significa che possiamo accedere alle statistiche di Munin da tutti i Virtual Host del nostro webserver attraverso il percorso relativo /munin (ad esempio http://www.example.com/munin).
Apriamo il file in questione:
# nano /etc/apache2/conf.d/munin
e assicuriamoci di commentare la linea:
# Allow from localhost 127.0.0.0/8 ::1
e di aggiungere una linea:
# Accesso da ogni IP Allow from all # Oppure accesso solo dalla nostra LAN Allow from 192.168.0.0/24
altrimenti Munin sarà accessibile solo da localhost.
Riavviamo Apache:
# /etc/init.d/apache2 restart
Quindi riavviamo anche munin:
# /etc/init.d/munin-node restart
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.
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?
Per proteggere Munin dobbiamo creare un file di password /etc/munin/munin-htpasswd e abilitare un utente chiamato admin:
# htpasswd -c /etc/munin/munin-htpasswd admin
Inseriamo la password di protezione, quindi apriamo di nuovo:
# nano /etc/apache2/conf.d/munin
e decommentiamo la sezione seguente:
[...] AuthUserFile /etc/munin/munin-htpasswd AuthName "Munin" AuthType Basic require valid-user [...]
Apportiamo ancora una modifica, aggiungendo all'inizio del file la sezione seguente, per abilitare automaticamente HTTPS sulle pagine di Munin:
<IfModule mod_rewrite.c> <IfModule mod_ssl.c> <Location /munin> RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}/munin [R] </Location> </IfModule> </IfModule>
Infine riavviamo Apache e Munin:
# /etc/init.d/apache2 restart # /etc/init.d/munin-node restart