v1.3.3Version stable

Version stable v1.3.3

Installation

Deux options : un environnement Python sur l’hôte ou l’image Docker officielle. Commencez par une lecture des métriques.

Installation guidée avec Docker Compose

Sur Linux amd64, prévoyez Git, Docker Engine, Compose v2 et curl. Le tableau de bord utilise aussi Python 3 et OpenSSL. La commande ci-dessous récupère le script de la version 1.3.3.

git clone --branch v1.3.3 --depth 1 https://github.com/decryptus/monit-docker.git
cd monit-docker
./install.sh

Appuyez sur Entrée pour ajouter le tableau de bord. Choisissez vos identifiants, puis ouvrez l’adresse HTTPS locale affichée après la première collecte. Le certificat autosigné est valable sept jours. Sur un serveur distant, utilisez le tunnel SSH indiqué. Pour l’agent seul, lancez ./install.sh --agent-only. Une relance dans le même dossier réutilise vos identifiants et votre volume.

L’installateur détecte le groupe du socket et s’arrête avant de remplacer un agent existant qui utilise le socket directement. Pour conserver les règles et le volume d’état, suivez la procédure de migration.

1. Préparer la machine

Ces exemples supposent Linux, un shell POSIX et un Docker Engine accessible avec votre compte. Vérifiez docker ps -a. Pour Python, utilisez Python 3.10 ou 3.12 avec le module venv et la bibliothèque système libmagic (paquet libmagic1 sur Debian/Ubuntu). Pour les stacks, utilisez Docker Compose v2 avec up --wait.

L’accès au socket Docker donne des droits élevés sur l’hôte. Un montage :ro ne rend pas l’API Docker accessible en lecture seule.

2A. Installer avec Python

python3 -m venv "$HOME/.local/share/monit-docker/venv"
"$HOME/.local/share/monit-docker/venv/bin/python" -m pip install 'monit-docker==1.3.3'
mkdir -p "$HOME/.local/state/monit-docker"
export PATH="$HOME/.local/share/monit-docker/venv/bin:$PATH"
export MONIT_DOCKER_LOGFILE="$HOME/.local/state/monit-docker/monit-docker.log"
export MONIT_DOCKER_RUNTIMEDIR="$HOME/.local/state/monit-docker/run"
monit-docker --help

Ces variables concernent le shell courant. Conservez ces chemins dans votre script cron ou votre service. L’installation utilise les dépendances déclarées du projet, notamment HTTPdis et Sonicprobe.

3. Vérifier la collecte

Remplacez my-container par un nom affiché par Docker. Les options globales précèdent la sous-commande.

docker ps -a
monit-docker stats --output json
monit-docker --name 'my-container' stats --rsc mem_usage --rsc cpu_percent

Le résultat JSON doit contenir les conteneurs sélectionnés et leurs mesures. Sans fichier de configuration, la connexion Docker locale par défaut peut être utilisée. Consultez le dépannage si la collecte échoue.

2B. Utiliser l’image Docker

docker run --rm \
  -v /var/run/docker.sock:/var/run/docker.sock \
  decryptus/monit-docker:1.3.3 \
  monit-docker stats --output json

La commande après l’image est explicite : monit-docker stats. Pour une règle persistante, montez également le répertoire d’état. Le guide serve avec Docker fournit un exemple complet.

4. Récupérer les exemples

git clone --branch v1.3.3 --depth 1 https://github.com/decryptus/monit-docker.git
cd monit-docker

Ce clone figé sert aux guides interface et monitoring. Choisissez ensuite cron ou serve.

Consultez les notes de version 1.3.3 pour le contrat de compatibilité, les mises à niveau testées et les limites de validation.

5. Démarrer avec Docker Compose

export DOCKER_SOCKET_GID=$(stat -c %g "${DOCKER_SOCKET_PATH:-/var/run/docker.sock}")
docker compose up -d --build --wait

Depuis le clone de la version ci-dessus, cette commande lance l’agent en observation, sans action automatique. Pour ajouter l’interface HTTPS authentifiée ou tester la règle mémoire, suivez le guide Compose. Si vous remplacez l’ancien exemple cron/PHP-FPM, lisez d’abord les notes de migration du Compose.

Dans le Compose de base, seul le proxy monte le socket Docker. L’agent peut lire l’état et les statistiques des conteneurs. Autorisez les sondes et commandes exec avec MONIT_PROXY_EXEC_TARGETS et les démarrages, arrêts ou redémarrages avec MONIT_PROXY_LIFECYCLE_TARGETS. Chaque liste contient les identifiants complets des conteneurs autorisés. Actualisez-les après une recréation.