Среда выполнения Docker отслеживается для определения производительности и поведения контейнеров и хост-систем.: Покажем, как при этом используются Prometheus и Grafana.
Потребуется установить в хост-системе (все загружается с официальных сайтов):
- Docker для запуска контейнеров.
- Prometheus для сбора метрик среды Docker.
- Grafana для визуализации метрик, собранных с Prometheus.

Этап 1. Установка сервера Prometheus
Prometheus — это система отслеживания для сбора и хранения данных временных рядов, в которой имеются инструменты для запрашивания и визуализации данных.
Устанавливаем Prometheus в системе Linux.
Загружаем пакет Prometheus:

Извлекаем его:

Переходим в папку Prometheus:

Запускаем:

С помощью Prometheus по умолчанию через порт 9090 прослушиваются входящие HTTP-запросы. Перейдя в браузере на http://localhost:9090
, получаем доступ к веб-интерфейсу Prometheus:

Этап 2. Установка сервера Grafana
Grafana — популярный Open Source инструмент визуализации и отслеживания данных для создания на их основе дашбордов и графиков.
Устанавливается Grafana на компьютере так:

После установки открываем браузер и переходим на http://localhost:3000. Появится страница авторизации Grafana. Вводим имя пользователя по умолчанию admin и пароль admin:

Этап 3. Настройка Prometheus для извлечения метрик из среды выполнения Docker
Серверы Prometheus и Grafana запущены. Теперь создаем для Prometheus конфигурационный файл, где указываются цели для извлечения метрик из среды выполнения Docker и другие параметры:

В этом конфигурационном файле мы указали, что в Prometheus метрики из среды выполнения Docker должны извлекаться каждые 15 секунд. В поле targets («Цели») указываются хост и порт для извлечения метрик. Здесь мы извлекаем метрики из демона Docker, запускаемого на локальном хосте в порту 9323.
Этап 4. Запуск конфигурации брандмауэра Docker
Чтобы с помощью Prometheus извлекать метрики из среды выполнения Docker, запустим брандмауэр Docker. Этим специальным инструментом метрики из среды выполнения Docker предоставляются в формате, пригодном для извлечения в Prometheus.
Запускаем брандмауэр Docker такой командой:

Этап 5. Создание дашборда Grafana
Настроив Prometheus и запустив экспортер Docker, создаем в Grafana дашборд для визуализации метрик:

В дашборде Grafana показаны метрики для неудавшихся сборок, загрузки ЦП, системных байтов, процессов ЦП и информации об операционной системе.
Это была сложная задача: возник ряд трудностей при попытке извлечь метрики из среды выполнения Docker для Prometheus. Их удалось устранить, загрузив пакет брандмауэра из apt-репозитория. Теперь можно просматривать метрики, запускаемые в среде выполнения Docker.
Читайте также:
- 10 ключевых команд Docker в арсенал фронтенд-разработчиков
- CHRONOS: современный мониторинг работоспособности приложений
- Как оркестровать микросервисы с помощью Docker Compose
Читайте нас в Telegram, VK и Дзен
Перевод статьи Justice Clement: HOW I MONITORED DOCKER RUNTIME ENVIRONMENT USING PROMETHEUS AND GRAFANA