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下基于业务的统一智能告警运维平台,可以在全局配置->通知策略->行动策略中找到“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 V2协议,这通常是因为您的数据面Sidecar的版本与控制平面不符所致。升级数据平面的Sidecar可以解决该问题,您需要删除Pod,该Pod自动重新创建后会自动注入最新版本的Sidecar。 |
5. 总结
本文主要描述了如果在阿里云服务网格中开启数据面访问日志及控制面日志,并且简单介绍了数据面日志中的内置仪表盘和控制面日志的告警配置。借助SLS告警,用户可以一站式的进行告警的管理,可以有效的提供运维效率。目前SLS支持了ASM控制面日志告警,未来,在ASM数据面日志采集和可视化基础上,SLS将提供更多的内置告警规则,在ASM控制台可以实现一键开启内置告警规则,完善服务网格可观测性的闭环,用户也可以在SLS上实现统一的告警管理,敬请期待。