我有一个进程,我想监视领事模板,这是当前由systemd管理的进程。我使用 Pandora 来监控其他进程的 HTTP 端点,但是 consul-template 没有 HTTP 端点。
我想到了几种方法:
一种是使用 python 启动一个 HTTP 服务器,该服务器将在 consul-template 进程运行时运行,问题是我不确定我是否可以保证 HTTP 服务器会在进程退出时退出。我也不能保证HTTP服务器像它一样简单不会独立崩溃。
另一种解决方案是安装Monit,这是一个功能齐全的监视服务,并且仅使用它而不是systemd来进行进程管理。这种方法意味着我现在必须监视Pandora和Monit并相应地设置警报,我宁愿建立一个HTTP端点,以便我只能从Pandora进行监视。
systemd
没有本机HTTP服务器,但系统可以通过SSH通过网络进行查询。您将找到systemctl
的--host
选项。例如,您可以通过网络以机器可读的格式获取状态,如下所示:
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