使用阿里云服务网格ASM自定义数据面访问日志-阿里云开发者社区

开发者社区> 宗泉> 正文

使用阿里云服务网格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,查看报表。具体操作,请参见使用日志服务采集数据平面入口网关日志

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云城市服务商分享怎么使用DTS迁移PPAS数据
使用数据传输服务(DTS)将本地数据库迁移到 RDS for PPAS,可以实现应用不停服务的情况下,平滑完成数据库的迁移工作。迁移过程中,对本地的 Oracle 数据库没有影响。那么如何操作呢,湖北区域阿里云城市服务商捷讯技术告诉您怎么使用怎么使用DTS迁移PPAS数据
1433 0
阿里云日志服务控制台内嵌分享功能使用
针对用户在使用官方文档控制台分享内嵌易出现问题的情况,这里使用RAM用户介绍相关参数的获取及配置,方便初次使用者快速使用该功能。
751 0
iOS 10 不提示「是否允许应用访问数据」,导致应用无法使用的解决方案
每日更新关注:http://weibo.com/hanjunqiang  新浪微博!iOS开发者交流QQ群: 446310206 这个坑最近弄得我很抓狂,不过现在基本弄清楚了。记录一下过程中我收集到的信息,分享给大家。
1344 0
阿里云Cloud Shell中使用日志服务CLI最佳实践
目前阿里云云命令行Cloud Shell已经部署日志服务CLI,免部署配置,一键管理日志服务资源与下载日志服务数据更轻松!
11385 0
jQuery EasyUI API 中文文档 - 数据表格(DataGrid)
DataGrid 数据表格 扩展自 $.fn.panel.defaults ,用 $.fn.datagrid.defaults 重写了 defaults 。 依赖 panel resizable linkbutton pagination 用法 1.
1069 0
手把手教你完成MaxCompute JDBC自定义日志配置
本文讲述了如何在MaxCompute JDBC 2.0 beta版本中完成日志功能的相关配置,并进一步对logback的配置文件进行了示例及说明。
5049 0
使用jdbc访问日志服务分析和可视化日志
简介 一直以来,日志服务提供了 以restfull API方式写入、查询日志数据,管理自己的项目及日志库。现在日志服务新增提供了mysql 接口,用户可以使用jdbc连接到日志服务,通过标准的sql语法进行查询和计算。
12239 0
jQuery EasyUI API 中文文档 - DataGrid 数据表格
扩展自 $.fn.panel.defaults ,用 $.fn.datagrid.defaults 重写了 defaults 。 依赖 panel resizable linkbutton pagination 用法 1.
982 0
+关注
宗泉
阿里云服务网格ASM 技术专家
3
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载