【问题标题】:How to get prometheus to monitor kubernetes service?如何让prometheus监控kubernetes服务?
【发布时间】:2017-07-10 08:27:06
【问题描述】:

我想监控我的 Kubernetes 服务对象,以确保它们后面有 > 0 个处于“运行”状态的 Pod。

但是,要做到这一点,我必须首先按服务对 Pod 进行分组,然后再按状态对它们进行进一步分组。

我也想以编程方式执行此操作(例如,对于命名空间中的每个服务...)

Sensu kubernetes 插件中已经有一些代码可以做到这一点:https://github.com/sensu-plugins/sensu-plugins-kubernetes/blob/master/bin/check-kube-service-available.rb 但我还没有看到任何显示如何使用 Prometheus 做到这一点的代码。

有人用 Prometheus 设置 Kubernetes 服务级别的健康检查吗?如果是这样,您是如何按服务分组然后按 Pod 状态分组的?

【问题讨论】:

    标签: kubernetes monitoring prometheus promql


    【解决方案1】:

    我看到的 Prometheus 服务检查示例依赖于黑盒导出器:

    黑盒导出器将在服务上尝试给定的 URL。如果成功,则至少有一个 pod 已启动并正在运行。

    查看示例:https://github.com/prometheus/prometheus/blob/master/documentation/examples/prometheus-kubernetes.yml in job kubernetes-service-endpoints

    要探测的 URL 可能是您的活跃度探测或其他东西。如果您的服务不使用 HTTP,您也可以让 blackbox 导出器测试其他协议。

    【讨论】: