Архив рубрики: 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: роутинг алертов в 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-а, но этого явно мало, особенно если ночью упадёт какой-то критичный сервис. Собственно, задачей… Читать далее »

Prometehus: MySQL exporter

7 августа 2018
 

 Ещё одна задача по мониторингу — проверять доступ к серверу баз данных. Краткая заметка просто для примера. Используем prometheus/mysqld_exporter. Подключаемся к серверу БД, добавляем пользователя: Задаём ему права доступа: Запускаем експортер: Проверяем метрики: Добавляем в Ansible шаблон Compose файла: … mysql_exporter: image: prom/mysqld-exporter networks: — prometheus-client ports: — 9104:9104 environment: — DATA_SOURCE_NAME={{ mysql_monitoring_user }}:{{ mysql_monitoring_pass }}@({{… Читать далее »

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 со статус-модулем: Я добавил отдельный конфиг /etc/nginx/conf.d/status.conf с default_server, который принимает запросы на статус: server {     charset utf-8;     listen 80 default_server;     server_name _;     location /nginx_status {         stub_status on;         access_log off;         allow 127.0.0.1;         deny all;… Читать далее »

Prometheus: CloudWatch exporter — сбор метрик из AWS и графики в Grafana

21 июня 2018
 

 Используем prometheus/cloudwatch_exporter. Клиент написан, внезапно, на Java, из минусов — не умеет экпортировать теги AWS в метки Prometheus (есть альтернативный клиент — technofy/cloudwatch_exporter, который вроде бы умеет). IAM пользователь Для IAM пользователя, доступы которого будет использовать експортёр требуются роли cloudwatch:ListMetrics и cloudwatch:GetMetricStatistics (надо проверить — сработает ли роль CloudWatchAgentServerPolicy, подключенная к EC2, что бы не использовать Access/Secret… Читать далее »