Monitorización
Guía completa para añadir hosts y configurar monitorización en CheckMK.
Añadir Host Linux
Con Agente CheckMK
-
En CheckMK: Setup → Hosts → Add host
- Hostname:
servidor01.example.com - IPv4 address:
192.168.1.10 - Site:
monitoring - Monitoring agents:
Check_MK Agent (Server) - Save & go to service configuration
- Hostname:
-
En el servidor Linux:
# Descargar agente
wget https://checkmk.tudominio.com/monitoring/check_mk/agents/check-mk-agent_2.x.x-1_all.deb
# Instalar (Debian/Ubuntu)
sudo dpkg -i check-mk-agent_*.deb
# O para RHEL/CentOS
sudo rpm -i check-mk-agent-*.rpm
# Verificar instalación
systemctl status check-mk-agent@
# Permitir conexión desde CheckMK
# El agente escucha en puerto 6556
sudo firewall-cmd --add-port=6556/tcp --permanent
sudo firewall-cmd --reload
- En CheckMK: Discover services
- Click Full scan
- Revisa servicios detectados
- Accept all
- Activate changes
Añadir Host Windows
-
En CheckMK: Setup → Hosts → Add host
- Configuración igual que Linux
- Monitoring agents:
Check_MK Agent (Server)
-
En el servidor Windows:
- Descarga
check_mk_agent.msidesde CheckMK - Ejecuta el instalador
- Configura IP/hostname del servidor CheckMK
- El agente se instala como servicio de Windows
- Descarga
-
Firewall Windows:
- Permite puerto TCP 6556 entrante
- O el instalador lo hace automáticamente
-
En CheckMK: Discover services y Activate changes
Añadir Dispositivo SNMP
Switch/Router
- Habilitar SNMP en el dispositivo:
# Cisco IOS example
snmp-server community public RO
snmp-server location "Datacenter Madrid"
snmp-server contact "admin@example.com"
-
En CheckMK: Setup → Hosts → Add host
- Hostname:
switch01.example.com - IPv4 address:
192.168.1.1 - Monitoring agents:
SNMP - SNMP community:
public(o tu community) - SNMP version:
v2c - Save & go to service configuration
- Hostname:
-
Discover services y Activate changes
Impresora de Red
Similar a switches:
- Monitoring agents:
SNMP - CheckMK detecta automáticamente niveles de tóner, papel, etc.
Monitorización Docker
Opción 1: Agente en Host Docker
Instala agente CheckMK en el host que corre Docker. Detectará automáticamente contenedores.
Opción 2: Plugin Docker
# En el host Docker, instala plugin
cd /usr/lib/check_mk_agent/plugins
wget https://checkmk.tudominio.com/monitoring/check_mk/agents/plugins/mk_docker.py
chmod +x mk_docker.py
Esto monitoriza:
- Contenedores corriendo
- Uso de CPU/RAM por contenedor
- Estado de imágenes y volúmenes
Dashboards
Crear Dashboard
Customize → Dashboards → Add dashboard:
- ID:
overview - Title:
Resumen General - Add dashlet:
- Host statistics: Muestra hosts UP/DOWN
- Service statistics: Muestra servicios OK/WARNING/CRITICAL
- Top alerters: Hosts con más problemas
- Performance graphs: CPU, RAM, disco
- Save
Dashlets Útiles
- Host/Service statistics: Resumen de estado
- Average scatterplot: Gráficos de rendimiento
- Event bar chart: Eventos por tiempo
- Custom graph: Gráficos personalizados
- View: Vistas personalizadas
Grupos
Crear Grupos de Hosts
Setup → Hosts → Host groups → Add group:
- Name:
servidores-web - Alias:
Servidores Web
Al añadir hosts, asígnalos a grupos:
- Host tags:
Prod,Web,Critical - Host groups: Seleccionar grupos
Grupos de Servicios
Similar a host groups, para organizar servicios.
Checks Personalizados
Local Check (Script Bash)
En el host monitoreado:
# Crear script en /usr/lib/check_mk_agent/local/
cat > /usr/lib/check_mk_agent/local/custom_check.sh << 'EOF'
#!/bin/bash
# CheckMK local check format: STATUS NAME METRICS|OUTPUT
if [ $(df / | tail -1 | awk '{print $5}' | sed 's/%//') -gt 90 ]; then
echo "2 DiskRoot - Disco raíz > 90%"
else
echo "0 DiskRoot size=85% Disco raíz OK"
fi
EOF
chmod +x /usr/lib/check_mk_agent/local/custom_check.sh
En CheckMK, Discover services detectará DiskRoot.
Thresholds (Umbrales)
Configurar Umbrales
Setup → Hosts → Service monitoring rules:
- Busca el servicio (ej:
CPU utilization) - Create rule
- Conditions:
- WARNING:
80% - CRITICAL:
95%
- WARNING:
- Apply to: Seleccionar hosts/grupos
- Save y Activate changes
Business Intelligence (BI)
Crear Agregación BI
Setup → Business Intelligence → Add aggregation:
Ejemplo: Disponibilidad de aplicación web
- ID:
webapp-availability - Title:
Aplicación Web - Tree structure:
- Nodo raíz:
WebApp- Nodo hijo:
Servidor Web(host: web01) - Nodo hijo:
Base de Datos(host: db01) - Nodo hijo:
Balanceador(host: lb01)
- Nodo hijo:
- Nodo raíz:
- Aggregation function:
Best(OK si al menos uno está OK) - Save
Próximos Pasos
- Backup - Automatiza backups
- Configuración Inicial - Notificaciones
- Explora - Crea más dashboards y vistas