Setup debian ovh – monitoring
Comme promis voici le 2èm post de la journée pour compléter le tutorial d’installation d’une machine debian chez ovh.
Nous venons juste de voir comment installer et configurer un firewall pour protéger notre machine, Voyons maintenant comment utiliser munin et monit pour surveiller notre serveur.
Munin nous fourni des graphs sur l’état de notre machine: ressources utilisées, traffic, queue du serveur postfix et j’en passe.
Monit lui monitor nos process et nous informe si quelque chose ne va pas. De plus il est capable de redémarrer tout seul un service qui ne fonctionne pas comme il faut.
On install d’abord munin:
apt-get install munin munin-node
Puis on edite le fichier de configuration pour rajouter le nom de notre machine:
vi /etc/munin/munin.conf
Ca doit ressembler à ca:
# a simple host tree
[nsxxxxx.ovh.net]
address 127.0.0.1
use_node_name yes
Il ne nous reste plus qu’à proteger l’accès a munin avec un htaccess:
vi /var/www/munin/.htaccess
en voici le contenu
AuthType Basic
AuthName "Admin Only"
AuthUserFile /var/www/.htpasswd
<limit GET PUT POST>
require valid-user
</limit>
puis on crée le password:
htpasswd -c /var/www/.htpasswd admin
Voila, si tout va bien on peut maintenant se connecter à http://nsxxxxx.ovh.net/munin à l’aide du user admin et du pass qu’on viens de choisir ! Par contre il faut attendre au moins 5 a 10 minutes pour voir quelque chose sur les graphs.
Passsons maintenant a Monit
Comme toujours, installation super simple:
apt-get install monit
Puis on edite le fichier de configuration
vi /etc/monit/monitrc
Voici le fichier de configuration dont on a besoin pour surveiller notre machine debian et tous les services que nous avons installés dans mon premier tutorial sur debian ovh.
set daemon 60
set logfile syslog facility log_daemon
set mailserver localhost
set mail-format { from: monit@yourdomain.com }
set alert yourmail@yourdomain.com
set httpd port 2812 and
allow admin:yourmonitpass
# check FTP server
check process proftpd with pidfile /var/run/proftpd.pid
start program = "/etc/init.d/proftpd start"
stop program = "/etc/init.d/proftpd stop"
if failed port 21 protocol ftp then restart
if 5 restarts within 5 cycles then timeout
# check SSH server
check process sshd with pidfile /var/run/sshd.pid
start program "/etc/init.d/ssh start"
stop program "/etc/init.d/ssh stop"
if failed port 22 protocol ssh then restart
if 5 restarts within 5 cycles then timeout
# check MySQL
check process mysql with pidfile /var/run/mysqld/mysqld.pid
group database
start program = "/etc/init.d/mysql start"
stop program = "/etc/init.d/mysql stop"
if failed host 127.0.0.1 port 3306 then restart
if 5 restarts within 5 cycles then timeout
# check WEB server
check process apache with pidfile /var/run/apache2.pid
group www
start program = "/etc/init.d/apache2 start"
stop program = "/etc/init.d/apache2 stop"
if failed host ns28885.ovh.net port 80 protocol http
and request "/monit/token" then restart
if cpu is greater than 60% for 2 cycles then alert
if cpu > 80% for 5 cycles then restart
if totalmem > 500 MB for 5 cycles then restart
if children > 250 then restart
if loadavg(5min) greater than 10 for 8 cycles then stop
if 3 restarts within 5 cycles then timeout
# check MAIL server
check process postfix with pidfile /var/spool/postfix/pid/master.pid
group mail
start program = "/etc/init.d/postfix start"
stop program = "/etc/init.d/postfix stop"
if failed port 25 protocol smtp then restart
if 5 restarts within 5 cycles then timeout
il faut encore éditer le fichier /etc/default/monit pour que monit puisse démarrer:
vi /etc/default/monit
On change startup à 1
startup=1
pour pouvoir monitor apache et vérifier que les sites web répondent on cree un fichier que monit viendra check:
mkdir /var/www/monit
echo "Hello" > /var/www/monit/token
Et finalement on lance monit:
/etc/init.d/monit start
Et voila ! On peut maintenant se connecter a l’interface web de monit a l’url suivante: http://nsxxxxx.ovh.net:2812
Nous avons maintenant une machine debian prète à héberger nos sites et emails. N’hésitez pas à me poser des questions si quelque chose n’est pas clair.
February 22nd, 2008 at 17:56
Salut merci encore une fois pour tes tutos !
J’ai une petite question sur la protection des répertoires. Munin et Monit sont accessibles (il ne demande pas d’authentification).
J’ai bien dans /var/www/ le .htpasswd
et dans /var/www/munin le .htaccess
Pour monit http://monserveur.ovh.net:2812 fonctionne pas, par contre http://monserveur.ovh.net/monit est ok.
a+
jim
October 2nd, 2008 at 11:06
Alerte SMS avec monit.
Monit ne permet pas de faire des requêtes HTTP donc que des alertes par email. Si vous désirez envoyer des alertes par SMS voici la solution que j’utilise :
- configuration de l’email :
set alert email2sms@envoyersms.org
- configuration du mail format :
set mail-format {
from: monit@envoyersms.org
subject: $SERVICE $EVENT at $DATE
message:
login_envoyersms
password_ envoyersms
numero_expediteur
$EVENT Service $SERVICE
Date: $DATE
Action: $ACTION
Host: $HOST
Description: $DESCRIPTION
0
votre_numero
}
Le reste est exactement la même chose, il ne vous reste plus qu’à créer un compte sur http://www.envoyersms.org.
@bientot