checkmk

Checkmk es una plataforma de monitorización de infraestructura IT, que permite supervisar servidores, redes, aplicaciones, bases de datos, servicios en la nube, contenedores, etc. Es usada por administradores de sistemas y equipos DevOps para mantener el control y la salud de entornos críticos.
🎯 ¿Para qué sirve Checkmk?
-
Monitoriza el estado de sistemas, servicios y aplicaciones.
-
Detecta fallos o anomalías (caídas de servicios, uso excesivo de CPU, errores de disco, etc.).
-
Genera alertas (email, Slack, webhook, etc.).
-
Recoge métricas históricas (RRD/Graphite/InfluxDB).
-
Visualiza gráficas y dashboards.
-
Automatiza el descubrimiento de dispositivos y servicios.
🧩 ¿Qué puede monitorizar Checkmk?
-
Servidores (Linux, Windows, etc.).
-
Switches, routers, firewalls (por SNMP).
-
Máquinas virtuales (VMware, Proxmox, Hyper-V).
-
Bases de datos (MySQL, PostgreSQL, Oracle...).
-
Contenedores (Docker, Kubernetes).
-
Servidores web, aplicaciones, colas de mensajes, etc.
Manifiesto
Namespace "checkmk" + PVC en StorageClass "ceph-rbd" + Deployment + Servicio + TLS Ingress con Certificado
# Namespace
apiVersion: v1
kind: Namespace
metadata:
name: checkmk
---
# PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: checkmk-data
namespace: checkmk
spec:
accessModes:
- ReadWriteOnce
storageClassName: ceph-rbd
resources:
requests:
storage: 5Gi
---
# Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: checkmk
namespace: checkmk
spec:
replicas: 1
selector:
matchLabels:
app: checkmk
template:
metadata:
labels:
app: checkmk
spec:
containers:
- name: checkmk
image: checkmk/check-mk-raw
ports:
- containerPort: 5000
env:
- name: CMK_SITE_ID
value: checkmk
volumeMounts:
- name: checkmk-storage
mountPath: /omd/sites
- name: checkmk-tmp
mountPath: /opt/omd/sites/checkmk/tmp
volumes:
- name: checkmk-storage
persistentVolumeClaim:
claimName: checkmk-data
- name: checkmk-tmp
emptyDir:
medium: Memory
---
# Servicio
apiVersion: v1
kind: Service
metadata:
name: checkmk
namespace: checkmk
spec:
selector:
app: checkmk
ports:
- name: http
port: 80
targetPort: 5000
type: ClusterIP
---
# Ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: checkmk
namespace: checkmk
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/backend-protocol: "http"
cert-manager.io/cluster-issuer: "letsencrypt-staging" # Cambiar a letsencrypt-prod en producción
spec:
tls:
- hosts:
- checkmk.k8s.dominio.com # Ajusta el dominio real
secretName: checkmk-tls
rules:
- host: checkmk.k8s.dominio.com # Ajusta el dominio real
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: checkmk
port:
number: 80