开启网关日志投递

日志投递功能是云原生API网关结合阿里云日志服务SLS提供的服务。开启日志投递后,您可以通过分析云原生API网关的访问日志了解客户端用户行为、客户端用户的地域分布,以便排查问题。本文介绍如何为云原生API网关开启日志投递。

前提条件

  • 已创建云原生网关实例。具体操作,请参见创建网关

  • 已开通日志服务,若未开通,请使用阿里云账号登录日志服务控制台进行开通。更多信息,请参见什么是日志服务

开启日志投递

说明

云原生API产品不收取日志费用,但日志服务SLS将根据您的使用量收费。关于SLS的计费方式,请参见按量付费

  1. 登录云原生API网关控制台

  2. 在左侧导航栏,选择实例,并在顶部菜单栏选择地域。

  3. 实例页面,单击目标实例ID/名称。

  4. 在左侧导航栏,单击参数配置

  5. 可观测性参数区域,单击日志投递右侧的1图标,在日志投递配置面板,打开启用日志投递(开启后网关的访问日志会投递到日志服务)

    image

    说明

    开启日志投递后,日志服务会为您创建一个默认的日志服务Project。您也可以选择已有的日志服务Project。

    开启日志投递以后,在可观测性参数区域,单击Project右侧的链接,系统会自动跳转到该网关对应投递的日志库。更多内容,请参见查询和分析日志

日志投递字段说明

网关日志投递涉及到的字段说明如下。

字段名

类型

含义

__time__

long

日志产生的时间。

cluster_id

string

购买的网关实例。

authority

string

请求报文中的Host Header。

bytes_received

long

请求的Body大小(不包含Header)。

bytes_sent

long

响应的Body大小(不包含Header)。

downstream_local_address

string

网关Pod地址。

downstream_remote_address

string

连接到网关的Client端地址。

duration

long

请求整体耗时。单位:ms。

method

string

HTTP方法。

path

string

HTTP请求中的Path。

protocol

string

HTTP的协议版本。

request_id

string

网关会为每次请求产生一个ID,并放在Header的x-request-id中,后端可以根据这个字段记录并进行排查。

requested_server_name

string

SSL连接时使用的Server Name。

response_code

long

HTTP响应的状态码。

response_flags

string

响应失败的原因。

route_name

string

路由名。

start_time

string

请求开始时间。格式:UTC。

trace_id

string

Trace ID。

upstream_cluster

string

上游集群。

upstream_host

string

上游IP。

upstream_local_address

string

本地连接上游的地址。

upstream_service_time

long

上游服务处理请求的耗时(毫秒),包括网关访问上游服务的网络耗时和上游服务自身处理耗时两部分。

upstream_transport_failure_reason

string

上游链接失败的原因。

user_agent

string

HTTP Header中的UserAgent。

x_forwarded_for

string

HTTP Header中的x-forwarded-for,通常用来表示HTTP请求端真实IP。

请求失败原因说明

请求失败的原因主要通过日志中Response_Flag的值判断。以下是关于Response_Flag不同值的说明。

说明

下游指客户端,上游指后端服务。

  • UH:上游集群中,没有健康的上游主机。

  • UF:上游连接失败。

  • NR:给定请求未配置路由。

  • URX:请求被拒绝,因为达到了上游重试限制(HTTP)或最大连接尝试次数(TCP)。

  • NC:无法找到上游集群。

  • DT:请求或连接超过了max_connection_durationmax_downstream_connection_duration

  • DC:下游连接终止。

  • LH:本地服务未通过健康检查请求。

  • UT:上游请求超时。

  • LR:连接本地重置。

  • UR:上游远程重置。

  • UC:上游连接终止。

  • DI:请求处理被延迟一段时间,该延迟时间由故障注入指定。

  • FI:请求被故障注入指定的响应码中止。

  • RL:请求在本地被HTTP速率限制过滤器限制,除了429响应码之外。

  • UAEX:请求被外部授权服务拒绝。

  • RLSE:请求被拒绝,因为速率限制服务出现错误。

  • IH:请求被拒绝,因为在严格检查的标头中设置了无效值。

  • SI:Stream流空闲超时。

  • DPE:下游请求存在HTTP协议错误。

  • UPE:上游响应存在HTTP协议错误。

  • UMSDR:上游请求达到了最大流程持续时间。

  • OM:超负荷管理器终止了请求。