【问题标题】:Monitor result of a bash command or shell script using Prometheus使用 Prometheus 监控 bash 命令或 shell 脚本的结果
【发布时间】:2021-12-16 05:46:41
【问题描述】:

我的要求是监控运行在 Kubernetes 集群内的公司的帮助台系统,例如 URL https://xyz.zendesk.com

他们提供API set 来有效地监控这一点。

我们可以使用 curl

轻松检查状态
$ curl -s "https://status.zendesk.com/api/components/support?domain=xyz.zendesk.com" | jq '.active_incidents'
[]

根据zendesk文档,上述输出表示成功状态。

现在主要是,公司使用 Prometheus 来监控一切。

如何让 Prometheus 从此 curl 命令的输出中检查成功状态?

我已经做了一些研究,发现了一些相关的线程 here 和使用 pushgateway

它们是否适用于我的要求或走错路?

【问题讨论】:

  • Prometheus 和 zendesk 在同一个集群中运行?
  • Prometheus 在 AWS 实例上的 docker 内运行,而不是来自同一个 Kubernetes 集群。

标签: docker kubernetes prometheus


【解决方案1】:

您可能(!?)想要的是:

  1. 提供 HTTP(s)(例如 /metrics)端点
  2. 以 Prometheus 的展示格式生成指标
  3. 来自 Zendesk 的 API

注意 curl 只给你#3

有一些似乎满足要求的解决方案示例,但没有来自 Zendesk:

https://www.google.com/search?q=%22zendesk%22+prometheus+exporter

还有 >2 个其他 Prometheus 导出器列表(都不包含 Zendesk):

我建议您联系 Zendesk 并询问是否已经有 Prometheus Exporter。没有找到真是令人惊讶。

编写 Prometheus 导出器很简单。 Prometheus Client libraries 和 Zendesk API client 可用且首选。虽然有可能,但 bash 可能不是最理想的。

如果所有您想要做的是获取该静态端点,获取 200 响应代码并确认正文是 [],您也许可以使用 Prometheus Blackbox exporter

注意 日志记录和监控工具通常提供更高级别的工具,提供类似于“通用转换器”的功能,便于将第三方系统的本地日志记录|监控格式转换为某种规范形式使用配置而不是代码。尽管在日志空间中,fluentd 就是一个例子。据我所知,Prometheus 没有这样的工具,但我觉得有人有机会创造一个。

【讨论】:

    猜你喜欢
    • 2018-01-09
    • 1970-01-01
    • 2016-08-10
    • 2012-03-16
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    • 2015-09-10
    • 2019-11-21
    相关资源
    最近更新 更多