Prometheus 已经成为云原生监控的事实标准。整个生态包含诸多组件,为了简化安装部署和配置高可用等,社区开发了kube-prometheus项目。接下来用一系列文章介绍一下相关配置。
项目简介:
kube-prometheus 是一个基于 Kubernetes 部署的 Prometheus 和 Grafana 监控系统的完整解决方案,是 Prometheus Operator 的实现之一。
相比于手动安装并配置 Prometheus、Alertmanager、Grafana 等单个组件,使用 kube-prometheus 可以节省部署和管理Prometheus监控生态组件的时间和精力。同时,kube-prometheus 还提供了可自动化的滚动更新和自适应扩展等功能,以适应动态变化的 Kubernetes 集群。
Prometheus 和 Alertmanager 组件被配置为statefulset类型,并且默认高可用。
并且默认安装并配置了node-exporter, blackbox-exporter, kube-state-metrics和prometheus-adapter组件。
内置了很多常用的 Grafana Dashboard
项目地址: https://github.com/prometheus-operator/kube-prometheus/
kube-prometheus 安装后创建的CRD及作用
CRD | 作用 |
---|---|
alertmanagerconfigs | alertmanager配置 |
alertmanagers | alertmanager实例 |
podmonitors | 通过selector选择被监控的pod和metrics 端点 |
probes | 创建blackbox监控目标 |
prometheuses | Prometheus实例 |
prometheusrules | 创建告警规则 |
servicemonitors | 创建监控目标 |
thanosrulers | 数据集中存储 |
安装
安装非常简单
参考项目github主页,注意不同版本与kubernetes兼容性(主页有兼容性矩阵)。
建议下载与kubernetes版本兼容的最新的版本。
安装命令:
kubectl apply --server-side -f manifests/setup
kubectl wait \--for condition=Established \--all CustomResourceDefinition \--namespace=monitoring
kubectl apply -f manifests/
如果要修改Prometheus配置就编辑prometheuses 这个CR,直接编辑statefulset是没作用的。如要修改Prometheus pod的resource request和limits,或者数据保留天数 retention:(默认30d),或者为Prometheus挂载持久化存储。
kubectl -n monitoring edit prometheuses k8s
如果要修改Alertmanager配置就编辑alertmanagers这个CR,直接编辑statefulset是没作用的。如修改日志级别为debug 以调试。
kubectl -n monitoring edit alertmanagers main
Grafana 直接修改deployment。如持久化存储等。
kubectl -n monitoring edit deployments.apps grafana