2020-06-03【Istio流量监控组件介绍】
今日鸡汤
我觉得一个人变得成熟的标志之一,就是能慢慢理解生命中所遇到的人和事,通透、理智且温和。
愿你善良且平和。今天来看Istio流量监控组件。
如何利用Istio进行流量监控?
Istio的Proxy通过拦截系统中所有网络的通信,来提供可用于获得整个应用的可观察性的指标和数据。利用Istio核心组件(Jaeger, Prometheus, Grafana, Kiali等)和一些开源工具,可以构建出一套良好的监控系统。
1. 调用链追踪
什么是调用链追踪?
调用链追踪是一种用于分析和监控微服务应用的方法,有助于运维人员快速查明故障发生的位置或导致系统性能下降的原因。
Jaeger如何做调用链追踪?
Jaeger来源于Uber的项目,是一个开源的分布式跟踪系统,包含用于存储、可视化和过滤跟踪的组件。
Span是请求数据的最小单位,包含这次跟踪的开始时间、结束时间、操作名称及一组标签和日志。
一次Trace由若干个Span组成。
2. 指标监控
什么指标需要监控?
指标数据通常分为4类:
- Counter
- Gauge
- Histogram
- Summary
Istio 中查询监控指标的组件有Prometheus和Grafana。
Prometheus如何做指标监控?
Prometheus采用Pull方式搜集被监控对象的Metrics,将这些数据保存在时序数据库中,之后可以按照时间进行检索。
PrometheusGrafana如何做指标监控?
Grafana支持多种后端,提供了一种全局的系统运行时的数据展示,运维人员可以通过查看Grafana仪表盘随时了解服务的性能和健康状况。
他主要有两个组件:
- Datasource(数据源):Grafana从配置的后端数据源获取指标。
- Dashboard(仪表盘):显示数据源中的各种指标。
Istio定制的Grafana集成了包括网格、服务、工作负载和Istio核心组件在内的多个Dashboard,用户还可以自定义Dashboard。
Grafana
3. 服务网格监控
Istio提供Kiali用于服务网格监控,它是一个为Istio提供图形化界面和观测功能Dashboard的开源项目。用户可以利用Kiali监测网格内服务的实时工作状态、管理Istio的网络配置、识别网络问题。
用户可以通过graph菜单查看服务拓扑关系,了解服务间如何通信,可以在图里获得实时的动态流量数据(包括HTTP/TCP每秒请求数、流量
比例、成功率及不同返回码的占比等)。
Kiali
Kiali还会对网格内的Istio规则进行在线的语法校验,将配置错误高亮显示。这一点很好,有助于及早发现问题。
4. 总结
使用Jaeger查看调用链信息,使用Prometheus和Grafana监控服务的关键指标,结合Kiali观察服务拓扑、Metrics、动态流量和Istio策略等。