Мониторинг время работы службы Ubuntu

0

Задача стоит следующая. Мониторить время работы службы в ОС Ubuntu.

Штатный инструмент Zabbix не позволяет собирать информацию о времени работы службы через элементы. В Windows – да, на Unix – нет.

Поэтому придется решить этот вопрос кастомно.

В моем примере меня интересует служба mybot.service. Это какой-то бот на Pyton на сервере клиента.

Предположительно на сервере установлен Zabbix-Agent. В директории агента создам папку scripts и перейдем в нее.

Далее создаем сам файл скрипта uptime_mybot_service

Первоначальный вариант скрипта для отладки и проверки выглядит вот так

И сделаем файл исполяемым

Теперь проверим вывод информации

И получаем вывод нашего скрипта. Все работает корректно. Я редактирую скрипт, чтобы осталось только время вывода секунд и если служба не запущена. То есть вывод у нас будет без текста и ковычек. Чтобы типа данных считался числовой, а не текстовый.

 

И проверю вывод информации. Проверяю вывод.

Теперь нам нужно настроить заббикс на сбор этих данных. Переходим в каталог выше, нам нужно отредактировать zabbix_agentd.conf

Ищем раздел UserParameter и добавим туда следующее содержимое

Сохраняем файл и перезапустим Zabbix-Agent, чтобы применилась конфигурация.

Теперь нам необходимо эту информацию собирать в заббиксе. Переходим в нужный хост, создаем элемента данных

  1. Название нашего элмента данных;
  2. Тип агента я предпочитаю активный. но есть оставить просто zabbix агент — все будет работать;
  3. Ключ вызова нашего скрипта;
  4. Числовой, целое число;

Время проверки делаем под свою задачу.

Элемент данных создан. Переходим в триггеры и создаем триггер на основе данных.  Пример триггера.

Таким образом, если время работы служьы будет меньше 30 секунд — мы получим уведомелние.

Это решение не могу сказать правильным, но иногда приходиться его использовать, в целом рабочее.