随着微服务的普及,微服务架构也在不断发展演变,Spring Cloud 与 Dubbo以微服务开发为代表的框架也得到了推广和实施;在云原时代,无入侵服务网格(Service Mesh)与传统的微服务架构相比,服务网格具有可观察性、流量控制和安全性三大优势。服务网格将以往服务治理中的复杂性与应用程序分离,并将这些复杂性放在服务代理中,包括流量控制、断路、服务发现、安全性、可观察性等;在开发过程中,应用程序只需要关注业务功能的实现,使责任划分更加清晰。
1. 前言
随着微服务的流行,微服务的架构也在不断的发展演进,Spring Cloud 与 Dubbo以微服务开发为代表的框架也得到了推广和实施;在云原时代,无入侵服务网格(Service Mesh)开始走向成熟,相对于传统微服务架构,服务网格具有可观察性、流量控制、安全性三大优势。服务网格将以往服务治理中的复杂性与应用程序分离,并将这些复杂性放在服务代理中,包括流量控制、断路、服务发现、安全性、可观察性等;在开发过程中,应用程序只需要关注业务功能的实现,使责任划分更加清晰。
阿里云服务网格是阿里云提供的全托管服务网格平台Istio。和SLS深度集成为日志采集、可视化和报警的一站式可观察解决方案。本文主要介绍了服务网格新推出的控制面日志采集和报警配置,还包括数据面访问日志的采集和可视化;未来,数据面访问日志的报警还将推出更多内置的报警规则SLS上一站式报警管理。
2. 阿里云服务网格(ASM)介绍
阿里云服务网格(Alibaba Cloud Service Mesh,简称ASM)提供与社区兼容的全托管服务网格平台Istio开源服务网格用于简化服务管理,包括服务呼叫之间的流量路由和拆分管理、服务间通信的认证安全和网格的可观测性,大大减轻了开发和运维的负担。

ASM中控平面组件由阿里云托管,兼容Istio,用户只需悬挂业务应用的开发部署。 对于ACK托管集群、专有集群、Serverless集群、混合云或多云场景提供一致的流量控制、安全性和可观测性管理。平面核心组件由阿里巴巴云托管,以最大限度地降低用户资源的成本和运维成本。
在可观测性方面,ASM支持使用SLS日志控制平面和数据平面,并提供内置仪表板和报警,未来将增加更多的内置报警规则SLS强大的报警管理和通知功能,用户可以更正确ASM更好地了解操作状态,并及时获得下一步操作的报警通知。
3. SLS告警介绍
日志服务SLS是云原生观测分析平台Log、Metric、Trace等数据提供大规模、低成本、实时的平台服务。日志服务提供一站式的数据采集、处理、查询和分析、可视化、报警、消费和交付功能。
SLS报警是一站式报警监控、降噪、事务管理、通知分配的智能运维平台。SLS报警的核心功能组件主要包括数据存储、报警监控、报警管理、行动管理和开放报警。
SLS报警来源主要包括自定义报警、系统内置报警和开放报警。各种报警源发出报警后,报警将发送给报警管理系统。通过报警管理系统,用户可以合并、抑制、沉默;然后报警到通知管理系统。在通知管理中,可根据不同的报警属性将通知分配到不同的通知渠道。
4. ASM可观测性日志采集及可视化
ASM可观测日志主要包括控制平面和数据平面的日志:
- 控制平面日志ASM提供了基于SLS报警功能;
- 数据平面日志主要包括入口网关日志,Envoy Access Log,在数据平面日志中ASM提供了基于SLS内置仪表盘功能。
4.1. 数据平面入口网关日志采集及可视化
访问数据平面入口网关日志可参考服务网格访问入口网关日志。主要包括安装日志服务组件和收集配置,收集完成后ASM入口网关概览、入口网关访问中心、入口网关监控中心三个仪表盘嵌入控制台。
4.2. Envoy Access Log收集和可视化
接入Envoy Access Log可参考日志服务采集数据平面入口网关日志。主要步骤包括安装日志服务组件和采集配置。收集完成后,ASM检查访问日志监控中心和访问日志的详细记录。
4.3. 控制平面日志采集和报警
ASM支持收集控制平面的日志SLS,然后根据日志进行报警配置,然后重点介绍如何打开控制面日志采集和报警。
4.3.1 在ASM控制台打开报警
- 在ASM找到关心的服务网格实例,点击进入,启用控制平面日志采集的开关,如图所示:
- 点击报警设置,在报警弹出框中选择行动策略,默认选择SLS服务网格内置行动策略,然后打开报警。
4.3.2 在SLS控制台配置报警通知人
- 在SLS在控制台主页上找到日志应用程序,点击报警管理中心
- 点击全局配置
- 找到左边菜单中的用户管理->点击右侧修改按钮进行用户组管理SLS在服务网关内置用户组中添加相应的联系人,即可收到报警后的通知。
报警管理中心是SLS基于业务的统一智能报警运维平台,可全局配置->通知策略->在行动策略中中找到点击修改可查看其报警通知接收人、通知模板等。
接到报警后,可根据报警内容提示提出一些处理建议。
| Internal:Error adding/updating listener(s) 0.0.0.0_443: Failed to load certificate chain from <inline>, only P-256 ECDSA certificates are supported |
报警信息显示,数据面集群不支持您的数据面配置证书,目前只支持P-256 ECDSA证书。您需要重新配置证书和具体操作。请参见通过服务网关启用HTTPS安全服务 。 |
| Internal:Error adding/updating listener(s) 0.0.0.0_443: Invalid path: **** |
报警信息表明您配置的证书路径错误或证书不存在。您需要检查证书的载荷路径是否正确Gateway中间配置的路径一致。具体操作请参考服务网关的启用HTTPS安全服务 。 |
| Internal:Error adding/updating listener(s) 0.0.0.0_xx: duplicate listener 0.0.0.0_xx found |
报警信息显示您为网关配置的监控端口重复,请检查您Gateway,删除重复端口。 |
| Internal:Error adding/updating listener(s) 192.168.33.189_15021: Didn't find a registered implementation for name: '***' |
报警信息是Sidecar和Ingressgateway找不到你通过EnvoyFilter针对15021这个Listener patch在配置中引用***,您需要删除此引用。 |
| Internal:Error adding/updating listener(s) 0.0.0.0_80: V2 (and AUTO) xDS transport protocol versions are deprecated in grpc_service *** |
警告信息表示,您的数据表面将被废弃XDS V这通常是因为你的数据面Sidecar版本与控制平面不一致。升级数据平面Sidecar可以解决这个问题,需要删除Pod,该Pod最新版本将在自动重新创建后自动注入Sidecar。 |
5. 总结
本文主要述了如果在阿里云服务网格中开启数据面访问日志及控制面日志,并且简单介绍了数据面日志中的内置仪表盘和控制面日志的告警配置。借助SLS告警,用户可以一站式的进行告警的管理,可以有效的提供运维效率。目前SLS支持了ASM控制面日志告警,未来,在ASM数据面日志采集和可视化基础上,SLS将提供更多的内置告警规则,在ASM控制台可以实现一键开启内置告警规则,完善服务网格可观测性的闭环,用户也可以在SLS上实现统一的告警管理,敬请期待。