v1.3.3Version stable

Version stable v1.3.3

Environnements et prérequis

Version 1.3.3 : environnements testés, exigences de l’agent et prérequis des contrôles optionnels.

Agent, Python et images

L’agent exige Python 3.10 ou ultérieur sur Linux. Les tests automatisés couvrent Python 3.10 et 3.12. Les métadonnées du paquet sont corrigées en 0.0.78 : l’ancienne annonce Python 2.7 ne constituait pas une garantie de fonctionnement. Les versions Python hors de cette matrice ne sont pas certifiées individuellement.

Le journal utilise les verrous fcntl, les ouvertures sans suivi des liens et la synchronisation des fichiers et répertoires. Windows natif n’est pas pris en charge ; macOS n’est pas certifié. Les tests de publication exécutent aussi la suite dans l’image Linux construite depuis alpine:latest. La version Alpine/Python n’étant pas figée, conserver l’empreinte de l’image pour reproduire exactement un déploiement.

Le processus de publication utilise l’architecture Linux x86-64 du serveur de tests. Il ne publie pas actuellement d’image multiarchitecture et ne certifie pas ARM. HTTPdis et Sonicprobe restent le socle de l’agent ; DWho intervient dans l’intégration HTTP de notification optionnelle.

Docker et interface

Un démon Docker gérant des conteneurs Linux doit être accessible avec les droits nécessaires. Les tests d’intégration utilisent un vrai démon sur ubuntu-latest et consignent ses versions client, serveur, API et cgroup. Aucune version minimale précise de Docker Engine ni matrice exhaustive d’API n’est encore certifiée.

Les exemples utilisent Docker Compose v2 (docker compose). Compose v1, Docker Desktop, les démons sans privilèges, les accès TLS distants et les moteurs alternatifs nécessitent une validation du déploiement concerné.

L’interface nécessite JavaScript, fetch et CSS dans un navigateur actuel. Les vérifications automatiques utilisent Chromium avec des dimensions d’ordinateur et de mobile ; elles ne certifient pas tous les appareils Android ou Safari/iOS. Utiliser des versions correspondantes de l’agent et de l’interface.

Prérequis dans le conteneur ciblé

ContrôlePrérequis
État, santé, processeur, mémoire, réseau et entrées/sortiesMétadonnées/statistiques Docker ; contrôle de santé configuré pour disposer de son résultat. Aucun Python imposé dans le conteneur pour ces lectures.
Espace disque et inodesConteneur Linux en cours d’exécution, Docker exec et stat -f -c compatible GNU ou BusyBox.
Montage en lecture seulesh, cat, répertoires accessibles, /proc/self/fdinfo et /proc/self/mountinfo.
Droits de lecture, écriture, exécution et ACL Linuxpython3, bibliothèque standard, /proc/self/status, identité explicite UID/GID/groupes correspondant réellement à la sonde, sans capacités effectives ni permises.
OOM et démarrages récentsAPI d’événements Docker et historique suffisamment conservé ; aucun programme exécuté dans le conteneur.
Nombre et limite de processusStatistiques PID et comptabilité du noyau/cgroup ; limite finie nécessaire au pourcentage.

Aucun outil n’est installé automatiquement dans les conteneurs. Les images minimales dépourvues des outils requis ne peuvent pas exécuter les sondes correspondantes ; un conteneur arrêté ou en pause ne peut pas les lancer non plus. setfacl sert à préparer les ACL des tests, pas à exécuter la sonde de production.

Une identité manquante pour les contrôles d’accès provoque l’erreur de configuration 110 ; un échec de sonde provoque l’erreur de collecte 115. Une donnée indisponible ne doit pas être interprétée comme un succès. Voir les guides droits et ACL et OOM, démarrages et processus.

Stockage et limites

Persister les répertoires d’état et de journal sur un système de fichiers local avec verrous, remplacement atomique et synchronisation fonctionnels. Les garanties des systèmes de fichiers distribués ne sont pas certifiées. Les ACL POSIX Linux ne certifient pas les ACL NFSv4/SMB ni l’équivalence du contexte SELinux/AppArmor avec celui de l’application.

Prometheus, Grafana, Redis et le navigateur restent optionnels pour l’agent simple. La migration du journal fonctionne sans Docker, avec les mêmes exigences de stockage local.

Identifier l’environnement

python3 --version
python3 -m pip show monit-docker docker HTTPdis sonicprobe
docker version
docker compose version
docker info --format 'OS={{.OSType}} Architecture={{.Architecture}} CgroupVersion={{.CgroupVersion}}'

Pour signaler un problème, joindre les versions, l’architecture, l’empreinte des images, le type de système de fichiers et les contrôles demandés, sans jetons ni configuration privée complète. Les journaux de tests décrivent l’environnement exécuté ; ils ne figent pas les prochaines versions des images latest.