Docker Monitoring Logs

Use when monitoring containers and aggregating logs.

LoopyLuci Updated 1 repo stars

File contents

Docker Monitoring & Logs

Monitoring containers and collecting logs.

Live Monitoring

docker stats                    # live CPU/memory/IO
docker stats --no-stream        # single snapshot
docker top myapp                # processes inside
docker events --since 5m        # events in last 5 min

Logs

docker logs --tail 100 -f myapp
docker logs --since 2024-01-01 myapp
docker logs myapp 2>&1 > out.txt

Log Drivers

x-logging: &log
  driver: "json-file"
  options: { max-size: "10m", max-file: "3" }

Prometheus

services:
  prometheus: { image: prom/prometheus, ports: ["9090:9090"] }
  cadvisor:
    image: gcr.io/cadvisor/cadvisor:latest
    volumes: [/:/rootfs:ro, /var/run:/var/run:ro]
    ports: ["8080:8080"]

Aggregation

foreach ($id in (docker ps -q)) {
    $name = docker inspect --format '{{.Name}}' $id
    docker logs $id > "logs_$name.txt" 2>&1
}

Pitfalls

  • json-file driver fills disk -- always set max-size/max-file
  • docker logs only works with json-file or journald drivers
  • docker events doesn't persist across restarts

LoopyLuci/Skills/tree/main/skills/docker-monitoring-logs commit fec9f05cae

Frequently asked questions

npx skillmds@latest add loopyluci/docker-monitoring-logs