Top Banner
The Dark Art of Container Monitoring Loris Degioanni
39

ContainerCon sysdig Slides

Apr 16, 2017

Download

Loris Degioanni
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ContainerCon sysdig Slides

The Dark Art of Container Monitoring

Loris Degioanni

Page 2: ContainerCon sysdig Slides

Me

Loris DegioanniCreator and CEO of sysdigPast: WinPcap, Wireshark

@lorisdegio

Page 3: ContainerCon sysdig Slides

Containers Are Great…

• less overhead• faster deployments• reproducibility of environments• cost optimizations• Isolation• flexibility

Page 4: ContainerCon sysdig Slides

…But Inspecting Containers Is Not Easy

Containers are:• Isolated• Self-Contained• Simple• Lightweight

Page 5: ContainerCon sysdig Slides

…But Inspecting Containers Is Not Easy

Containers are:• Isolated• Self-Contained• Simple• Lightweight

Can monitoring and troubleshooting respect these properties?

Page 6: ContainerCon sysdig Slides

•Containers•Overview of monitoring/troubleshooting options • command line• cAdvisor• Docker stats• sysdig

• Examples and demos

In This Talk

Page 7: ContainerCon sysdig Slides

•Containers•Overview of monitoring/troubleshooting options • command line• cAdvisor• Docker stats• sysdig

• Examples and demos

In This Talk

Page 8: ContainerCon sysdig Slides

•Containers•Overview of monitoring/troubleshooting options • command line• cAdvisor• Docker stats• sysdig

• Examples and demos

In This Talk

Page 9: ContainerCon sysdig Slides

Hypervisor

Monitoring VMs

VM1 VM3VM2

Page 10: ContainerCon sysdig Slides

Hypervisor

Monitoring VMs, Option 1

VM1 VM3VM2

Hypervisor-level instrumentation,Amazon CloudWatch

Page 11: ContainerCon sysdig Slides

Hypervisor

Monitoring VMs, Option 2

VM1 VM3VM2

Monitoring Agent

Page 12: ContainerCon sysdig Slides

OS

Monitoring Containers

Container1 Container3Container2

Page 13: ContainerCon sysdig Slides

OS

Monitoring Containers, Option 1

Container1 Container3Container2

Monitoring Agent

Page 14: ContainerCon sysdig Slides

OS

Monitoring Containers, Option 1

Container1 Container3Container2

Monitoring Agent

• Not scalable• Not composable• Adds dependencies/size• Kills the concept of one process per container

Page 15: ContainerCon sysdig Slides

OS

Monitoring Containers, Option 2

Container1 Container3Container2

Container runtime – level monitoringKernel-level instrumentation

Page 16: ContainerCon sysdig Slides

OS

Monitoring Containers, Option 3

Container1 MonitoringContainer

Container2

Page 17: ContainerCon sysdig Slides

•Containers•Overview of monitoring/troubleshooting options • command line• cAdvisor• Docker stats• sysdig

• Examples and demos

In This Talk

Page 18: ContainerCon sysdig Slides

•Containers•Overview of monitoring/troubleshooting options • command line• cAdvisor• Docker stats• sysdig

• Examples and demos

In This Talk

Page 19: ContainerCon sysdig Slides

•Containers•Overview of monitoring/troubleshooting options • command line• cAdvisor• Docker stats• sysdig

• Examples and demos

In This Talk

Page 20: ContainerCon sysdig Slides

In The Rest of this Talk

•Overview of Open Source monitoring/troubleshooting options • command line• cAdvisor• Docker stats• sysdig

• Examples and demos

Page 21: ContainerCon sysdig Slides

In The Rest of this Talk

•Overview of Open Source monitoring/troubleshooting options • command line• cAdvisor• Docker stats• sysdig

• Examples and demos

Page 22: ContainerCon sysdig Slides

Some Things We Want to Monitor

• Resource usage (CPU/Memory/Disk)• Network activity• File I/O activity• Errors/faults• Application activity/Logs• Topology

Page 23: ContainerCon sysdig Slides

Resource Usage (CPU/Memory/Disk)

• ps/top/htop from the host• Pro: always there• Cons: Very limited container context (full cgroup string only), work only from

the main host

• docker ps / docker top / docker stats• Pro: always there, APIs• Cons: Docker only, limited interactivity

• cAdvisor• sysdig

Page 24: ContainerCon sysdig Slides

Installing cAdvisorsudo docker run \--volume=/:/rootfs:ro \--volume=/var/run:/var/run:rw \--volume=/sys:/sys:ro \--volume=/var/lib/docker/:/var/lib/docker:ro \--publish=8080:8080 \--detach=true \--name=cadvisor \google/cadvisor:latest

Page 25: ContainerCon sysdig Slides

cAdvisor Pros and Cons

Pros• easy to install• works from a container• user friendly (web UI)• API• Integrations (e.g. InfluxDB, Prometheus, Heapster)

Cons: • (very) Limited set of metrics• Containers are black boxes

Page 26: ContainerCon sysdig Slides

Docker Stats APIThe most sophisticated Docker stats poller ever:echo -e "GET /containers/mysql/stats HTTP/1.1\r\n" | nc -U /var/run/docker.sock

Info:http://docs.docker.com/reference/api/docker_remote_api_v1.17/#get-container-stats-based-on-resource-usage

Page 27: ContainerCon sysdig Slides

Docker Stats API Pros and Cons

Pros• Part of Docker• Richer than cAdvisor• REST API• Integrations

• docker-collectd-plugin github.com/cloudwatt/docker-collectd-plugin• commercial vendors

Cons: • Docker only• Containers are black boxes

Page 28: ContainerCon sysdig Slides

sysdig

•Capture system events, filter them, run useful scripts• strace + tcpdump + lsof + htop + Lua•Open Source•Nice curses UI

Page 29: ContainerCon sysdig Slides

Design Goals

•Production-ready• Simple • lightweight

•Rich data• Instant value•Natural workflow•Native support for containers

Page 30: ContainerCon sysdig Slides

Design Goals

•Production-ready• Simple • lightweight

•Rich data• Instant value•Natural workflow•Native support for containers

Page 31: ContainerCon sysdig Slides

Installing sysdig

docker run -i -t --name sysdig --privileged -v /var/run/docker.sock:/host/var/run/docker.sock -v /dev:/host/dev -v /proc:/host/proc:ro -v /boot:/host/boot:ro -v /lib/modules:/host/lib/modules:ro -v /usr:/host/usr:ro sysdig/sysdig

Page 32: ContainerCon sysdig Slides

sysdig Architecture

Kernel

Container1

Docker

Container2

Docker

Container3

LXCAppApp

Page 33: ContainerCon sysdig Slides

sysdig Architecture

Kernel

Container1

Docker

Container2

Docker

Container3

LXCAppApp

Instrumentation through kernel module

Page 34: ContainerCon sysdig Slides

sysdig Architecture

Kernel

Container1

Docker

Container2

Docker

Container3

LXCAppApp

sysdig

Docker

Capture andanalysis

Page 35: ContainerCon sysdig Slides

sysdig Architecture

Kernel

Container1

Docker

Container2

Docker

Container3

LXCAppApp

sysdig

Docker

(optionally) Save to a trace file

foo.scap

Page 36: ContainerCon sysdig Slides

Viewing Network Activity

•cAdvisor•docker stats <container>• iftop/tcpdump/tshark in the container•sysdig

Page 37: ContainerCon sysdig Slides

Viewing Disk Activity

•iotop/lsof in the container•sysdig

Page 38: ContainerCon sysdig Slides

Viewing Application Activity

•Code/container instrumentation•Logs•sysdig

Page 39: ContainerCon sysdig Slides

Thank You!

www.sysdig.orghttps://github.com/draios/sysdigwww.sysdig.com