Docker Daemon Monitoring with Prometheus

45 minutes
  • 2 Learning Objectives

About this Hands-on Lab

Prometheus is capable of monitoring a wide variety of systems and infrastructures, including Docker. In this lab, you will have the opportunity to set up Prometheus to monitor a Docker daemon. This will give you some hands-on experience with the process of monitoring Docker daemons with Prometheus.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Configure the Docker Daemon to Serve Prometheus Metrics
  1. Log in to the Docker server.

  2. Edit the Docker config file:

    sudo vi /etc/docker/daemon.json
  3. Add configuration to enable experimental mode and set the metrics address:

    {
      "experimental": true,
      "metrics-addr": "10.0.1.102:9323"
    }
  4. Restart Docker to load the new configuration:

    sudo systemctl restart docker
  5. Verify Docker is serving Prometheus metrics:

    curl 10.0.1.102:9323/metrics
Configure Prometheus to Scrape Docker Metrics
  1. Log in to the Prometheus server.

  2. Edit the Prometheus config:

    sudo vi /etc/prometheus/prometheus.yml
  3. Under the scrape_configs section, add a scrape configuration for Docker:

    - job_name: 'Docker'
      static_configs:
      - targets: ['limedrop-docker:9323']
  4. Restart Prometheus to load the new configuration:

    sudo systemctl restart prometheus
  5. Use the expression browser to verify you can see Docker metrics in Prometheus. You can access the expression browser in a web browser at http://<PROMETHEUS_SERVER_PUBLIC_IP>:9090.

  6. Run a query to view some Docker metric data:

    engine_daemon_container_states_containers

Additional Resources

Your company, LimeDrop, is using Prometheus to monitor their infrastructure. Recently, they have been making use of containers to manage applications. A new Docker server has been created, and the Docker daemon running on that server needs monitoring.

Your task is to set up Prometheus monitoring for this Docker daemon. Configure the Docker daemon to expose metrics, and then configure Prometheus to scrape them.

Additional info:

  • You can find documentation on exposing Docker metrics in the Docker 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?