容器服务ACK(Alibaba Cloud Container Service for Kubernetes)集成了日志服务功能,您可在创建集群时启用日志服务,采集服务网格数据平面集群入口网关的访问日志。本文主要介绍如何开启日志采集、配置日志服务以及查看采集的日志。
步骤一:为Kubernetes集群安装日志服务组件
如果您尚未创建Kubernetes集群,请执行以下步骤:
- 登录容器服务管理控制台。
- 在控制台左侧导航栏中,单击集群。
- 在集群列表页面,单击右上角创建Kubernetes集群,具体步骤,请参见快速创建Kubernetes托管版集群。
- 在组件配置步骤中,选择日志服务配置项,表示在新建的Kubernetes集群中安装日志插件。
- 选择使用已有Project,选择一个现有的Project来管理采集的日志。

- 选择创建新Project,则自动创建一个新的Project来管理采集的日志,Project会自动命名为k8s-log-{ClusterID},ClusterID表示您新建的Kubernetes集群的唯一标识。

- 完成配置后,单击创建集群,完成集群创建。
如果您已创建了Kubernetes集群,但未安装日志组件,请执行以下步骤:
- 登录容器服务管理控制台。
- 在控制台左侧导航栏中,单击集群。
- 在集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情。
- 在集群管理页左侧导航栏中,单击。
- 在日志与监控列表中找到logtail-ds,单击安装。
- 在提示对话框单击确定。
如果您已经创建了Kubernetes集群,并且已为集群安装了日志组件,但版本低于v0.16.24.0-1fa7551-aliyun,请执行以下步骤:
- 登录容器服务管理控制台。
- 在控制台左侧导航栏中,单击集群。
- 在集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情。
- 在集群管理页左侧导航栏中,单击。
- 在日志与监控列表中找到logtail-ds,单击右侧的升级。
- 在提示对话框单击确定。
步骤二:配置日志服务
使用logtail组件采集入口网关日志,需要创建采集配置。
如果您的ASM为v1.7.5.26-gd318a562-aliyun及以上版本,需要按照以下步骤操作
- 登录ASM控制台。
- 在左侧导航栏,选择。
- 在网格管理页面,找到待配置的实例,单击实例的名称或在操作列中单击管理。
- 在网格详情页面左侧导航栏选择,然后在右侧页面单击功能设置。
- 在功能设置更新面板中选中启用访问日志查询,然后单击确定。
如果您的ASM版本低于v1.7.5.26-gd318a562-aliyun,需要按照以下步骤操作
- 创建YAML文件,文件模板如下。
apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
metadata:
# your config name, must be unique in you k8s cluster
name: mesh-ingress-log-config
namespace: kube-system
spec:
project: k8s-log-${K8SClusterId}
# logstore name to upload log
logstore: mesh-ingress-log
# product code, you should not change it
productCode: k8s-istio-ingress
# logtail config detail
logtailConfig:
inputType: plugin
configName: mesh-ingress-log-config
inputDetail:
plugin:
inputs:
- detail:
IncludeLabel:
io.kubernetes.pod.name: ^istio-ingressgateway-.*$
Stderr: false
Stdout: true
type: service_docker_stdout
processors:
- detail:
Anchors:
- FieldName: log
FieldType: json
KeepSource: true
NoKeyError: true
NoMatchError: true
SourceKey: content
type: processor_anchor
- type: processor_rename
detail:
DestKeys:
- host
- request_length
- body_bytes_sent
- request_time
- method
- url
- version
- req_id
- status
- proxy_upstream_name
- upstream_addr
- upstream_response_time
- http_user_agent
- x_forward_for
SourceKeys:
- log_authority
- log_bytes_received
- log_bytes_sent
- log_duration
- log_method
- log_path
- log_protocol
- log_request_id
- log_response_code
- log_upstream_cluster
- log_upstream_host
- log_upstream_service_time
- log_user_agent
- log_x_forwarded_for
- 替换模板中的${K8SClusterID}为您的Kubernetes集群ClusterID。
- 可选:若您存在未经过服务网格控制台创建的入口网关,且您希望采集该入口网关的日志,则您需要按照以下格式修改模板中io.kubernetes.pod.name的参数值。
^(^istio-ingressgateway-.*$)|(^[Name-of-your-customized-ingressgateway]-.*$)$
例如Ingressgateway deployment名称为my-ingressgateway,则您需要按照以下格式修改模板中
io.kubernetes.pod.name的参数值。
^(^istio-ingressgateway-.*$)|(^my-ingressgateway-.*$)$
- 连接到Kubernetes集群,详细描述请参见通过kubectl工具连接集群或通过SSH连接ACK专有版集群的Master节点。
- 在Kubernetes集群应用已完成的YAML文件。
kubectl apply -f [yaml文件路径]
步骤三:查看日志
完成配置后,将采集数据平面入口网关日志并存储到日志服务指定的LogProject和LogStore,您可以通过以下步骤查看日志。
- 登录ASM控制台。
- 在左侧导航栏,选择。
- 在网格管理页面,找到待配置的实例,单击实例的名称或在操作列中单击管理。
- 在网格详情页面左侧导航栏选择。
- 在Kubernetes集群页面单击目标集群右侧可观测性列下的查看报表,可选择查看入口网关概览、入口网关访问中心、入口网关监控中心。
- 选择入口网关概览,进入入口网关概览界面。该界面展示了网格入口的统计信息概览,包括访问地理、PV/UV、延迟、成功率等。
- 选择入口网关访问中心,进入入口网关访问中心界面。该界面详细展示了PV/UV、地理位置、访问来源设备等统计信息,对判断用户分布、行为有参考意义。
- 选择入口网关监控中心,进入入口网关监控中心界面。该界面展示了成功率、请求状态码、延迟等信息,对判断当前服务状态有重要参考意义。
