Недавно появилась необходимость настроить мониторинг служб запущенных по средствам Systemd. В данной статье расскажу о том как я настроил мониторинг таких демонов по средствам Zabbix-а.
ZABBIX — Настраиваем мониторинг демонов запущенных через Systemd.
Немного теории. Systemd — менеджер системы и сервисов(демонов) в операционной системе Linux. При помощи данного менеджера можно отслеживать состояния демонов, перезапустить их, просматривать всю интересующую информацию по ним. В общем может многое, глубоко вдаваться не буду. Представим, что у нас есть уже работающая служба, через systemctl, с названием «kktstoredecrypted» и нам необходимо настроить для неё мониторинг.
Так вот, возникла необходимость настроить мониторинг таких демонов по средствам Zabbix-а. Для настройки мониторинга у нас есть множество вариантов, я выделил два:
- Воспользоваться стандартным ключём «proc.num[]»
- И создать отдельный параметр для zabbix, в котором будем выполнять определённую команду.
Первый вариант меня немного не устраивал, так он будет определять только, что сам демон запущен, но не даст данных о том, что он активен в среде systemd. Но кому интересно первый способ описан тут: ZABBIX — Настраиваем мониторинг служб.
Во втором варианте мы будем проверять активна ли служба при помощи systemctl, переменной «is-active». Для этого первым делом необходимо будет указать пользовательский параметр в конфигурационном файле zabbix-агента. У меня конфиг агента лежит по такому пути «/etc/zabbix/zabbix_agentd.conf». В консоли debian-а вводим следующую команду:
1 |
sudo nano /etc/zabbix/zabbix_agentd.conf |
Спускаемся в самый низ файла и добавляем наш параметр:
1 |
UserParameter=kktfns2.service[*],systemctl is-active --quiet '$1' && echo 0 || echo 1 |
kktfns2.service[*] — указываем имя нашего ключа, может быть любым.
systemctl is-active —quiet ‘$1’ && echo 0 || echo 1 — производим проверку, если служба запущена возвращает «0», если нет то «1».
$1 — данный параметр будет передавать через элемент данных в zabbix-е, там будет название службы.
Далее необходимо перезапустить zabbix-агент, можно такой командой:
1 |
sudo /etc/init.d/zabbix-agent restart |
Далее нам необходимо создать элемент данных, о том как создавать можете прочитать тут: ZABBIX — Как создать элемент данных. Вносим в ключ следующие параметры (в выборе их не будет):
1 |
kktfns2.service[kktstoredecrypted] |
kktfns2.service — наш пользовательский параметр.
[kktstoredecrypted] — название нашей службы.
Дальше создаём триггер, подробнее о том как это сделать можете прочитать тут: ZABBIX — Как создать триггер. Указываем следующие выражение:
1 |
{GSA Monitoring KKTFNS2 Servers:kktfns2.service[kktstoredecrypted].min(#2)}<>0 |
Получается, мы указываем наш параметр пользователя, название службы и условие, что минимум две проверки должны вернуть значение не равное нулю. Если значение будет больше или меньше нуля триггер срабатывает.
Таким образом мы можем отслеживать, что наши службы запущены через systemctl и активны.
Надеюсь данная статья Вам помогла. Не забывайте пользоваться кнопками «Поделиться в соц. сетях», так же подписываться на наш Канал и группы в ВК, Twitter, Facebook.
Всем удачи и море печенек!