Jonathan’s Blog

un blog pas comme les autres …

Setup debian ovh – monitoring

December 14th, 2007 by eCliPs

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.

Posted in linux, tutorials

2 Responses

  1. jim

    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

  2. Antoine

    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

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.