【问题标题】:How to monitor a systemd service via http endpoint如何通过 http 端点监控 systemd 服务
【发布时间】:2017-01-17 05:55:23
【问题描述】:

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

我想到了几种方法:

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

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

【问题讨论】:

    标签: monitoring systemd monit consul-template


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2023-03-29
      • 2015-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-25
      • 2014-05-21
      • 1970-01-01
      相关资源
      最近更新 更多