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内置仪表盘功能。
访问数据平面入口网关日志可参考服务网格访问入口网关日志。主要包括安装日志服务组件和收集配置,收集完成后ASM入口网关概览、入口网关访问中心、入口网关监控中心三个仪表盘嵌入控制台。
接入Envoy Access Log可参考日志服务采集数据平面入口网关日志。主要步骤包括安装日志服务组件和采集配置。收集完成后,ASM检查访问日志监控中心和访问日志的详细记录。
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请期待统一的报警管理。