阿里云容器服务Kubernetes(简称ACK)支持一键部署Istio,可以参考 文档 在ACK上部署使用Isito。Istio on ACK提供了丰富的监控能力,为网格中的服务收集遥测数据,其中Mixer是负责提供策略控制和遥测收集的Istio组件。使用Prometheus进行监控是Istio提供的监控能力之一。
告警能力在Prometheus的架构中被划分成两个独立的部分:Prometheus负责产生告警,而Alertmanager负责告警产生后的后续处理。如下所示,通过在Prometheus中定义告警规则,Prometheus会周期性的对告警规则进行计算,如果满足告警触发条件就会向Alertmanager发送告警信息。
Alertmanager作为一个独立的组件,负责接收并处理来自Prometheus Server(也可以是其它的客户端程序)的告警信息。Alertmanager可以对这些告警信息进行进一步的处理,比如当接收到大量重复告警时能够消除重复的告警信息,同时对告警信息进行分组并且路由到正确的通知方,Prometheus内置了对邮件、Slack等多种通知方式的支持,同时还支持与Webhook的集成,以支持更多定制化的场景。例如,完全可以通过Webhook与钉钉机器人进行集成,从而通过钉钉接收告警信息。同时AlertManager还提供了静默和告警抑制机制来对告警通知行为进行优化。
以下介绍如何扩展AlertManager集成钉钉,并通过AlertManager帮助实现Istio on ACK在可观测性监控方面的能力。
| 配置 | 说明 |
|---|---|
| 集群 | 选择目标集群。 |
| 命名空间 | 选择资源对象所属的命名空间,默认是 default。此处选择istio-system。 |
| 示例模板 | 此处选择自定义。 |
| 模板 | 填写以下自定义内容。 |
自定义YAML内容如下:
该规则描述过去1分钟内99%请求时延超过3s时会发出告警。
阿里云容器服务Kubernetes(简称ACK)支持一键部署Istio,可以参考
文档
在ACK上部署Isito。
默认部署中的Prometheus服务没有对接AlertManager,需要按照如下步骤进行配置。
在弹出的对话框中,对Istio的Prometheus参数进行修改:| 配置 | 说明 |
|
配置
|
说明
|
| enabled | true或者false,表示是否启用Prometheus 收集度量日志。默认情况下启用,即值为true。 |
| replicaCount | prometheus容器组的副本数,默认值为1。 |
| persist | true或者false,表示是否启用持久化存储。设置为true时,必须指定TSDB实例地址。 |
| tsdbEndpoint | TSDB实例地址,启用持久化存储时必须指定。 |
| retention | 默认的数据保留时间,8760h0m0s即为24*365小时,即1年 |
| scrapeInterval | 全局默认抓取时间间隔,默认为15s |
| prometheusRulesConfigMap | 告警规则配置项的名称 |
| alerting | 配置对接的AlertManager服务,配置如下代码所示 |
当你的应用服务调用满足触发条件时,在Prometheus控制台上,点击Alerts页签,可以看到如下类似内容。
同时,相应的钉钉群也会收到类似的告警信息,如下所示。
在阿里云Kubernetes容器服务基础之上,快速搭建一套用于连接、管理以及安全化微服务的开放平台Istio,为应用引入和配置多个相关服务。使用Prometheus进行监控是Istio提供的监控能力之一,通过扩展AlertManager集成钉钉助力Istio on ACK可观测性监控能力。
本文作者:wangxining
本文为云栖社区原创内容,未经允许不得转载。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69915408/viewspace-2648094/ ,如需转载,请注明出处,否则将追究法律责任。