带警报的 K8S 监控堆栈配置
K8S monitoring stack configuration with alerts
我正在尝试为我的本地集群设置一个 k8s 监控堆栈。我要设置的是:
- 普罗米修斯
- Grafana
- Kube 状态指标
- 警报管理器
- 洛基
我可以找到很多资源来做到这一点,例如:
这会使用他们自己的 CRD 文件配置除 Loki 之外的监控堆栈:
https://medium.com/faun/production-grade-kubernetes-monitoring-using-prometheus-78144b835b60
使用单独的 helm 图表在不同的命名空间中配置 Prometheus 和 Grafana:
https://github.com/helm/charts/tree/master/stable/prometheus
https://github.com/helm/charts/tree/master/stable/grafana
- 将 Prometheus-operator helm chart 配置为单个命名空间:
https://github.com/helm/charts/tree/master/stable/prometheus-operator
我对警报通知的配置有疑问。
上面提到的所有三个设置都有 Grafana UI。因此,有一个选项可以通过 UI.
配置警报规则和通知渠道
但在第一个选项中,Prometheus 规则是通过 Prometheus 设置配置的,通知通道是通过使用 configMap CRD 的警报管理器设置配置的。
哪个配置选项更好?
通过 Grafana UI 和 Prometheus 规则通过此类 configMap CRD 设置警报有何不同?
两种方法的优缺点是什么?
我选择了第三个选项来在命名空间中设置 prometheus-operator。因为这个chart配置了prometheus、grafana、alertmanager。 Prometheus 默认添加为 grafana 中的数据源。它允许使用图表的值文件为 grafana 的普罗米修斯、数据源和仪表板添加额外的警报规则。
然后在同一个命名空间中配置Loki并将其添加为grafana中的数据源。
还配置了一个 webhook 以将通知从 alertmanager 重定向到 MS 团队。
我正在尝试为我的本地集群设置一个 k8s 监控堆栈。我要设置的是:
- 普罗米修斯
- Grafana
- Kube 状态指标
- 警报管理器
- 洛基
我可以找到很多资源来做到这一点,例如:
这会使用他们自己的 CRD 文件配置除 Loki 之外的监控堆栈: https://medium.com/faun/production-grade-kubernetes-monitoring-using-prometheus-78144b835b60
使用单独的 helm 图表在不同的命名空间中配置 Prometheus 和 Grafana: https://github.com/helm/charts/tree/master/stable/prometheus https://github.com/helm/charts/tree/master/stable/grafana
- 将 Prometheus-operator helm chart 配置为单个命名空间: https://github.com/helm/charts/tree/master/stable/prometheus-operator
我对警报通知的配置有疑问。
上面提到的所有三个设置都有 Grafana UI。因此,有一个选项可以通过 UI.
配置警报规则和通知渠道
但在第一个选项中,Prometheus 规则是通过 Prometheus 设置配置的,通知通道是通过使用 configMap CRD 的警报管理器设置配置的。
哪个配置选项更好?
通过 Grafana UI 和 Prometheus 规则通过此类 configMap CRD 设置警报有何不同?
两种方法的优缺点是什么?
我选择了第三个选项来在命名空间中设置 prometheus-operator。因为这个chart配置了prometheus、grafana、alertmanager。 Prometheus 默认添加为 grafana 中的数据源。它允许使用图表的值文件为 grafana 的普罗米修斯、数据源和仪表板添加额外的警报规则。
然后在同一个命名空间中配置Loki并将其添加为grafana中的数据源。 还配置了一个 webhook 以将通知从 alertmanager 重定向到 MS 团队。