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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 部署在数据平面(即加入网格的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,查看报表。具体操作,请参见使用日志服务采集数据平面入口网关日志

目录
相关文章
|
21天前
|
存储 数据采集 监控
阿里云DTS踩坑经验分享系列|SLS同步至ClickHouse集群
作为强大的日志服务引擎,SLS 积累了用户海量的数据。为了实现数据的自由流通,DTS 开发了以 SLS 为源的数据同步插件。目前,该插件已经支持将数据从 SLS 同步到 ClickHouse。通过这条高效的同步链路,客户不仅能够利用 SLS 卓越的数据采集和处理能力,还能够充分发挥 ClickHouse 在数据分析和查询性能方面的优势,帮助企业显著提高数据查询速度,同时有效降低存储成本,从而在数据驱动决策和资源优化配置上取得更大成效。
119 9
|
1月前
|
Kubernetes 大数据 调度
使用Kmesh作为阿里云服务网格ASM Sidecarless模式数据面
阿里云服务网格ASM支持Sidecar和Sidecarless两种模式,本文介绍了如何在阿里云ACK集群中部署Kmesh作为Sidecarless数据面并连接ASM控制面。
|
1月前
|
JSON Java 数据库
SpringBoot项目使用AOP及自定义注解保存操作日志
SpringBoot项目使用AOP及自定义注解保存操作日志
53 1
|
2月前
|
SQL 存储 人工智能
阿里云日志服务的傻瓜式极易预测模型
预测服务有助于提前规划,减少资源消耗和成本。阿里云日志服务的AI预测服务简化了数学建模,仅需SQL操作即可预测未来指标,具备高准确性,并能处理远期预测。此外,通过ScheduledSQL功能,可将预测任务自动化,定时执行并保存结果。
93 3
|
1月前
|
Kubernetes 调度 容器
使用Kmesh作为阿里云服务网格ASM Sidecarless模式数据面
阿里云服务网格ASM支持Sidecar和Sidecarless两种模式,其中Sidecarless模式如Istio Ambient、ACMG和Kmesh等,可减少延迟和资源消耗。Kmesh基于eBPF技术,通过内核空间拦截流量,结合Waypoint Proxy处理L7流量,实现高效的服务治理。本文介绍了如何在阿里云ACK集群中部署Kmesh并连接ASM控制面,包括安装步骤、检查服务状态和流量调度示例。
|
2月前
|
监控 网络协议 CDN
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
|
3月前
|
SQL 人工智能 运维
在阿里云日志服务轻松落地您的AI模型服务——让您的数据更容易产生洞见和实现价值
您有大量的数据,数据的存储和管理消耗您大量的成本,您知道这些数据隐藏着巨大的价值,但是您总觉得还没有把数据的价值变现出来,对吗?来吧,我们用一系列的案例帮您轻松落地AI模型服务,实现数据价值的变现......
254 3
|
3月前
|
Shell Python
salt自定义模块内使用日志例子
salt自定义模块内使用日志例子
|
7月前
|
Oracle 关系型数据库
oracle asm 磁盘显示offline
oracle asm 磁盘显示offline
355 2
|
2月前
|
存储 Oracle 关系型数据库
数据库数据恢复—Oracle ASM磁盘组故障数据恢复案例
Oracle数据库数据恢复环境&故障: Oracle ASM磁盘组由4块磁盘组成。Oracle ASM磁盘组掉线 ,ASM实例不能mount。 Oracle数据库故障分析&恢复方案: 数据库数据恢复工程师对组成ASM磁盘组的磁盘进行分析。对ASM元数据进行分析发现ASM存储元数据损坏,导致磁盘组无法挂载。