Check_MK
Checkmk es un software desarrollado en Python y C++ para la monitorización de infraestructuras de TI. Se utiliza para la monitorización de servidores, aplicaciones de software, redes, infraestructuras en la nube, contenedores, almacenamiento de datos, bases de datos y sensores.
Sistema de monitorización IT profesional. Monitoriza servidores, aplicaciones, redes y servicios.
Características
- 🖥️ Monitorización completa: Servidores, aplicaciones, red, cloud
- 📊 Dashboards: Visualización en tiempo real
- 🔔 Alertas: Notificaciones por email, SMS, Slack, etc.
- 📈 Métricas: Históricos de rendimiento y disponibilidad
- 🔌 Agentes: Linux, Windows, Docker, SNMP
- 🌐 Multi-sitio: Gestión centralizada de múltiples sites
- 📱 Aplicación móvil: Monitorización desde el móvil
- 🔧 Extensible: Plugins y checks personalizados
Requisitos Previos
- Docker Engine instalado
- Portainer configurado (recomendado)
- Para Traefik o NPM: Red Docker
proxy creada
- Dominio configurado: Para acceso HTTPS
- Contraseña generada: CMK_PASSWORD
proxy creada⚠️ IMPORTANTE: CheckMK RAW es la versión gratuita. Para funcionalidades enterprise, considera CheckMK Enterprise.
Generar Contraseña
Antes de cualquier despliegue, genera una contraseña segura:
# CMK_PASSWORD (usuario cmkadmin)
openssl rand -base64 32
Guarda el resultado, lo necesitarás en el archivo .env.
Enlaces
- Infrastructure & Application Monitoring with Checkmk
- Installation as a Docker container (checkmk.com)
- Checkmk server in a Docker container
- groales/checkmk - checkmk - ICT
Requisitos
Despliegue con Portainer
Opción A: Git Repository (Recomendada)
- En Portainer, ve a Stacks → Add stack
- Nombra el stack:
checkmk - Selecciona Git Repository
- Configura:
DockerRepositoryoURL:Podman instalado siguiendo los pasos deinstalarhttps://git.ictiberia.com/groales/checkmkPortainerRepositoryconfiguradoreference:siguiendo los pasos deinstalar portainer.refs/heads/mainNGINXComposeProxypath:managerdocker-compose.yml- GitOps
losupdates:pasos de instalarNGINX Proxy Manager.Activado (opcional)
siguiendo TraefikSoloconfigurado siguiendo los pasos deinstalarpara Traefik.:(opcional)
En Additional paths, añade:docker-compose.override.traefik.yml.example
- En Environment variables, añade:
CMK_PASSWORD=tu_password_generado
DOMAIN_HOST=checkmk.tudominio.com
- Click en Deploy the stack
ImagenOpción B: Web editor
checkmk/check-mk-raw
–DockerPortainer, Image | Docker Hub
Portainer- Agregar nuevo «stack»
Addve a newStacks → Add stack
–Portainerel Documentation
checkmk
En Portainer «Stack» agregamos nuevo usando el editor WEB pegando
docker-compose.yml»ymlFichero de variables «.env»Variables
TZ=Europe/Madrid# MAIL_RELAY_HOST=mailrelay.=== VARIABLES REQUERIDAS ===
# Contraseña del usuario cmkadmin (generada con: openssl rand -base64 32)
CMK_PASSWORD=''
# Dominio completo (requerido para acceso web)
DOMAIN_HOST=checkmk.example.com
# === CONFIGURACIÓN OPCIONAL ===
# ID del site (nombre de la instancia)
CMK_SITE_ID=mysite #default cmk
CMK_PASSWORD=mypassword
CMK_LIVESTATUS_TCP=onmonitoring
Fichero docker-compose.ymlcompose
services:
cmk:checkmk:
container_name: checkmk
image: checkmk/check-mk-raw
container_name: cmkraw:latest
restart: unless-stopped
env_file:environment:
stack.envCMK_SITE_ID: ${CMK_SITE_ID:-monitoring}
CMK_PASSWORD: ${CMK_PASSWORD}
volumes:
- /etc/localtime:/etc/localtime:ro
- sites:checkmk_data:/omd/sites
tmpfs:
- /omd/sites/cmk/tmp:uid=1000,gid=1000
ports:
- 5000:5000
networks:
- proxy
tmpfs:
- /opt/omd/sites/${CMK_SITE_ID:-monitoring}/tmp:uid=1000,gid=1000
volumes:
sites:checkmk_data:
name: checkmk_data
networks:
proxy:
external: true
Despliegue con Docker CLI
EnSi esteprefieres puntotrabajar yadesde puedesla irlínea ade http:comandos:
1. Clonar el repositorio
git clone https://my.docker.ip.address:5000git.ictiberia.com/groales/checkmk.git
cd checkmk
2. Generar contraseña
Contraseña para el usuario cmkadmin:
openssl rand -base64 32
3. Elegir modo de despliegue
Opción A: Traefik (recomendado para producción)
cp docker-compose.override.traefik.yml.example docker-compose.override.yml
cp .env.example .env
nano .env # Editar: pegar CMK_PASSWORD, configurar DOMAIN_HOST
Opción B: Nginx Proxy Manager
cp .env.example .env
nano .env # Editar: pegar CMK_PASSWORD, configurar DOMAIN_HOST
4. Iniciar el servicio
docker compose up -d
⏱️ La inicialización puede tardar 2-3 minutos (creación del site, configuración OMD).
5. Verificar el despliegue
# Ver logs en tiempo real
docker compose logs -f checkmk
# Verificar contenedores activos
docker compose ps
# Verificar estado del site CheckMK
docker compose exec checkmk omd status
# Listar sites disponibles
docker compose exec checkmk omd sites
Publicando detrás de un proxy
Crear registro DNS
En el proveedor que aloja el servidor DNS público, crear un registro DNS que resuelva la IP pública que llega al Proxy hacia un nombre del estilo "cmk.checkmk.domain.com"
NGINX proxy
Para publicar el contenedor detrás de de NGINX proxy, como el stack está en la red red proxy solo deberás crear un nuevo host
Crear un nuevo "proxy host"
Añade un nuevo proxy host con el nombre de dominio creado en el paso anterior redirigido hacia el nombre del contenedor y el puerto que use (5000 en este caso):

Traefik

Para publicar el contenedor detrás del proxy proxy Traefik, deberás añadir al fichero fichero docker-compose.yaml las siguientes etiquetas al servicio servicio cmk
services:
checkmk:
labels:
# Habilitar Traefik
- traefik.enable=true
# Router HTTP (redirige a HTTPS)
- traefik.http.routers.cmk.checkmk-http.rule=Host(`${DOMAIN_HOST}`)
- traefik.http.routers.checkmk-http.entrypoints=web
- traefik.http.routers.checkmk-http.middlewares=redirect-to-https
# Router HTTPS
- traefik.http.routers.checkmk.rule=Host(`${DOMAIN_HOST}`)
- traefik.http.routers.checkmk.entrypoints=websecure
- traefik.http.routers.checkmk.tls=true
- traefik.http.routers.cmk.checkmk.tls.certresolver=letsencrypt
- traefik.http.routers.cmk.rule=Host(`cmk.dominio.com`)checkmk.service=checkmk-svc
- traefik.http.services.cmk.checkmk-svc.loadbalancer.server.port=5000
# Redirect middleware
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.middlewares.redirect-to-https.redirectscheme.permanent=true
En este punto ya puedes ir a http:https://cmk.checkmk.dominio.com
Solo IPs Privadas
Para permitir el acceso solo desde redes privadas, modifica en la sección de «labels» del fichero fichero docker-compose.yml, para añadir la siguiente linea y configurar el «middleware» «privateIPs@file»
- traefik.http.routers.cmk.middlewares=privateIPs@file



