Мониторинг служб Linux c помощью Prometheus

от автора

Автор: Senior Devops. Ведущий специалист по инфраструктуре Hostkey Никита Зубарев

В прошлой статье мы рассказывали, как для мониторинга сервисов с помощью Prometheus настроить сбор метрик и отображение тревог. Однако в процессе эксплуатации возник вопрос, как мониторить отдельные службы на серверах Linux. Например, в одной из прошлых статей мы описывали кейс использования веб-консолей Ovirt c помощью Apache Guacamole. Теперь рассмотрим, как организовать мониторинг работы сервисов на Linux-машинах.

Guacamole — кроссплатформенный шлюз удаленного рабочего стола, для его работы необходимы Apache Tomcat и Guacd

Открываем сервис, созданный для node_exporter:

/usr/lib/systemd/system/node_exporter.service

[Unit]  Description=Prometheus exporter for machine metrics, written in Go with pluggable metric collectors. Documentation=https://github.com/prometheus/node_exporter After=network.target   [Service]  EnvironmentFile=-/etc/default/node_exporter User=root ExecStart=/usr/bin/node_exporter $NODE_EXPORTER_OPTS Restart=on-failure RestartSec=5s  [Install]  WantedBy=multi-user.target  по дефолту $NODE_EXPORTER_OPTS подгружается из файла : # /etc/default/node_exporter  При необходимости мы можем либо мониторить отдельные службы, добавив опцию collector.systemd.unit-whitelist:  #NODE_EXPORTER_OPTS="--collector.systemd --collector.systemd.unit-whitelist="(tomcat|guacd).service""

После перезапуска сервиса получаем метрику на node_exporter:

Остается описать правило для алерта:

 - alert: guacd_service     expr: node_systemd_unit_state{name="guacd.service",state="active"} == 0     for: 1s     annotations:       summary: "Instance {{ $labels.instance }} is down"       description: "{{ $labels.instance }} of job {{ $labels.job }} is down."   - alert: tomcat_service     expr: node_systemd_unit_state{name="tomcat.service",state="active"} == 0     for: 1s     annotations:       summary: "Instance {{ $labels.instance }} is down"       description: "{{ $labels.instance }} of job {{ $labels.job }} is down." 

Пример алерта на дашборде Alertmanager в Grafana:

Выводы

В этой небольшой статье мы рассмотрели, как выполняется мониторинг работы сервисов на Linux-машинах. Это решение позволяет отслеживать работы любого systemd-сервера и значительно упрощает администрирование серверного оборудования. В следующей статье мы расскажем, как можно не отображать базовые параметры, которые отдает exporter.


ссылка на оригинал статьи https://habr.com/ru/company/hostkey/blog/696918/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *