Автор: 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.