使用阿里云服务网格ASM自定义数据面访问日志

简介: 部署在数据平面(即加入网格的Kubernetes集群)的Envoy Proxy可以输出所有访问日志,ASM支持自定义Envoy Proxy输出的访问日志内容。本文介绍如何自定义Envoy Proxy输出的访问日志内容。前提条件已创建ASM实例。具体操作,请参见创建ASM实例。已创建ACK集群。具体操作,请参见创建Kubernetes托管版集群。添加集群到ASM实例。具体操作,请参见添加集群到ASM

部署在数据平面(即加入网格的Kubernetes集群)的Envoy Proxy可以输出所有访问日志,ASM支持自定义Envoy Proxy输出的访问日志内容。本文介绍如何自定义Envoy Proxy输出的访问日志内容。

前提条件

步骤一:启用访问日志

  1. 登录 ASM控制台
  2. 在左侧导航栏,选择 服务网格 > 网格管理
  3. 网格管理 页面,找到待配置的实例,单击实例的名称或在 操作 列中单击 管理
  4. 在网格信息页面单击 功能设置
  5. 功能设置更新 面板选中 启用访问日志 ,然后单击 确定

启用访问日志(默认是开启状态),istio-proxy容器默认输出包含以下字段的日志,如果关闭访问日志,istio-proxy容器将不会产生JSON格式的访问日志。


    "authority_for":"%REQ(:AUTHORITY)%",
    "bytes_received":"%BYTES_RECEIVED%",
    "bytes_sent":"%BYTES_SENT%",
    "downstream_local_address":"%DOWNSTREAM_LOCAL_ADDRESS%",
    "downstream_remote_address":"%DOWNSTREAM_REMOTE_ADDRESS%",
    "duration":"%DURATION%",
    "istio_policy_status":"%DYNAMIC_METADATA(istio.mixer:status)%",
    "method":"%REQ(:METHOD)%",
    "path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%",
    "protocol":"%PROTOCOL%",
    "request_id":"%REQ(X-REQUEST-ID)%",
    "requested_server_name":"%REQUESTED_SERVER_NAME%",
    "response_code":"%RESPONSE_CODE%",
    "response_flags":"%RESPONSE_FLAGS%",
    "route_name":"%ROUTE_NAME%",
    "start_time":"%START_TIME%",
    "trace_id":"%REQ(X-B3-TRACEID)%",
    "upstream_cluster":"%UPSTREAM_CLUSTER%",
    "upstream_host":"%UPSTREAM_HOST%",
    "upstream_local_address":"%UPSTREAM_LOCAL_ADDRESS%",
    "upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%",
    "upstream_transport_failure_reason":"%UPSTREAM_TRANSPORT_FAILURE_REASON%",
    "user_agent":"%REQ(USER-AGENT)%",
    "x_forwarded_for":"%REQ(X-FORWARDED-FOR)%"

步骤二:自定义数据面访问日志内容

  1. 登录 ASM控制台
  2. 在左侧导航栏,选择 服务网格 > 网格管理
  3. 网格管理 页面,找到待配置的实例,单击实例的名称或在 操作 列中单击 管理
  4. 在网格信息页面单击 启用访问日志 右侧的 自定义访问日志格式
  5. 自定义访问日志格式 对话框中设置 变量名称 为my_custom_key, 变量值 为%REQ(end-user)%,然后单击 确认

本文以获取Bookinfo示例中HTTP请求的Header字段end-user为例

步骤三:查看访问日志

启用访问日志后,发起请求的Sidecar容器会按照自定义的访问日志格式输出访问日志。

  1. 在浏览器地址栏输入 入口网关地址:productpage ,请求Productpage应用。
  2. 在控制台左侧导航栏中,单击 集群
  3. 集群列表 页面中,单击目标集群名称或者目标集群右侧 操作 列下的 详情
  4. 在集群管理页左侧导航栏中,选择 工作负载 > 无状态
  5. 无状态 页面顶部设置 命名空间 为default,然后单击productpage-v1应用右侧 操作 列下的 详情
  6. 在应用详情页面单击 日志 页签,设置 Container 为istio-proxy。

在日志输出框中可以看到如下日志。

{
    "method":"GET",
    "x_forwarded_for":null,
    "upstream_host":"172.19.16.90:9080",
    "protocol":"HTTP/1.1",
    "my_custom_key":"jason",
    "authority_for":"addedvalues:9080",
    "response_code":200,
    "start_time":"2021-10-21T11:40:12.055Z",
    "request_id":"5222b7fb-05a6-4fae-8e13-d44525ae3ca0",
    "bytes_sent":883,
    "downstream_remote_address":"172.19.16.11:33752",
    "upstream_transport_failure_reason":null,
    "downstream_local_address":"192.168.237.140:9080",
    "requested_server_name":null,
    "response_flags":"-",
    "duration":4,
    "user_agent":"python-requests/2.18.4",
    "route_name":"default",
    "trace_id":null,
    "istio_policy_status":null,
    "path":"/addedvalues/0",
    "upstream_cluster":"outbound|9080||addedvalues.default.svc.cluster.local",
    "bytes_received":0,
    "upstream_service_time":"3",
    "authority":"addedvalues:9080",
    "upstream_local_address":"172.19.16.11:52430"
}

可以看到中包含名为end-user=jason用户的访问日志,说明自定义日志内容成功。

相关操作

您还可以使用阿里云日志服务SLS采集数据平面的AccessLog,查看报表。具体操作,请参见使用日志服务采集数据平面入口网关日志

目录
相关文章
|
消息中间件 运维 监控
智能运维,由你定义:SAE自定义日志与监控解决方案
通过引入 Sidecar 容器的技术,SAE 为用户提供了更强大的自定义日志与监控解决方案,帮助用户轻松实现日志采集、监控指标收集等功能。未来,SAE 将会支持 istio 多租场景,帮助用户更高效地部署和管理服务网格。
660 51
|
11月前
|
自然语言处理 监控 安全
阿里云发布可观测MCP!支持自然语言查询和分析多模态日志
阿里云可观测官方发布了Observable MCP Server,提供了一系列访问阿里云可观测各产品的工具能力,包含阿里云日志服务SLS、阿里云应用实时监控服务ARMS等,支持用户通过自然语言形式查询
1604 0
阿里云发布可观测MCP!支持自然语言查询和分析多模态日志
|
存储 消息中间件 缓存
MiniMax GenAI 可观测性分析 :基于阿里云 SelectDB 构建 PB 级别日志系统
基于阿里云SelectDB,MiniMax构建了覆盖国内及海外业务的日志可观测中台,总体数据规模超过数PB,日均新增日志写入量达数百TB。系统在P95分位查询场景下的响应时间小于3秒,峰值时刻实现了超过10GB/s的读写吞吐。通过存算分离、高压缩比算法和单副本热缓存等技术手段,MiniMax在优化性能的同时显著降低了建设成本,计算资源用量降低40%,热数据存储用量降低50%,为未来业务的高速发展和技术演进奠定了坚实基础。
590 1
MiniMax GenAI 可观测性分析 :基于阿里云 SelectDB 构建 PB 级别日志系统
|
消息中间件 运维 监控
智能运维,由你定义:SAE自定义日志与监控解决方案
SAE(Serverless应用引擎)是阿里云推出的全托管PaaS平台,致力于简化微服务应用开发与管理。为满足用户对可观测性和运维能力的更高需求,SAE引入Sidecar容器技术,实现日志采集、监控指标收集等功能扩展,且无需修改主应用代码。通过共享资源模式和独立资源模式,SAE平衡了资源灵活性与隔离性。同时,提供全链路运维能力,确保应用稳定性。未来,SAE将持续优化,支持更多场景,助力用户高效用云。
|
域名解析 应用服务中间件 网络安全
阿里云个人博客外网访问中断应急指南:从安全组到日志的七步排查法
1. 检查安全组配置:确认阿里云安全组已开放HTTP/HTTPS端口,添加规则允许目标端口(如80/443),授权对象设为`0.0.0.0/0`。 2. 本地防火墙设置:确保服务器防火墙未阻止外部流量,Windows启用入站规则,Linux检查iptables或临时关闭防火墙测试。 3. 验证Web服务状态:检查Apache/Nginx/IIS是否运行并监听所有IP,使用命令行工具确认监听状态。 4. 测试网络连通性:使用外部工具和内网工具测试服务器端口是否开放,排除本地可访问但外网不可的问题。 5. 排查DNS解析:确认域名A记录指向正确公网IP,使用`ping/nslookup`验证解析正
509 2
|
存储 监控 安全
网络安全视角:从地域到账号的阿里云日志审计实践
网络安全视角:从地域到账号的阿里云日志审计实践
335 0
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
4675 31
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。
532 9
|
11月前
|
监控 容灾 算法
阿里云 SLS 多云日志接入最佳实践:链路、成本与高可用性优化
本文探讨了如何高效、经济且可靠地将海外应用与基础设施日志统一采集至阿里云日志服务(SLS),解决全球化业务扩展中的关键挑战。重点介绍了高性能日志采集Agent(iLogtail/LoongCollector)在海外场景的应用,推荐使用LoongCollector以获得更优的稳定性和网络容错能力。同时分析了多种网络接入方案,包括公网直连、全球加速优化、阿里云内网及专线/CEN/VPN接入等,并提供了成本优化策略和多目标发送配置指导,帮助企业构建稳定、低成本、高可用的全球日志系统。
1081 54
下一篇
开通oss服务