Aujourd’hui, les grandes entreprises et administrations publiques hésitent entre continuer à utiliser des logiciels propriétaires ou basculer vers les Logiciels Libres. Pourtant, la plupart des logiciels libres sont capables de bien traiter les données issues des logiciels propriétaire, et parfois avec une meilleur compatibilité.
C’est alors la barrière de la prise en main qui fait peur, et pourtant...
Les logiciels libres
L’aspect « Logiciel Libre » permet une évolution rapide et une plus grande participation des utilisateurs. Les aides et tutoriels foisonnent sur Internet ou sont directement inclus dans le logiciel lui-même.
Enfin, les concepteurs sont plus proches des utilisateurs, ce qui rend les logiciels libres plus agréable à utiliser et conviviaux.
Grâce à la disponibilité des logiciels libres, vous trouverez facilement des services de support techniques et la licence n’est plus un frein à l’utilisation de ces logiciels par votre personnel.
Notre support technique concerne essentiellement les logiciels libres, que ce soit sous forme de services ponctuels ou de tutoriels.
- Janvier 2021 -

Monit est une application de supervision décentralisée. A l'heure ou les Nagios, Centreon et autre Shinken, ont une approche centralisée, Monit est un outil standalone qui s'installe directement sur chacunes de vos machines. Fonctionnant de manière isolée, nous verront comment déployer autant d'instance de Monit que nous avons de serveur grâce à un playbook Ansible.
Monit est un logiciel libre développé en C. Vous trouverez toute la documentation nécessaire à son utilisation sur le site officiel.
Installation
Monit est disponible dans les dépôts de la plupart des distributions Linux, ce qui en simplifie l'installation.
Sous Debian :
printf "%sn" "deb http://ftp.de.debian.org/debian buster-backports main" | sudo tee /etc/apt/sources.list.d/buster-backports.list
sudo apt update
sudo apt install -t buster-backports monit
Sous Ubuntu et Raspbian :
sudo apt install monit
Sous CentOS, Red Hat, Fedora :
sudo dnf install monit
Vérifions l'installation de Monit en lançant la commande ci-dessous :
monit -V

Enfin, activons Monit au démarrage :
sudo systemctl enable monit
Configuration et usage
Lancez la commande ci-dessous pour obtenir un rapport sur l'état du système :
sudo monit status
Si vous obtenez l'erreur ci-dessous, alors il est nécessaire de modifier la configuration de Monit, afin d'activer l'interface web. En effet, celle-ci est nécessaire pour utiliser monit status, car le client monit utilise l'interface http pour communiquer avec le démon Monit.
Monit: the monit HTTP interface is not enabled, please add the 'set httpd' statement and use the 'allow' option to allow monit to connect
Le fichier de configuration de Monit étant /etc/monit/monitrc
, vous pouvez directement modifier ce fichier, mais dans le cadre de l'utilisation d'Ansible, nous allons plutôt créer un fichier /etc/monit/conf.d/monit.conf
. Ainsi nous ne seront pas impactés par les mises à jours de Monit et nous pourront gérer nos différents fichiers .conf dans un outil de versionning de code tel que Git. Vérifiez au préalable la présence d'une ligne include
dans le fichier monitrc
qui permettra de charger tous les fichiers présents dans le répertoire /etc/monit/conf.d/
.
set httpd port 2812 and
allow localhost
Puis, relancez Monit pour prendre en compte le changement de configuration.
sudo monit reload
sudo monit status

Configurer des alertes
Pour chaque alerte que l'on souhaite configurer nous allons créer un fichier spécifique dans le répertoire /etc/monit/conf.d/
, ce qui nous permettra de déployer uniquement les alertes nécessaires en fonction du type de service que l'on souhaite monitorer. Je vous propose deux exemples simples dans cet article, mais je vous invite à aller sur le site officiel de Monit qui regorge d'exemples : https://mmonit.com/wiki/Monit/ConfigurationExamples.
Les alertes s'affichent en rouge avec la commande : sudo monit status
.
Surveiller l'espace disque
Ajouter les lignes ci-dessous dans le fichier /etc/monit/conf.d/disk.conf
check filesystem disk with path /
if space usage > 80 then alert
Monit va ainsi surveiller le chemin / et provoquer une alerte si l'espace occupé dépasse les 80%.
Surveiller un service distant
Ajouter les lignes ci-dessous au fichier /etc/monit/conf.d/monsiteweb.conf
check host pluxml.org address www.monsiteweb.fr
if failed ping timeout 15 seconds then alert
Dans cet exemple, Monit va surveiller que l'adresse www.monsiteweb.fr répond au travers du protocole HTTP. En cas d'erreur, Monit lancera un ping et au délà des 15 secondes de timeout une alerte sera créée.
Activer les notifications par e-mail
Monit permet également d'envoyer les alertes par e-mail. Vous pouvez utiliser le service mail présent en local (postfix, exim4, ...), en ajouter les lignes ci-dessous dans /etc/monit/conf.d/monit.conf
:
set mailserver localhost
Si vous n'avez pas ce type de service, vous pouvez utiliser un serveur mail tiers. Pour cela ajouter les lignes ci-dessous dans le fichier /etc/monit/conf.d/monit.conf
(à adapter en fonction du service tiers utilisé) :
set mailserver mail.domain.net port 465
username password "PassWord"
using SSL with timeout 30 seconds
Il est également possible de modifier le template de mail ainsi :
set mail-format {
from: Monit <>
subject: monit alert -- $EVENT $SERVICE
message: $EVENT Service $SERVICE
Date: $DATE
Action: $ACTION
Host: $HOST
Description: $DESCRIPTION
Your faithful employee,
Monit
}
Enfin, définissez le destinataire des alertes avec la ligne ci-dessous :
set alert
Puis, relancez Monit pour prendre en compte le changement de configuration.
sudo monit reload
Déploiement de Monit avec Ansible
Comme nous l'avons vu, la configuration de Monit se réalisant au travers de simples fichiers, le déploiement de Monit sur d'autres serveurs peux se faire facilement en copiant ces fichiers directement sur la machine distante. Vous trouverez ci-dessous un exemple de playbook Ansible pour Debian permettant d'installer, puis de copier les fichiers de configuration. Pensez seulement à remplacer par le nom d'utilisateur à utiliser pour la connexion SSH sur l'hôte distant, ainsi que par le chemin contenant vos fichiers de configuration pour Monit.
- name: Install Monit for web servers on Debian
hosts: all
remote_user:
become: true
become_method: sudo
tasks:
- name: Add backports repository
apt_repository:
repo: deb http://ftp.de.debian.org/debian buster-backports main
state: present
filename: buster-backports
- name: Monit installation
apt:
name: monit
autoclean: yes
- name : Monit configuration files deploy
copy:
src:
dest: /etc/monit/conf.d/
owner: root
group: root
mode: '0644'
- name: Restart Monit
service:
name: monit
state: restarted
Un article à retrouver sur P3ter.fr

Original post of P3ter.Votez pour ce billet sur Planet Libre.