Архив метки: Prometheus

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

6 марта 2019
 

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

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: [simterm] root@bttrm-stage-console:/home/admin# systemctl restart supervisor [/simterm] Проверяем статус: [simterm] root@bttrm-stage-console:/home/admin# supervisorctl status projectname_daily_statistic_processing STARTING projectname_itunes_purchases:projectname_itunes_purchases_00 RUNNING pid 2323, uptime 0:00:27 projectname_itunes_purchases:projectname_itunes_purchases_01 RUNNING… Читать далее »

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

15 августа 2018
 

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

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

9 августа 2018
 

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

Prometehus: MySQL exporter

7 августа 2018
 

 Ещё одна задача по мониторингу – проверять доступ к серверу баз данных. Краткая заметка просто для примера. Используем prometheus/mysqld_exporter. Подключаемся к серверу БД, добавляем пользователя: [simterm] MariaDB [(none)]> CREATE USER ‘prometheus’@’10.0.2.7’ IDENTIFIED BY ‘password’; Query OK, 0 rows affected (0.00 sec) [/simterm] Задаём ему права доступа: [simterm] MariaDB [(none)]> GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.*… Читать далее »

Prometheus: Alertmanager и blackbox-exporter – проверка срока действия SSL и нотификация в Slack

27 июля 2018
 

 Основная задача – проверять SSL-сертификаты и уведомлять о том, что срок действия сертификата завершается. Запуск blackbox-exporter Все сервисы мониторинг запускаются из Compose-файла, который деплоится на хост мониторинга из Ansible-шаблона roles/monitoring/templates/prometheus-compose.yml.j2. Добавляем туда ещё один контейнер: … blackbox-exporter: image: prom/blackbox-exporter command: ‘–config.file=/config/blackbox.yml’ # for debug #command: ‘–config.file=/config/blackbox.yml –log.level=debug’ networks: – prometheus ports: – 9115:9115 volumes: -… Читать далее »

Grafana: создание dashboard

23 июля 2018
 

 Задача – добавить дашборд для отображения различной статистики с бекенда. Ниже описывается процесс создания дашборды, рассматриваются примеры запросов из Grafana к Prometheus для получения данных, настройки различных типов панелей, примеры метрик, которые можно использовать. Основная цель поста – записать для себя примеры использования Grafana, т.к. подобных примеров не встречал, хотя у Grafana отличная документация. Для… Читать далее »

Prometheus: nginx_exporter и сбор метрик с NGINX

19 июля 2018
 

 Имеется два експортёра для NGINX – discordianfish/nginx_exporter и hnlq715/nginx-vts-exporter. Второй предоставляет больше возможностей, но мне сейчас нужны самые базовые, поэтому использую discordianfish/nginx_exporter. NGINX status Сначала – добавим /nginx_status в NGINX. Проверяем – собран ли NGINX со статус-модулем: [simterm] root@bm-backed-app-dev:/opt/prometheus-client# nginx -V 2>&1 | grep -o with-http_stub_status_module with-http_stub_status_module [/simterm] Я добавил отдельный конфиг /etc/nginx/conf.d/status.conf с default_server, который принимает запросы… Читать далее »

Grafana: добавление CloudWatch data-sorce

18 июля 2018
 

 Для получения метрик из AWS CloudWatch для связки Grafana/Prometheus можно использовать два подхода: собирать метрики в Prometheus с помощью cloudwatch_exporter добавить новый data-source в Grafana, и рисовать графики используя его Ниже описывается процесс добавления data-source в Grafana и графиков AWS Load Balancer. IAM пользователь Добавляем IAM пользователя с Programmatic access: В Permissions выбираем Attach existing policies… Читать далее »