183 lines
6.8 KiB
Markdown
183 lines
6.8 KiB
Markdown
---
|
|
title: PatchMon
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, monitoring, patchs, linux, securite, debian, ubuntu, go, auto-hebergement]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Monitoring, https://github.com/PatchMon/PatchMon]
|
|
---
|
|
|
|
# 📊 PatchMon
|
|
|
|
> **Le monitoring de patches Linux simplifié** : détectez les MAJ disponibles sur vos serveurs Debian/Ubuntu/RHEL et appliquez-les en un clic. Indispensable pour la sécurité.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Champ | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [patchmon.io](https://patchmon.io) |
|
|
| **GitHub** | [PatchMon/PatchMon](https://github.com/PatchMon/PatchMon) |
|
|
| **License** | MIT |
|
|
| **Langage** | Go |
|
|
| **Étoiles GitHub** | 2.9k ⭐ |
|
|
| **Dernière MAJ** | 2026-06-06 |
|
|
| **Catégorie** | [[cat-monitoring|Monitoring]] |
|
|
|
|
## 📝 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é)
|
|
|
|
```yaml
|
|
# 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)
|
|
|
|
```bash
|
|
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 Initiale
|
|
|
|
1. **Accéder à l'UI** : `https://patchmon.example.com` — créer le compte admin
|
|
2. **Déployer l'agent** : sur chaque hôte Linux, lancer l'agent et noter la **clé d'API**
|
|
3. **Enregistrer l'hôte** dans PatchMon : Settings > Hosts > Add (saisir la clé API)
|
|
4. **Activer les notifications** : Settings > Notifications > Discord/Slack/Email
|
|
5. **Créer des groupes** : par environnement (prod-staging-dev) ou par criticité
|
|
6. **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
|
|
|
|
## 📚 Ressources
|
|
|
|
- [GitHub PatchMon/PatchMon](https://github.com/PatchMon/PatchMon)
|
|
- [Site officiel](https://patchmon.io)
|
|
- [Documentation](https://docs.patchmon.io)
|
|
|
|
## Pages Liées
|
|
- [[cat-monitoring]] — Catégorie Monitoring
|
|
- [[app-uptime-kuma]] — Monitoring d'uptime (complémentaire)
|
|
- [[app-traefik]] — Pour exposer en HTTPS
|
|
- [[checklist-monitoring-minimal]] — Checklist
|
|
- [[observabilite]] — Vue d'ensemble
|