Архив рубрики: Prometheus

Prometheus, a Cloud Native Computing Foundation project, is a systems and service monitoring system. It collects metrics from configured targets at given intervals, evaluates rule expressions, displays the results, and can trigger alerts if some condition is observed to be true.

Prometheus: получить общее количество процессов на сервере и process-exporter

9 сентября 2019
 

 Начали у нас на бекенде размножаться процессы. Причина сейчас не важна, интересно другое: захотелось собирать метрики по общему количеству процессов на хостах, но, внезапно — node-exporter такого не умеет: у него есть только метрики node_procs_running и node_procs_blocked, а хочется видеть количество процессов и в Sleep, и в Zombie. Используем вместо него process-exporter. Запускаем для проверки… Читать далее »

Prometheus» Alertmanager — отправка алертов в «/dev/null»

26 марта 2019
 

 В дополнение к посту Prometheus: роутинг алертов в Alertmanager. Имеется конфиг с роутами. Задача — вырезать все алерты от Дев-а, и слать в «/dev/null». Для этого — создаём пустой ресивер: … receivers: — name: ‘blackhole’ — name: ‘default’ slack_configs: — send_resolved: true title_link: ‘http://dev.monitor.example.world/prometheus/alerts’ title: ‘{{ if eq .Status «firing» }}:confused:{{ else }}:dancing_panda:{{ end }}… Читать далее »

Prometheus: мониторинг для RTFM — Grafana, Loki и promtail

9 марта 2019
 

 После внедрения Loki на рабочем проекте — решил добавить его и себе. А заодно — добавить node_exporter и alertmanager, что бы получать уведомления, когда на разделах будет заканчиваться место. Обычно «Ссылки по теме» размещаю в конце поста, но тут стоит их добавить в начале. Для общего знакомства с Prometheus: Prometheus: мониторинг — введение, установка, запуск,… Читать далее »

Prometheus: blackbox-exporter probe_http_status_code == 0 и его debug

6 марта 2019
 

 Сегодня решил обновить Grafana до уже релизной версии 6.0, а заодно — все остальные образы в стеке. Апдейт прошёл успешно (Loki наконец-то начала выводить имена файлов логов и все остальные лейблы), но вот в Slack сразу упала пачка CRITICAL алертов от blackbox-exporter, который проверяет все наши API-ендпоинты. Собственно, тут — пример использования дебага blackbox-exporter. Всего… Читать далее »

Docker: RabbitMQ: exec(): Unable to fork, Prometheus node_exporter и Docker limits

15 февраля 2019
 

 RabbitMQ перестал принимать новые сообщения, и при выполнении запроса — возвращает ошибки вида: exec(): Unable to fork write(): send of 12 bytes failed with errno=104 Connection reset by peer fwrite(): send of 19 bytes failed with errno=32 Broken pipe Собственно, по сообщениям видно, что проблема с памятью — exec() не может выполнить fork() и выделить… Читать далее »

Prometheus: роутинг алертов в Alertmanager

30 октября 2018
 

 Есть три рабочих окружения — Dev, Stage, Production. Есть пачка алертов с разными уровнями важности — info, warning и critical, например: … — name: SSLexpiry.rules rules: — alert: SSLCertExpiring30days expr: probe_ssl_earliest_cert_expiry{job=»blackbox»} — time() < 86400 * 30 for: 10m labels: severity: info annotations: summary: «SSL certificate warning» description: «SSL certificate for the {{ $labels.instance }}… Читать далее »

Prometheus: node_exporter — мониторинг supervisord

25 октября 2018
 

 Задача — мониторить статус supervisor и его задач. Используем node_exporter и его supervisord коллектор. Настройка supervisor Настраиваем сам supervisor — в конфиге /etc/supervisor/supervisord.conf, добавляем [inet_http_server]: … [inet_http_server] port = 127.0.0.1:9001 … Перезапускаем supervisor: Проверяем статус: Настройка node_exporter Проверяем node_exporter — запускаем пока вручную. Указываем ему —collector.supervisord и URL — —collector.supervisord.url=»http://localhost:9001/RPC2″: ОК, работает. Теперь добавим supervisor коллектор… Читать далее »

Prometheus: проверка отсутствия метрик — avg_over_time()

15 августа 2018
 

 Среди прочих алертов у нас есть алерты на падение сервиса — когда метрика *_up == 0. Проблема в том, что такой алерт сработает только в том случае, если екпортёр сервиса явно вернёт значение ноль, но если ЕС2 с сервисом и екпортёром был выключен/удалён — то Alertmanager ничего не сообщит. Например — алерт на RDS выглядит… Читать далее »

Linux: systemd сервис для Docker Compose

14 августа 2018
 

 Есть Docker Compose файл, который запускает Prometheus стек. Рабочий каталог Prometheus — /opt/prometheus, в котором находится Compose файл prometheus-compose.yml. Для управления им через systemd — создаём файл /etc/systemd/system/prometheus.service: [Unit] Description=Prometheus stack Requires=docker.service After=docker.service [Service] Restart=always WorkingDirectory=/opt/prometheus ExecStart=/usr/local/bin/docker-compose -f prometheus-compose.yml up ExecStop=/usr/local/bin/docker-compose -f prometheus-compose.yml down [Install] WantedBy=multi-user.target Проверяем. Запускаем: Проверяем контейнер: Статус процесса: При именениях в… Читать далее »

Prometheus: OpsGenie и Alertmanager — уведомления в почту/SMS/телефон

9 августа 2018
 

 OpsGenie — сервис, позволяющий настроить отправку уведомлений на почту, в Slack, SMS и умеющий выполнять звонки при возникновении алерта. Кроме того — у него есть мобильные приложения для Android и iOS. Сейчас у нас нотификации отправляются только в Slack, через slack_configs Alertmanager-а, но этого явно мало, особенно если ночью упадёт какой-то критичный сервис. Собственно, задачей… Читать далее »