容器服务ACK(Alibaba Cloud Container Service for Kubernetes)集成了日志服务功能,您可在创建集群时启用日志服务,采集服务网格数据平面集群入口网关的访问日志。本文主要介绍如何开启日志采集、配置日志服务以及查看采集的日志。
前提条件
已创建至少一个ASM实例,请参见创建ASM实例。
已添加至少一个ACK集群至ASM实例,请参见添加集群到ASM实例。
已部署至少一个入口网关到ACK集群,请参见创建入口网关服务。
步骤一:为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集群,详细描述请参见获取集群KubeConfig并通过kubectl工具连接集群或通过SSH连接ACK专有版集群的Master节点。
在Kubernetes集群应用已完成的YAML文件。
kubectl apply -f [yaml文件路径]
步骤三:查看日志
完成配置后,将采集数据平面入口网关日志并存储到日志服务指定的LogProject和LogStore,您可以通过以下步骤查看日志。
登录ASM控制台。
在左侧导航栏,选择 。
在网格管理页面,找到待配置的实例,单击实例的名称或在操作列中单击管理。
在网格详情页面左侧导航栏,选择 。
在Kubernetes集群页面单击目标集群右侧可观测性列下的查看报表,可选择查看入口网关概览、入口网关访问中心、入口网关监控中心。
选择入口网关概览,进入入口网关概览界面。该界面展示了网格入口的统计信息概览,包括访问地理、PV/UV、延迟、成功率等。
选择入口网关访问中心,进入入口网关访问中心界面。该界面详细展示了PV/UV、地理位置、访问来源设备等统计信息,对判断用户分布、行为有参考意义。
选择入口网关监控中心,进入入口网关监控中心界面。该界面展示了成功率、请求状态码、延迟等信息,对判断当前服务状态有重要参考意义。