Docker Container Monitoring with Prometheus

45 minutes
  • 2 Learning Objectives

About this Hands-on Lab

Prometheus has exporters that are capable of easily exposing metrics for a variety of systems and infrastructures. Docker containers are a great way to manage your applications, and they can be monitored by Prometheus using cAdvisor. In this lab, you will have the opportunity to use cAdvisor to set up Prometheus monitoring for containers running on a Docker host.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Set Up cAdvisor to Expose Metrics
  1. Log in to the Docker server.

  2. Run cAdvisor in a container:

    docker run -d --restart always --name cadvisor -p 8080:8080 -v "/:/rootfs:ro" -v "/var/run:/var/run:rw" -v "/sys:/sys:ro" -v "/var/lib/docker/:/var/lib/docker:ro" google/cadvisor:latest
  3. Verify you can query cAdvisor for metrics:

    curl localhost:8080/metrics
Configure Prometheus to Scrape Docker Container Metrics from cAdvisor
  1. Log in to the Prometheus server.

    1. Edit the Prometheus config:
    sudo vi /etc/prometheus/prometheus.yml
    1. Under the scrape_configs section, add a scrape configuration for cAdvisor:
    - job_name: 'Docker Containers'
      static_configs:
      - targets: ['limedrop-docker:8080']
    1. Restart Prometheus to load the new configuration:
    sudo systemctl restart prometheus
    1. Use the expression browser to verify you can see Docker container metrics in Prometheus. You can access the expression browser in a web browser at http://<PROMETHEUS_SERVER_PUBLIC_IP>:9090:

    2. Run a query to view some Docker container metric data:

    container_memory_usage_bytes{name=~"web."}

Additional Resources

Your company, LimeDrop, is using Docker containers to manage applications. They would like to set up Prometheus monitoring for these containers.

Your task is to run and configure cAdvisor to provide Prometheus metrics for your Docker containers. Then configure Prometheus to scrape those metrics.

Additional info:

  • You can find documentation on exposing Docker container metrics with cAdvisor in the Prometheus documentation.
  • The Docker server is reachable from the Prometheus server at the hostname limedrop-docker.

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?