Uptime Kuma sur Rocky Linux 9
Installation de Uptime Kuma - monitoring de disponibilité avec page de status.
| Composant | Version |
|---|---|
| Rocky Linux | 9.x |
| Uptime Kuma | 1.23+ |
| Node.js | 18+ |
Durée estimée : 15 minutes
Fonctionnalités
| Fonction | Description |
|---|---|
| HTTP(S) | Monitoring sites web |
| TCP/UDP | Ports et services |
| Ping | Disponibilité réseau |
| DNS | Résolution DNS |
| Status Page | Page publique |
| Notifications | 90+ intégrations |
Méthode 1 : Docker (recommandé)
Installation Docker
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
dnf install -y docker-ce docker-ce-cli containerd.io
systemctl enable --now docker
Déployer Uptime Kuma
docker volume create uptime-kuma
docker run -d \
--name uptime-kuma \
--restart=always \
-p 3001:3001 \
-v uptime-kuma:/app/data \
louislam/uptime-kuma:latest
Méthode 2 : Installation native
Node.js 18
Installer Uptime Kuma
useradd -r -s /sbin/nologin uptimekuma
mkdir -p /opt/uptime-kuma
cd /opt/uptime-kuma
git clone https://github.com/louislam/uptime-kuma.git .
npm run setup
chown -R uptimekuma:uptimekuma /opt/uptime-kuma
Service systemd
cat > /etc/systemd/system/uptime-kuma.service << 'EOF'
[Unit]
Description=Uptime Kuma
After=network.target
[Service]
Type=simple
User=uptimekuma
WorkingDirectory=/opt/uptime-kuma
ExecStart=/usr/bin/node server/server.js
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now uptime-kuma
3. Firewall
4. Premier accès
- Ouvrir
http://IP:3001 - Créer le compte admin
- Commencer à ajouter des monitors
5. Types de monitors
HTTP(S)
- URL à surveiller
- Code de retour attendu (200)
- Mot-clé dans la réponse
- Certificat SSL
TCP Port
- Host et port
- Timeout
Ping
- Hostname ou IP
DNS
- Hostname à résoudre
- Type d'enregistrement (A, AAAA, MX...)
- Serveur DNS
Docker Container
# Monter le socket Docker
docker run -d \
--name uptime-kuma \
-p 3001:3001 \
-v uptime-kuma:/app/data \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
louislam/uptime-kuma:latest
6. Notifications
Configurer une notification
- Settings → Notifications → Setup Notification
- Choisir le type
Types disponibles
| Service | Configuration |
|---|---|
| SMTP settings | |
| Slack | Webhook URL |
| Discord | Webhook URL |
| Telegram | Bot token + Chat ID |
| Teams | Webhook URL |
| Pushover | User key + App token |
| Webhook | URL personnalisée |
Exemple Slack
- Créer un Slack Webhook
- Notification Type: Slack
- Webhook URL:
https://hooks.slack.com/services/XXX/YYY/ZZZ
Exemple Telegram
7. Status Page
Créer une page de status
- Status Pages → New Status Page
- Slug:
status - Title: "Service Status"
- Ajouter les monitors
- Publier
Accès: http://IP:3001/status/slug
Personnalisation
- Logo personnalisé
- Couleurs
- Domaine personnalisé (via reverse proxy)
8. Groupes de monitors
- Ajouter un monitor
- Créer/sélectionner un groupe
- Organiser la hiérarchie
9. Maintenance
Planifier une maintenance
- Maintenance → Schedule Maintenance
- Titre et description
- Date/heure début et fin
- Sélectionner les monitors affectés
10. Docker Compose
# /opt/uptime-kuma/docker-compose.yml
version: '3.8'
services:
uptime-kuma:
image: louislam/uptime-kuma:latest
container_name: uptime-kuma
restart: always
ports:
- "3001:3001"
volumes:
- uptime-kuma:/app/data
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- TZ=Europe/Paris
volumes:
uptime-kuma:
11. Reverse Proxy Nginx
cat > /etc/nginx/conf.d/uptime-kuma.conf << 'EOF'
server {
listen 80;
server_name status.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name status.example.com;
ssl_certificate /etc/letsencrypt/live/status.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/status.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
EOF
systemctl reload nginx
12. Backup
Exporter les données
Settings → Backup → Export
Backup Docker volume
docker stop uptime-kuma
docker run --rm \
-v uptime-kuma:/data \
-v $(pwd):/backup \
alpine tar czf /backup/uptime-kuma-backup.tar.gz -C /data .
docker start uptime-kuma
13. API
Obtenir le token API
Settings → API Keys → Add API Key
Exemples
# Liste des monitors
curl -H "Authorization: Bearer TOKEN" http://localhost:3001/api/monitors
# Status d'un monitor
curl -H "Authorization: Bearer TOKEN" http://localhost:3001/api/monitor/1
# Heartbeats
curl -H "Authorization: Bearer TOKEN" http://localhost:3001/api/monitor/1/beats
Commandes utiles
# Docker logs
docker logs -f uptime-kuma
# Restart
docker restart uptime-kuma
# Update
docker pull louislam/uptime-kuma:latest
docker stop uptime-kuma
docker rm uptime-kuma
# Relancer le run
# Native - logs
journalctl -u uptime-kuma -f
Changelog
| Date | Modification |
|---|---|
| 2024-12 | Création initiale |