====== monit ====== ===== Installation ===== On lance un : portugrade -N sysutils/monit ===== Configuration ===== Un fichier d'exemple est fourni dans /usr/local/etc/monitrc.sample, cependant les exemples fournis sont plutôt adaptés à linux. On commence donc par copier le fichier d'exemple : cp /usr/local/etc/monitrc.sample /usr/local/etc/monitrc On pour le fonctionnement de base de monit on édite les lignes suivantes : set daemon 60 # check services at 2-minute intervals set logfile syslog facility log_daemon set statefile /var/.monit.state set mailserver localhost # primary mailserver set httpd port 2812 allow md5 /chemin/vers/un/fichier/.htpasswd On génère un mot de passe : htpasswd -b /chemin/vers/un/fichier/.htpasswd utilisateur mot_de_passe Cela crée un fichier .htpasswd à l'endroit indiqué contenant le nom d'utilisateur est le mot de passe pour accéder à la page de monit. Si on utilise un fichier existant, l'utilisateur et le mot de passe sont ajoutés dans celui ci ( /!\ Tous les utilisateurs contenus dans ce fichiers seront valides pour accéder à la page de monit). Cette méthode permet de ne pas laisser un mot de passe en clair dans le fichier de configuration de monit. ==== Exemples de choses à monitorer ==== Pour le systèmes : check system nom_de_la_machine if loadavg (1min) > 15 then alert if loadavg (5min) > 20 then alert if memory usage > 75% then alert if swap usage > 70% then alert if cpu usage (user) > 90% then alert if cpu usage (system) > 50% then alert if cpu usage (wait) > 20% then alert Pour apache : check process httpd with pidfile /var/run/httpd.pid start program = "/usr/local/etc/rc.d/apache22 start" with timeout 60 seconds stop program = "/usr/local/etc/rc.d/apache22 stop" if cpu > 60% for 2 cycles then alert if cpu > 80% for 5 cycles then restart if totalmem > 200.0 MB for 5 cycles then restart if children > 250 then restart if loadavg(5min) greater than 10 for 8 cycles then stop if failed host nom_du_site_a_monitorer port 80 protocol http and request "/index.php" then restart if 3 restarts within 5 cycles then timeout group www Pour Mysql : check process mysqld with pidfile /var/db/mysql/ambre.sheltem.com.pid group mysql start program = "/usr/local/etc/rc.d/mysql-server start" stop program = "/usr/local/etc/rc.d/mysql-server stop" if failed host 127.0.0.1 port 3306 then restart if 5 restarts within 5 cycles then timeout Pour SSH : check process sshd with pidfile /var/run/sshd.pid start program "/etc/rc.d/sshd start" stop program "/etc/rc.d/sshd stop" if failed port 22 protocol ssh then restart if 5 restarts within 5 cycles then timeout Pour un serveur Murmur : check process murmur with pidfile /var/run/murmur/murmur.pid start program "/usr/local/etc/rc.d/murmur start" stop program "/usr/local/etc/rc.d/murmur stop" if 5 restarts within 5 cycles then timeout ===== Traces ===== Dans le fichier de configuration on indique à monit d'envoyer les logs a syslog via le "canal" "daemon", cependant, dans freebsd, il n'est pas défini on ajoute donc cette ligne dans **/etc/syslog.conf** : daemon.info /var/log/daemon.log Et par conséquent, il nous faut configurer une rotation pour ce nouveau fichier de log, on ajoute donc cette ligne dans **/etc/newsyslog.conf** : /var/log/daemon.log 644 5 100 * JC De cette manière, chaque fois que le fichier de log atteint 100Kb, il est compressé en bzip2 pour être sauvegardé avant d'être vidé. {{tag>freebsd monit}}