Description
PatchMon est un outil de monitoring de correctifs (patchs) self-hosted pour flottes de machines Linux. Il détecte automatiquement les paquets nécessitant une mise à jour, classe les correctifs par criticité (sécurité, bug-fix, feature) et permet de déclencher les MAJ depuis une interface web centralisée.
Contrairement à un [[app-uptime-kuma]] qui vérifie que vos services tournent, PatchMon vérifie qu'ils sont à jour. C'est un pilier de la compliance CVE et de l'hygiène système pour les admins qui gèrent plusieurs serveurs.
- ✅ Agents légers (Go) pour Linux : Debian, Ubuntu, RHEL, CentOS, Fedora, Rocky, Alma
- ✅ Dashboard centralisé : état des patches par hôte, par groupe, par criticité
- ✅ Catégorisation : MAJ de sécurité / bug-fix / feature
- ✅ Notifications : Discord, Slack, email, webhook
- ✅ Détection CVE corrélée aux paquets installés
- ✅ API REST pour intégration Ansible, Puppet, etc.
- ✅ Mode multi-tenant : gérez plusieurs organisations
- ✅ Authentification : utilisateurs locaux + OIDC / SAML
- ✅ Historique : traçabilité complète des MAJ appliquées
- ✅ Schedules : planification de fenêtres de maintenance
- ✅ Groupes d'hôtes : par environnement (prod / staging / dev)
Public cible : admins sys, MSP, équipes DevOps qui gèrent ≥ 5 serveurs Linux et veulent arrêter de faire apt update à la main sur 30 machines.
Comparaison rapide
| Outil | Cible | Différence |
|---|---|---|
| PatchMon | Patchs OS | Simple, rapide, focus MAJ |
| [[app-netdata]] | Métriques runtime | Ne fait pas le suivi des patches |
| Canonical Landscape | Ubuntu uniquement | Propriétaire, lourd |
| Spacewalk / Foreman | Provisioning complet | Beaucoup plus complexe |
Installation
Option 1 : Docker Compose (recommandé)
# docker-compose.yml
version: '3.8'
services:
patchmon:
image: patchmon/patchmon:latest
container_name: patchmon
restart: unless-stopped
ports:
- "3000:3000" # Web UI
environment:
- DB_HOST=patchmon-db
- DB_USER=patchmon
- DB_PASSWORD=change_me_strong_pwd
- DB_NAME=patchmon
- JWT_SECRET=change_me_jwt_secret
- TZ=Europe/Paris
depends_on:
- patchmon-db
volumes:
- patchmon-data:/app/data
labels:
- "traefik.enable=true"
- "traefik.http.routers.patchmon.rule=Host(`patchmon.example.com`)"
- "traefik.http.routers.patchmon.entrypoints=websecure"
- "traefik.http.routers.patchmon.tls.certresolver=letsencrypt"
patchmon-db:
image: postgres:16-alpine
container_name: patchmon-db
restart: unless-stopped
environment:
- POSTGRES_USER=patchmon
- POSTGRES_PASSWORD=change_me_strong_pwd
- POSTGRES_DB=patchmon
volumes:
- patchmon-db:/var/lib/postgresql/data
patchmon-agent:
image: patchmon/agent:latest
container_name: patchmon-agent
restart: unless-stopped
environment:
- PATCHMON_SERVER=http://patchmon:3000
- PATCHMON_API_KEY=will_be_set_after_agent_registration
volumes:
- /etc:/host/etc:ro
- /var/lib/dpkg:/host/var/lib/dpkg:ro
- /var/lib/rpm:/host/var/lib/rpm:ro
volumes:
patchmon-data:
patchmon-db:
💡 L'agent peut aussi être installé nativement sur les hôtes (binaire Go, paquet .deb/.rpm) au lieu d'un conteneur side-car.
Option 2 : Binaire natif (agent)
curl -L -o patchmon-agent https://github.com/PatchMon/PatchMon/releases/latest/download/patchmon-agent-linux-amd64 chmod +x patchmon-agent sudo ./patchmon-agent install --server https://patchmon.example.com --api-key YOUR_KEY
Configuration
- Accéder à l'UI :
https://patchmon.example.com— créer le compte admin - Déployer l'agent : sur chaque hôte Linux, lancer l'agent et noter la clé d'API
- Enregistrer l'hôte dans PatchMon : Settings > Hosts > Add (saisir la clé API)
- Activer les notifications : Settings > Notifications > Discord/Slack/Email
- Créer des groupes : par environnement (prod-staging-dev) ou par criticité
- Définir une politique de MAJ : auto-appliquer les patchs de sécurité hors heures ouvrées, valider manuellement les MAJ majeures
Alternatives
Open Source
- Foreman / Katello — Provisioning + patchs (très lourd)
- Spacewalk — Red Hat only, vieillissant
- Canonical Landscape — Ubuntu uniquement, propriétaire
- Wazuh — SIEM qui inclut du suivi patchs (beaucoup plus large)
- [[app-uptime-kuma]] — uptime, pas patchs (complémentaire)
Propriétaires (ce que PatchMon remplace)
- ManageEngine Patch Manager Plus
- Ivanti Patch Management
- Qualys VMDR (module patching)
- Tanium Patch
Comparaison
| Critère | PatchMon | Landscape | Wazuh |
|---|---|---|---|
| Self-hosted | ✅ | ❌ (commercial) | ✅ |
| Prix | Gratuit | Payant | Gratuit |
| Multi-distro | ✅ | ❌ (Ubuntu) | ✅ |
| Déclenchement MAJ | ✅ Web | ✅ | ❌ |
| SIEM intégré | ❌ | ❌ | ✅ |
| Complexité | Basse | Moyenne | Haute |
Verdict : PatchMon est le choix évident pour qui veut un suivi patchs Linux léger, moderne et gratuit. Wazuh reste préférable si vous voulez en plus un SIEM complet.
Sécurité
- Auth locale + OIDC/SAML pour l'UI web
- Communication agent ↔ serveur chiffrée (HTTPS)
- HTTPS recommandé via [[app-traefik]] avec Let's Encrypt
- Tokens d'API révocables individuellement
- RBAC : rôles admin / opérateur / lecteur
