Upload
sysdig
View
158
Download
1
Embed Size (px)
Citation preview
¿Cómo montar un sistema de monitorización?
Aplicaciones
Infrastructura
Health Checks
JVM/JMXCustom metrics
Métricas Procesado Unicornios, arcoiris y dashboards super bárbaros
% whoami
Jorge Salamero Sanz
<[email protected]> @bencerillo
@sysdig• Working on OSS last 12 years
• Working on OSS+Cloud last 5 years
• Working on monitoring last 3 years
• Technical Marketing Foo geek @sysdig
Agenda
• Retos de la infraestructura con contenedores
• Problemática de la monitorización tradicional
• Buenas prácticas monitorizando contenedores
• Sysdig, monitorización nativa de contenedores
Rompiendo moldes
El uso de microservicios y contenedores rompelas metodologías de monitorización y análisis tradicionales
Despliegue tradicional
Full host OS
kernelsystemdsyslogd
App services
MySQLNginx
OpenSSLJava
App A
App B
App C
Ops Devs
Revolución de los contenedores
Servidores Máquinas Virtuales Contenedores
Unidad: máquina
Orquestación: no
Arquitectura: monolítica
Unidad: máquina
Orquestación: externaArquitectura: monolítica
Unidad: (micro)servicio
Orquestación:nativaArquitectura: distribuida
Despliegue en contenedores
Sistema Operativo completo
kernel
+Docker
MySQL App A
Ops DevOps
Nginx + OpenSSL App B
Java 8.0 build XXX App C
… pero en realidad:
Base de datos Aplicación Caché
Nodo de cálculo
Nodo de cálculo Nodo de cálculo
Nodo de cálculo Nodo de cálculo
Nodo de cálculo
… pero en realidad:
Base de datos Aplicación Caché
Nodo de cálculo
Nodo de cálculo Nodo de cálculo
Nodo de cálculo Nodo de cálculo
Nodo de cálculo
Monitorización de contenedores
Nuevos retos:
1. Obtención de las métricas
2. Darle sentido a tanta información
3. Análisis y depuración de fallos
4. Equipos por servicio
Monitorización de contenedores
Nuevos retos:
1. Obtención de las métricas
2. Darle sentido a tanta información
3. Análisis y depuración de fallos
4. Equipos por servicio
1. Obtención de métricas
• We containers, porque:
– son sencillos
– son pequeños
– están aislados
– menos dependencias
• … pero son una caja negra opaca
“Apaños”
Agente en el contenedor Docker
Agente en el pod de Kubernetes
Exponer métricas a un agente externo
App Agente App Agente
App
AgenteApp
App
App
1. Instrumentación compleja (x2 debido a la monitorización) incluyendo configuración de los servicios
2. Colección de métricas pre-establecido y limitado (Docker API, etc)
Instrumentación en el kernel
Kernel
Docker
Container1
Container2
Container3
App Apprkt LXC
Sysdig
Docker
2. Obtención y análisis
1. Instrumentación en el kernel
Ventajas
• Una instrumentación/agente por host– crear o destruir un contenedor no require instrumentación
• Completa visibilidad: todas las llamadas al sistema:– descubrimiento automático de servicios
– se recogen todas las métricas (sin filtrado previo)
– monitorización a nivel de aplicación sin instrumentación
(decodificando el protocolo)
Monitorización de contenedores
Nuevos retos:
1. Obtención de las métricas
2. Darle sentido a tanta información
3. Análisis y depuración de fallos
4. Equipos por servicio
Recordad… pero en realidad:
Base de datos Aplicación Caché
Nodo de cálculo
Nodo de cálculo Nodo de cálculo
Nodo de cálculo Nodo de cálculo
Nodo de cálculo
2. Darle sentido a tanta información
• Monitorizar la infraestructura debería ser transparente y
automático (sin instrumentación ni configuración)
• Sólo deberías encargarte de tus propias métricas
• Toda métrica debería ser etiquetada automáticamente
• Métricas deben poder segmentarse basándose en los
servicios
Monitorización de contenedores
Nuevos retos:
1. Obtención de las métricas
2. Darle sentido a tanta información
3. Análisis y depuración de fallos
4. Equipos por servicio
3. Análisis y depuración de fallos
• Imagina:
strace + wireshark + htop + lsof + iostat + vmstat + *
• No disponibles en un contenedor, no los entienden
• Las métricas y los logs no tienen toda la
información, las llamadas al sistema si
• Infraestructura compleja y volátil
Monitorización de contenedores
Nuevos retos:
1. Obtención de las métricas
2. Darle sentido a tanta información
3. Análisis y depuración de fallos
4. Equipos por servicio
4. Equipos por servicio
• Etiquetas de la plataforma de orquestación, en
Kubernetes:
– namespaces (dev, prod)
– services, deployments, RCs, pods
– etiquetas propias
• Privilegios de acceso automáticos (dashboards, alertas,
etc) en escenarios multi-tenant
Monitorización de contenedores
Nuevos retos:
1. Obtención de las métricas
2. Darle sentido a tanta información
3. Análisis y depuración de fallos
4. Equipos por servicio
Sysdig
• 100% software libre
• 1M+ descargas
• Análisis en 1 host
• SaaS y on-prem
• 200+ clientes
• Análisis en n hosts
• Dashboards, alertas,
eventos, equipos
Proyectos complementarios
• Sysdig tracers: trazabilidad de transacciones, APM
sencillo (aunque instrumentado)
• Sysdig Falco: monitorización de seguridad de tus
contenedores