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: "Виявлено високе використання ЦП"
description: "Контейнер використовує більше 85% ЦП більше ніж 1 хвилину."
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ