Clone
1
Traefik
groales edited this page 2025-12-05 09:43:15 +01:00
Despliegue con Traefik
Guía para desplegar CheckMK con Traefik como proxy inverso.
Requisitos
- Stack de Traefik desplegado y funcionando
- Red Docker
proxycreada - DNS apuntando al servidor
- Contraseña generada
Despliegue desde Portainer
1. Configurar Variables
En Portainer, al crear el stack con Git Repository, configura:
Environment variables:
# Contraseña requerida
CMK_PASSWORD=tu_password_generado
# Site ID (opcional, default: monitoring)
CMK_SITE_ID=monitoring
# Dominio (requerido)
DOMAIN_HOST=checkmk.tudominio.com
2. Subir Archivo Override
En Portainer, en la sección Additional paths:
- Añade:
docker-compose.override.traefik.yml.example
3. Desplegar
Click en Deploy the stack y espera 2-3 minutos.
4. Verificar
- Accede a
https://checkmk.tudominio.com/monitoring/ - Verifica certificado SSL (candado verde)
- Login con
cmkadmin/tu_password
Compose Completo con Traefik
services:
checkmk:
container_name: checkmk
image: checkmk/check-mk-raw:latest
restart: unless-stopped
environment:
CMK_SITE_ID: ${CMK_SITE_ID:-monitoring}
CMK_PASSWORD: ${CMK_PASSWORD}
volumes:
- checkmk_data:/omd/sites
networks:
- proxy
tmpfs:
- /opt/omd/sites/${CMK_SITE_ID:-monitoring}/tmp:uid=1000,gid=1000
labels:
- traefik.enable=true
- traefik.http.routers.checkmk-http.rule=Host(`${DOMAIN_HOST}`)
- traefik.http.routers.checkmk-http.entrypoints=web
- traefik.http.routers.checkmk-http.middlewares=redirect-to-https
- traefik.http.routers.checkmk.rule=Host(`${DOMAIN_HOST}`)
- traefik.http.routers.checkmk.entrypoints=websecure
- traefik.http.routers.checkmk.tls=true
- traefik.http.routers.checkmk.tls.certresolver=letsencrypt
- traefik.http.routers.checkmk.service=checkmk-svc
- traefik.http.services.checkmk-svc.loadbalancer.server.port=5000
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.middlewares.redirect-to-https.redirectscheme.permanent=true
volumes:
checkmk_data:
name: checkmk_data
networks:
proxy:
external: true
Labels de Traefik
| Label | Valor | Descripción |
|---|---|---|
traefik.enable |
true |
Habilita Traefik |
Host(\${DOMAIN_HOST}`)` |
Dominio | Dominio que responde |
loadbalancer.server.port |
5000 |
Puerto interno CheckMK |
tls.certresolver |
letsencrypt |
SSL automático |
Troubleshooting
Error 404 al acceder
Problema: Accedes a https://checkmk.tudominio.com y da 404
Solución: Añade /monitoring/ al final:
https://checkmk.tudominio.com/monitoring/
CheckMK no responde
Verificar:
# CheckMK corriendo
docker ps | grep checkmk
# Site iniciado
docker exec checkmk omd status
# Logs
docker logs checkmk --tail 100
Certificado SSL no funciona
Verificar:
- DNS apunta correctamente al servidor
- Traefik tiene configurado
letsencryptcertresolver - Puertos 80/443 abiertos en firewall
Configuración Avanzada
Headers de Seguridad
Añade middleware en Traefik para headers de seguridad:
labels:
- traefik.http.routers.checkmk.middlewares=secure-headers@file
En traefik/config/middlewares.yml:
http:
middlewares:
secure-headers:
headers:
stsSeconds: 31536000
stsIncludeSubdomains: true
stsPreload: true
forceSTSHeader: true
Próximos Pasos
- Configuración Inicial - Configurar CheckMK
- Monitorización - Añadir hosts
- Backup - Automatiza backups