4.1 Установка Prometheus
Prometheus — это мощная система мониторинга и оповещения с открытым исходным кодом, разработанная для сбора и хранения метрик из различных источников, включая Docker-контейнеры. В этой лекции мы подробно рассмотрим процесс настройки мониторинга контейнеров с помощью Prometheus, включая установку, настройку сбора метрик и интеграцию с Docker.
1. Скачивание и установка Prometheus
Сначала загрузите последнюю версию Prometheus с официального сайта:
wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz
Распакуйте архив:
tar xvfz prometheus-*.tar.gz
cd prometheus-*
Переместите бинарные файлы в /usr/local/bin:
sudo mv prometheus /usr/local/bin/
sudo mv promtool /usr/local/bin/
4.2 Настройка конфигурационного файла Prometheus
Prometheus использует конфигурационный файл prometheus.yml для определения источников метрик и настроек сбора данных. Создайте или отредактируйте файл prometheus.yml:
global:
scrape_interval: 15s # Интервал сбора метрик
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'cadvisor'
static_configs:
- targets: ['localhost:8080']
Этот конфигурационный файл включает два задания (job):
prometheus: для сбора метрик с самого Prometheus.cadvisor: для сбора метрик с cAdvisor, который будет использоваться для мониторинга Docker-контейнеров.
5.3 Запуск Prometheus
Запустите Prometheus с использованием созданного конфигурационного файла:
prometheus --config.file=prometheus.yml
Prometheus будет доступен по адресу http://localhost:9090.
5.4 Установка и настройка cAdvisor
cAdvisor (Container Advisor) — это инструмент для мониторинга контейнеров, который собирает и предоставляет метрики для контейнеров Docker. Для его использования выполните следующие шаги:
Запустите cAdvisor в Docker-контейнере:
docker run -d \
--name=cadvisor \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:ro \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--publish=8080:8080 \
--privileged \
gcr.io/cadvisor/cadvisor:latest
cAdvisor будет доступен по адресу http://localhost:8080.
5.5 Обновление конфигурации Prometheus для cAdvisor
Убедитесь, что конфигурация Prometheus включает задание для cAdvisor. Пример конфигурации был представлен выше.
Перезапустите Prometheus, чтобы применить изменения:
prometheus --config.file=prometheus.yml
5.6 Проверка сбора метрик
Перейдите в веб-интерфейс Prometheus по адресу http://localhost:9090 и убедитесь, что Prometheus собирает метрики с cAdvisor. Для этого выполните запрос в Prometheus:
container_cpu_usage_seconds_total
Вы должны увидеть данные, собранные с Docker-контейнеров.
5.7 Добавление дополнительных метрик
Вы можете добавить дополнительные метрики в конфигурационный файл Prometheus, чтобы собирать больше данных о ваших контейнерах. Пример дополнительных метрик:
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
Для этого потребуется установить node_exporter, который предоставляет метрики о состоянии хостовой системы.
Скачайте и установите node_exporter:
wget https://github.com/prometheus/node_exporter/releases/download/v1.2.2/node_exporter-1.2.2.linux-amd64.tar.gz
tar xvfz node_exporter-*.tar.gz
sudo mv node_exporter-1.2.2.linux-amd64/node_exporter /usr/local/bin/
Запустите node_exporter:
node_exporter &
Теперь node_exporter будет доступен по адресу http://localhost:9100.
5.8 Создание правил оповещения
Prometheus поддерживает создание правил оповещения для уведомления администраторов о проблемах. Добавьте правила оповещения в конфигурационный файл prometheus.yml:
rule_files:
- "alert.rules"
alerting:
alertmanagers:
- static_configs:
- targets:
- "localhost:9093"
Создайте файл alert.rules с примером правил:
groups:
- name: example
rules:
- alert: HighCPUUsage
expr: container_cpu_usage_seconds_total{job="cadvisor"} > 0.85
for: 1m
labels:
severity: warning
annotations:
summary: "High CPU usage detected"
description: "Container is using more than 85% CPU for more than 1 minute."
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ