提问者:小点点

使用Prometheus监控bash命令或外壳脚本的结果


我的要求是监控库伯内特斯集群内运行的公司服务台系统,例如URLhttps://xyz.zendesk.com

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

我们可以使用curl轻松检查状态

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

上述输出表示根据zendesk留档的成功状态。

现在主要的部分是,公司使用普罗米修斯来监控一切。

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

我已经做了一些研究,并在这里找到了一些相关的线程和使用push网关

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


共1个答案

匿名用户

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

  1. 提供HTTP(例如/metrics)endpoint
  2. 以普罗米修斯的展览格式生成指标
  3. 来自Zendesk的API

注意curl只给你#3

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

https://www.google.com/search?q="zendesk"普罗米修斯出口商

那里有

  • https://prometheus.io/docs/instrumenting/exporters/
  • https://github.com/prometheus/prometheus/wiki/Default-port-allocations

我建议你联系Zendesk并询问是否已经有普罗米修斯出口商。没有找到令人惊讶。

编写Prometheus导出器很简单。Prometheus客户端库和ZendeskAPI客户端是可用的和首选的。虽然这是可能的,但bash可能不是最佳的。

如果您只想获取该静态endpoint,获取200响应代码并确认正文是[],您可以使用Prometheus Blackbox导出器

注意日志记录和监控工具通常提供一个更高级别的工具,提供类似于“通用翻译器”的东西,便于使用config而不是代码将第三方系统的原生日志记录|监控格式转换为某种规范形式。尽管在日志记录领域,fluentd就是一个例子。据我所知,Prometheus没有这样的工具,但我感觉有人有机会创建一个。