JavaRush /Курси /Модуль 2: Fullstack /Налаштування моніторингу контейнерів з Prometheus

Налаштування моніторингу контейнерів з Prometheus

Модуль 2: Fullstack
Рівень 17 , Лекція 3
Відкрита

4.1 Встановлення Prometheus

Prometheus — це потужна система моніторингу та сповіщень з відкритим вихідним кодом, створена для збору та збереження метрик з різних джерел, включаючи Docker-контейнери. У цій лекції ми детально розглянемо процес налаштування моніторингу контейнерів за допомогою Prometheus, включаючи встановлення, налаштування збору метрик та інтеграцію з Docker.

1. Завантаження і встановлення Prometheus

Спочатку завантажте останню версію Prometheus з офіційного сайту:

Terminal

wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz

Розпакуйте архів:

Terminal

tar xvfz prometheus-*.tar.gz
cd prometheus-*      

Перемістіть бінарні файли до /usr/local/bin:

Terminal

sudo mv prometheus /usr/local/bin/
sudo mv promtool /usr/local/bin/

4.2 Налаштування конфігураційного файлу Prometheus

Prometheus використовує конфігураційний файл prometheus.yml для визначення джерел метрик і налаштувань збору даних. Створіть або відредагуйте файл prometheus.yml:

Yaml

global:
  scrape_interval: 15s  # Інтервал збору метрик
      
scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
      
  - job_name: 'cadvisor'
    static_configs:
      - targets: ['localhost:8080']

Цей конфігураційний файл включає два завдання (job):

  1. prometheus: для збору метрик із самого Prometheus.
  2. cadvisor: для збору метрик із cAdvisor, який буде використовуватися для моніторингу Docker-контейнерів.

5.3 Запуск Prometheus

Запусти Prometheus, використовуючи створений конфігураційний файл:

Terminal

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, щоб застосувати зміни:

Terminal

prometheus --config.file=prometheus.yml

5.6 Перевірка збору метрик

Перейдіть у веб-інтерфейс Prometheus за адресою http://localhost:9090 і переконайтеся, що Prometheus збирає метрики з cAdvisor. Для цього виконайте запит у Prometheus:

Terminal

container_cpu_usage_seconds_total

Ви повинні побачити дані, зібрані з Docker-контейнерів.

5.7 Додавання додаткових метрик

Ти можеш додати нові метрики в конфігураційний файл Prometheus, щоб збирати більше інфи про твої контейнери. Приклад додаткових метрик:

Yaml

  - job_name: 'node'
    static_configs:
      - targets: ['localhost:9100']

Для цього потрібно встановити node_exporter, який дає метрики про стан системи-хоста.

Завантаж і встанови node_exporter:

Terminal

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:

Terminal

node_exporter &

Тепер node_exporter буде доступний за адресою http://localhost:9100.

5.8 Створення правил сповіщення

Prometheus підтримує створення правил сповіщення для інформування адміністраторів про проблеми. Додайте правила сповіщення до конфігураційного файлу prometheus.yml:

Yaml

rule_files:
  - "alert.rules"
      
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      - "localhost:9093"

Створіть файл alert.rules з прикладом правил:

Yaml

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 хвилину."
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ