2

我有一个进程,我想监控 consul-template,它是当前由 systemd 管理的进程。我使用 Pandora 来监控我的其他进程的 HTTP 端点,但是 consul-template 没有 HTTP 端点。

我想到了几种方法:

一种是使用 python 启动 HTTP 服务器,该服务器将在运行 consul-template 进程时运行,问题是我不确定我能否保证在进程退出时 HTTP 服务器会退出。我也不能保证像它一样简单的 HTTP 服务器不会独立崩溃。

另一种解决方案是安装 Monit,它是一个功能齐全的监控服务,并且只使用它而不是 systemd 来进行进程管理。这种方法意味着我现在必须监控 Pandora 和 Monit 并相应地设置警报,我宁愿只设置一个 HTTP 端点,这样我就只能从 Pandora 进行监控。

4

1 回答 1

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 远程执行 status 命令:

 ssh user@example.com systemctl status consol-template
于 2017-01-17T18:29:04.280 回答