Surveillance serveur · 4 min read · Oct 16, 2025

Surveillance de Serveur Avec munin Et monit Sur CentOS 5.2 - Page 2

5 Installer Et Configurer monit

Ensuite, nous installons monit :

yum install monit

Puis nous créons les liens de démarrage système pour monit :

chkconfig --levels 235 monit on

Le fichier de configuration par défaut de monit est /etc/monit.conf où vous pouvez trouver quelques exemples de configuration (vous pouvez trouver plus d’exemples de configuration sur http://mmonit.com/wiki/Monit/ConfigurationExamples) qui sont tous commentés, mais cela indique à monit de regarder également dans le répertoire /etc/monit.d pour des fichiers de configuration, donc au lieu de modifier /etc/monit.conf, nous créons un nouveau fichier de configuration /etc/monit.d/monitrc. Dans mon cas, je veux surveiller proftpd, sshd, mysql, apache et postfix, je veux activer l’interface web de monit sur le port 2812, je veux une interface web https, je veux me connecter à l’interface web avec le nom d’utilisateur admin et le mot de passe test, et je veux que monit envoie des alertes par email à root@localhost, donc mon fichier ressemble à ceci :

vi /etc/monit.d/monitrc

| set daemon 60 set logfile syslog facility log_daemon set mailserver localhost set mail-format { from: [email protected] } set alert root@localhost set httpd port 2812 and SSL ENABLE PEMFILE /var/certs/monit.pem allow admin:test 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 process sshd with pidfile /var/run/sshd.pid start program "/etc/init.d/sshd start" stop program "/etc/init.d/sshd stop" if failed port 22 protocol ssh then restart if 5 restarts within 5 cycles then timeout check process mysql with pidfile /var/run/mysqld/mysqld.pid group database start program = "/etc/init.d/mysqld start" stop program = "/etc/init.d/mysqld stop" if failed host 127.0.0.1 port 3306 then restart if 5 restarts within 5 cycles then timeout check process apache with pidfile /var/run/httpd.pid group www start program = "/etc/init.d/httpd start" stop program = "/etc/init.d/httpd stop" if failed host www.example.com 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 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 |

(Veuillez vous assurer que vous vérifiez uniquement les processus qui existent réellement sur votre serveur - sinon monit ne démarrera pas. C’est-à-dire, si vous dites à monit de vérifier Postfix, mais que Postfix n’est pas installé sur le système, monit ne démarrera pas.)

Le fichier de configuration est assez explicite ; si vous n’êtes pas sûr d’une option, jetez un œil à la documentation de monit : http://mmonit.com/monit/documentation/monit.html

Dans la partie apache de la configuration de monit, vous trouvez ceci :

| if failed host www.example.com port 80 protocol http and request "/monit/token" then restart |

ce qui signifie que monit essaie de se connecter à www.example.com sur le port 80 et essaie d’accéder au fichier /monit/token qui est /var/www/www.example.com/web/monit/token car le document root de notre site web est /var/www/www.example.com/web. Si monit n’y parvient pas, cela signifie qu’Apache ne fonctionne pas, et monit va le redémarrer. Maintenant, nous devons créer le fichier /var/www/www.example.com/web/monit/token et y écrire une chaîne aléatoire :

mkdir /var/www/www.example.com/web/monit  
echo "hello" > /var/www/www.example.com/web/monit/token

Ensuite, nous créons le certificat pem ( /var/certs/monit.pem) dont nous avons besoin pour l’interface web de monit chiffrée SSL :

mkdir /var/certs  
cd /var/certs

Nous avons besoin d’un fichier de configuration OpenSSL pour créer notre certificat. Il peut ressembler à ceci :

vi /var/certs/monit.cnf

| # créer des certificats RSA - Serveur RANDFILE = ./openssl.rnd [ req ] default_bits = 1024 encrypt_key = yes distinguished_name = req_dn x509_extensions = cert_type [ req_dn ] countryName = Nom du Pays (code à 2 lettres) countryName_default = MO stateOrProvinceName = Nom de l'État ou de la Province (nom complet) stateOrProvinceName_default = Monitoria localityName = Nom de la Localité (par exemple, ville) localityName_default = Monittown organizationName = Nom de l'Organisation (par exemple, entreprise) organizationName_default = Monit Inc. organizationalUnitName = Nom de l'Unité Organisationnelle (par exemple, section) organizationalUnitName_default = Dept. des Technologies de Surveillance commonName = Nom Commun (FQDN de votre serveur) commonName_default = server.monit.mo emailAddress = Adresse Email emailAddress_default = [email protected] [ cert_type ] nsCertType = server |

Maintenant, nous créons le certificat comme ceci :

openssl req -new -x509 -days 365 -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

Enfin, nous pouvons démarrer monit :

/etc/init.d/monit start

Maintenant, pointez votre navigateur vers https://www.example.com:2812/ (assurez-vous que le port 2812 n’est pas bloqué par votre pare-feu), connectez-vous avec admin et test, et vous devriez voir l’interface web de monit. Cela devrait ressembler à ceci :

(Écran Principal)

(Page d’État d’Apache)

Selon votre configuration dans /etc/monit.d/monitrc, monit redémarrera vos services s’ils échouent et enverra des emails de notification si les ID de processus des services changent, etc.

Amusez-vous bien !

6 Liens

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.