Рубрики
Uncategorized

Настройка мониторинга с помощью Docker -Compose — Часть 1: Прометей

В этом посте вы узнаете, как настроить Prometheus в контейнере Docker. Короче говоря : Что … Tagged с Docker, Prometheus, Monitoring, DevOps.

Настройка мониторинга с помощью Docker-Compose (серия 3 деталей)

В этом посте вы узнаете, как настроить Prometheus в контейнере Docker.

Короче говоря: что такое Prometheus?

Прометей является приложением мониторинга с открытым исходным кодом. Он царапает HTTP -конечные точки для сбора метрик, выявленных в простом текстовом формате.

Например, ваше веб -приложение может разоблачить метрическую

http_server_requests_seconds_count{exception="None", method="GET",outcome="SUCCESS",status="200",uri="/actuator/health"} 435

Что означает, что конечная точка /Привод/здоровье был успешно запросил 435 раз с помощью запроса GET.

Прометей также может создавать оповещения, если показатель превышает порог, например, Если ваша конечная точка вернулась более чем в сто раз больше кода состояния 500 за последние 5 минут.

Конфигурация

Чтобы настроить Prometheus, мы создаем три файла:

  • Prometheus/prometheus.yml — фактическая конфигурация Prometheus
  • Prometheus/alert.yml — предупреждения, которые вы хотите Прометей, чтобы проверить
  • Docker-Compose.yml

Prometheus/prometheus.yml

Добавьте следующее в Prometheus/prometheus.yml

global:
  scrape_interval: 30s
  scrape_timeout: 10s

rule_files:
  - alert.yml

scrape_configs:
  - job_name: services
    metrics_path: /metrics
    static_configs:
      - targets:
          - 'prometheus:9090'
          - 'idonotexists:564'

scrape_configs Скажите Прометею, где находятся ваши приложения. Здесь мы используем static_configs жесткий код некоторых конечных точек. Первый-Прометея (это имя службы в саме docker-compose.yml ), второе-для демонстрационных целей. Это конечная точка, которая всегда работает.

rule_files сообщает Прометею, где искать правила оповещения. Мы приходим к этому через мгновение.

scrape_interval Определяет, как часто проверять наличие новых показателей метрики.

Если царапина занимает больше времени, чем scrape_timeout (например, медленная сеть), Прометеус отменит скрас.

Prometheus/alert.yml

Этот файл содержит правила, которые Прометею периодически оценивает. Вставьте это в файл:

groups:
  - name: DemoAlerts
    rules:
      - alert: InstanceDown 
        expr: for: 5m 

вверх это встроенный показатель от Прометея. Он возвращает ноль, если услуги не были достигнуты в последнем царапине.

{job = "services"} фильтруют результаты вверх Содержать только метрики с тегом оказание услуг . Этот тег добавляется в наши метрики, потому что мы определили это как имя задания в Prometheus.yml

Docker-Compose.yml

Наконец, мы хотим запустить Prometheus. Поместите это в свой Docker-compose.yml :

version: '3'

services:
  prometheus:
    image: prom/prometheus:v2.21.0
    ports:
      - 9000:9090
    volumes:
      - ./prometheus:/etc/prometheus
      - prometheus-data:/prometheus
    command: --web.enable-lifecycle  --config.file=/etc/prometheus/prometheus.yml


volumes:
  prometheus-data:

Том ./prometheus:/etc/Прометей наше Прометей Папка в нужном месте для изображения, чтобы забрать нашу конфигурацию.

Prometheus-data:/prometheus используется для хранения скрещенных данных, чтобы они были доступны после перезапуска.

Команда:-web.enable-lifecycle-config.file =/etc/prometheus/prometheus.yml необязательно. Если вы используете -web.enable-lifecycle Вы можете перезагрузить файлы конфигурации (например, правила) без перезапуска Prometheus:

curl -X POST http://localhost:9000/-/reload

Если вы измените команду, вы переопределяете по умолчанию изображения и должны включать -config.file =/etc/prometheus/prometheus.yml Анкет

Начать Прометея.

Наконец, начните Прометея с:

docker-compose up -d

и открыть http://localhost: 9000 в вашем браузере.

Вы увидите ui Prometheus, где вы сможете ввести некоторые специальные запросы на свой

Как и ожидалось, это говорит вам, что ваш Prometheus встал, а другая услуга — нет.

Если вы пойдете в Оповещения Вы увидите, что наше предупреждение находится на рассмотрении (или уже стреляет):

Смотрите полный исходный код на GitHub

Настройка мониторинга с помощью Docker-Compose (серия 3 деталей)

Оригинал: «https://dev.to/ablx/minimal-prometheus-setup-with-docker-compose-56mp»