the dark art of container monitoring - spanish

37
Jorge Salamero Sanz The Dark Art of Container Monitoring

Upload: sysdig

Post on 16-Apr-2017

157 views

Category:

Internet


1 download

TRANSCRIPT

Jorge Salamero Sanz

The Dark Art of Container Monitoring

¿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

Esquema de una aplicación

Base de datos Applicación Caché

backend middleware frontend

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

Esquema de una aplicación

Base de datos Applicación Caché

backend middleware frontend

Nuevos esquemas de organización

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

Esquema de una aplicación

Base de datos Applicación Caché

backend middleware frontend

Tu plataforma ya sabe esto

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

Caso real

https://github.com/kubernetes/kubernetes/issues/14051

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

Demostración

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

Equipos en la infraestructura

Francesc Zacarias, SRE @ Spotify

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

Usuarios

Proyectos complementarios

• Sysdig tracers: trazabilidad de transacciones, APM

sencillo (aunque instrumentado)

• Sysdig Falco: monitorización de seguridad de tus

contenedores