k8s 监控告警终极方案

本文分享了在K8S上构建监控告警平台的过程,包括使用Prometheus的Exporter收集指标、VictoriaMetrics作为长期存储解决方案、夜莺替代Prometheus报警配置,以及在Grafana中集成VictoriaMetrics的实践经验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享

最近一直在搞基于K8S的监控告警平台建设,查找了不少资料,也实验了不少次,目前算是有一定的成果了,分享一下,以下是我们的系统架构

采集端

由于Prometheus的生态过于组件丰富,所以k8s以及Prometheus协议的指标采集这些还是拥抱Prometheus,使用开源的 exporter,虽然现在的exporter 是比较多,但是良莠不齐、有的 Exporter 写的非常棒,有的则并不完善,同时写法各异,每次基础不同的expoter 都要研究一遍配置,心累,所以针对常用的中间件,使用categraf 进行监控,比如 kafka 、Mysql、Redis、Mongo等。

存储端

使用VictoriaMetrics作为的Prometheus长期存储,因为他性能足够强悍,占用资源小,并且完全兼容Prometheus,如果指标小于100w/s,可以采用他的单机版本,并且安装到k8s集群外,这样也避免k8s集群出问题,无从下手

报警配置

由于prometheus的告警配置实在繁琐而且对国内的通讯工具支持度不好,需要第三方实现,所以我们放弃使用 altermanager进行报警,直接采用

以下是在Kubernetes中设置告警的步骤: 1. 部署Prometheus Operator 在Kubernetes中设置告警需要使用Prometheus Operator。可以使用以下命令来部署Prometheus Operator: ```shell kubectl create -f https://raw.githubusercontent.com/coreos/prometheus-operator/master/bundle.yaml ``` 2. 部署ServiceMonitor 在Prometheus Operator中,ServiceMonitor用于定义要监视的服务。可以使用以下命令来创建一个ServiceMonitor: ```shell apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: example-app namespace: default spec: selector: matchLabels: app: example-app endpoints: - port: web ``` 3. 配置告警规则 可以使用Prometheus的规则语言来定义告警规则。可以使用以下命令来创建一个告警规则: ```shell apiVersion: monitoring.coreos.com/v1 kind: PrometheusRule metadata: name: example-rule namespace: default spec: groups: - name: example rules: - alert: HighErrorRate expr: job:request_error_rate:rate5m > 0.5 for: 5m labels: severity: page annotations: summary: High request error rate ``` 4. 配置告警接收器 可以使用Alertmanager来接收告警。可以使用以下命令来创建一个告警接收器: ```shell apiVersion: v1 kind: ConfigMap metadata: name: alertmanager-config namespace: default data: alertmanager.yml: |- global: slack_api_url: 'https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXX' route: receiver: slack receivers: - name: slack slack_configs: - channel: '#alerts' send_resolved: true ``` 5. 部署Grafana 可以使用Grafana来可视化告警。可以使用以下命令来部署Grafana: ```shell kubectl create -f https://raw.githubusercontent.com/grafana/grafana/master/deploy/kubernetes/grafana.yaml ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值