Как отслеживать сервис systemd через конечную точку http

У меня есть процесс, который я хотел бы контролировать шаблон консула, который в настоящее время управляется systemd. Я использую Pandora для мониторинга конечной точки HTTP для других моих процессов, однако консул-шаблон не имеет конечной точки HTTP.

Я подумал о нескольких подходах:

Одним из них является запуск HTTP-сервера с python, который будет запускаться при запуске процесса cons-template, проблема в том, что я не уверен, что могу гарантировать, что HTTP-сервер завершит работу при выходе из процесса. Также я не могу гарантировать, что сервер HTTP настолько прост, насколько он не будет зависать независимо.

Другое решение состоит в том, чтобы установить Monit, который является полнофункциональным сервисом мониторинга, и просто использовать его вместо systemd для управления процессами. Этот подход будет означать, что мне теперь нужно отслеживать Pandora AND Monit и соответственно настраивать оповещения. Я бы предпочел просто получить конечную точку HTTP, чтобы я мог отслеживать только с Pandora.

1 ответ

systemd не имеет собственного HTTP-сервера, но система может запрашивать по сети через SSH. Вы найдете --host вариант для systemctl, Например, вы можете получить статус по сети в машиночитаемом формате, например:

 systemctl --host user@example.com status consol-template

Ищите возвращаемые значения как:

 ActiveState=active
 SubState=running

Чтобы убедиться, что служба запущена и работает.

Вы можете использовать задание cron, чтобы регулярно отправлять или извлекать эти данные о состоянии в место, к которому Pandora может получить доступ, или посмотреть, есть ли способ для Pandora проверить вывод команды, выполняемой через SSH.

Если у машины, на которой находится Pandora, нет systemctl установлен, вы все еще можете использовать тот же общий подход для удаленного выполнения команды состояния через ssh:

 ssh user@example.com systemctl status consol-template
Другие вопросы по тегам