会话日志

更新时间:
复制为 MD 格式

为 NAT 网关创建 SNAT 条目后,流量经过 NAT 网关时,SNAT 会话将以日志的形式进行记录,便于进行溯源和监控。

工作原理

日志采集与投递机制

会话日志捕获的SNAT会话以日志形式写入日志服务(Simple Log Service,SLS)。每条会话日志记录会捕获特定时间窗口内的特定五元组网络流,捕获周期约为10分钟。在该时间段内,会话日志服务首先对数据进行聚合,再将其投递至已创建的SLS中,此过程中的数据投递延迟在5分钟之内。

  • 由于会话日志服务依据最大能力交付原则,您的会话日志记录可能会超出预定的交付时间,并可能因网络传输延迟或SLS投递处理延迟而无法确保100%交付所有会话。

  • 会话日志数据的收集在网络流量路径之外,不会影响 NAT 网关的网络吞吐量或延迟。

会话日志和流日志的区别

VPC 流日志和 NAT 网关会话日志都可以记录经过 NAT 网关的网络流量:

  • VPC 流日志:以网络层数据流为记录单位,逐方向捕获经过弹性网卡的每一条流量记录;便于排查网络链路或安全策略问题。

  • 会话日志:以 NAT 会话为记录单位,将同一会话的私网地址、NAT 转换地址、公网地址及双向流量聚合为一条完整记录,便于审计公网访问行为或分析 SNAT 端口使用趋势。

场景示例

VPC 内 ECS 实例(私网 IP 172.16.20.21)通过 NAT 网关的 SNAT 功能访问公网服务器 106.XX.XX.203:12180。NAT 网关将 ECS 的源地址转换为 172.16.10.13:48155

image

VPC 流日志 - 4 条记录(完整流日志字段说明

NAT 会话日志 - 1 条记录(完整会话日志格式说明

①  ECS → NAT网关(地址转换前)
    srcaddr: 172.16.20.21    srcport: 47176
    dstaddr: 106.XX.XX.203   dstport: 12180
    direction: in  bytes: 487  packets: 6

②  NAT网关 → 公网(地址转换后)
    srcaddr: 172.16.10.13    srcport: 48155
    dstaddr: 106.XX.XX.203   dstport: 12180
    direction: out bytes: 487  packets: 6

③  公网 → NAT网关(响应到达)
    srcaddr: 106.XX.XX.203   srcport: 12180
    dstaddr: 172.16.10.13    dstport: 48155
    direction: in  bytes: 449  packets: 4

④  NAT网关 → ECS(反向转换)
    srcaddr: 106.XX.XX.203   srcport: 12180
    dstaddr: 172.16.20.21    dstport: 47176
    direction: out bytes: 449  packets: 4

# 源地址(ECS私网IP)
pri_ip: 172.16.20.21       pri_port: 47176
# NAT地址转换
nat_ip: 172.16.10.13       nat_port: 48155
# 目的地址(EIP)
pub_ip: 106.XX.XX.203      pub_port: 12180
# VPC侧流量
bytes_from_vpc: 417        pkts_from_vpc: 6
# 公网侧流量
bytes_from_pub: 421        pkts_from_pub: 4

适用范围

  • 按固定规格计费(停止新购)的NAT 网关实例不支持开启会话日志服务。

  • NAT 网关实例需要与创建的日志服务在同一地域。

  • 会话日志不支持捕获DNAT会话。

计费

会话日志不收取日志生成费用,但会话日志所捕获的SNAT会话将存储于阿里云日志服务中,日志服务将收取相应的存储和检索等费用

配置会话日志

启动会话日志

  1. 登录NAT网关管理控制台,在顶部菜单栏处,选择 NAT 网关所属的地域。

  2. 在左侧导航栏选择公网NAT网关VPC NAT网关,单击目标 NAT 网关实例ID。

  3. 选择监控和日志 > 会话日志页签,单击启用会话日志

    选择ProjectLogstore:首次创建会话日志时,为和其他数据隔离,建议新建 Project新建 Logstore。当需要将多个会话日志汇总到一处集中分析时,请选择同一个Logstore。

停止会话日志

单击目标会话日志会话日志状态列的停止。停止会话日志,不会删除已有日志,可以在 SLS Project 查看。

了解会话日志状态

前往目标 NAT 网关实例的监控和日志 > 会话日志页签。

列表项

说明

会话日志状态

会话日志的启动状态,启动会话日志后显示已启动

启动会话日志后,系统会自动创建AliyunServiceRolePolicyForNatgwLogDelivery服务关联角色,向您创建的LogStore进行授权,从而完成数据的投递。

投递状态

会话日志的投递状态。取值:

  • 成功:会话日志成功投递至日志服务。

  • 修改中:中间状态,表示会话日志正在修改或启动中。

  • 失败:会话日志无法投递至日志服务。相关错误信息,请参见更多信息

投递类型

会话日志投递的目标类型,取值:sls

目标信息

目标信息列单击日志库链接,跳转至日志服务控制台,在查看和分析日志之前,您需要为会话日志投递的Logstore中手动创建索引

更多信息

会话日志格式

字段

说明

instance

NAT 网关实例ID。

vpc_id

NAT 网关实例所属的专有网络ID。

protocol

流量的IANA协议编号中,1表示ICMP协议,6表示TCP协议,17表示UDP协议。

pri_ip

源地址。

pri_port

源端口。

对于 ICMP 报文,pri_port对应ICMP ID字段。

pub_ip

目的地址。

pub_port

目的端口。

nat_ip

  • 公网NAT网关实例:

    • EIP 绑定模式为 EIP 普通模式:公网NAT网关实例绑定的 EIP 对应的私网IP地址。

    • EIP 绑定模式为多 EIP 网卡可见模式:表示公网NAT网关实例绑定的 EIP。

    调用DescribeNatGateways接口,查询EipBindMode字段,确认 EIP 绑定模式。
    调用ModifyNatGatewayAttribute接口,可修改EipBindMode字段:仅支持将多 EIP 网卡可见模式修改为普通模式。
  • VPC NAT网关实例:表示VPC NAT网关实例绑定的NAT IP。

nat_port

  • 公网NAT网关实例:公网NAT网关实例绑定的 EIP 端口。

  • VPC NAT网关实例:VPC NAT网关实例绑定的NAT IP端口。

bytes_from_pub

  • 公网NAT网关实例:来自公网的数据包大小。

  • VPC NAT网关实例:来自其他VPCIDC网络的数据包大小。

单位:byte。

pkts_from_pub

  • 公网NAT网关实例:来自公网的数据包流量。

  • VPC NAT网关实例:来自其他VPCIDC网络的数据包流量。

该字段统计的是网络层包数,而非应用层或传输层的报文数,因此在存在 IP 分片的场景下,与端侧抓包数存在差异属于正常现象,以流量字节数作为实际数据量的参考更为准确。

bytes_from_vpc

来自VPC的数据包大小,单位:byte。

pkts_from_vpc

来自VPC的数据包数量。

start_time

会话日志建立时间。

end_time

会话日志停止时间。

投递错误码

错误码

说明

ProjectNotExist

会话日志投递的目标Project不存在。

LogStoreNotExist

会话日志投递的目标LogStore不存在。

ProjectForbidden

您创建的Project被禁用,可能是由于欠费导致。

InvalidAccessKeyId

启动会话日志时,未创建服务关联角色。

Unauthorized

启动会话日志时,未创建服务关联角色向 LogStore 授权。

UnavaliableTarget

遇到Unauthorized、ProjectNotExist、LogStoreNotExist、ProjectForbidden错误时,分发会禁止投递至目标5分钟。在5分钟禁用到期后,如果有新的数据需要投递,会投递一次至LogStore做探测,如果投递不成功,则继续禁用下一个5分钟,如果投递成功则恢复对LogStore的正常投递。

WriteQuotaExceed

您的Project写入流量配额超过限制,默认一个Project下所有LogStore的写入限制为30 GB/min。

ShardWriteQuotaExceed

分发的日志流量较大,而您LogStoreShard不足,建议您分裂更多Shard支撑更大写入流量。具体操作,请参见管理Shard