网络流日志
创建时间:2024-06-01 最近修改时间:2024-06-24
无需向应用中插入任何代码,DeepFlow 自动生成所有服务的网络流日志。
数据库表名:flow_log.l4_flow_log
。
#1. 标签
自动注入的 Tag 列表:IP、协议、端口、网络包头字段、采集位置、云资源、K8s 资源、K8s 自定义 Label,详细字段描述如下。
Name | DisplayName | Description |
---|---|---|
_id | UID | |
time | 时间 | 将 end_time 取整到秒。 |
region | 区域 | |
az | 可用区 | |
host | 宿主机 | 承载虚拟机的宿主机。 |
chost | 云服务器 | 包括虚拟机、裸金属服务器。 |
vpc | VPC | |
l2_vpc | 转发 VPC | MAC 地址所在的 VPC。 |
subnet | 子网 | |
router | 路由器 | |
dhcpgw | DHCP 网关 | |
lb | 负载均衡器 | |
lb_listener | 负载均衡监听器 | |
natgw | NAT 网关 | |
redis | Redis | |
rds | RDS | |
pod_cluster | K8s 容器集群 | |
pod_ns | K8s 命名空间 | |
pod_node | K8s 容器节点 | |
pod_ingress | K8s Ingress | |
pod_service | K8s 容器服务 | |
pod_group_type | K8s 工作负载类型 | |
pod_group | K8s 工作负载 | 例如 Deployment、StatefulSet、Daemonset 等。 |
pod | K8s 容器 POD | |
service | 服务 | 已废弃,请使用 pod_service |
resource_gl0_type | 自动实例类型 | 已废弃,请使用 auto_instance_type。 |
resource_gl0 | 自动实例 | 已废弃,请使用 auto_instance。 |
resource_gl1_type | 自动服务类型 | 已废弃,请使用 auto_service_type。 |
resource_gl1 | 自动服务 | 已废弃,请使用 auto_service。 |
resource_gl2_type | 自动服务类型 | 已废弃,请使用 auto_service_type。 |
resource_gl2 | 自动服务 | 已废弃,请使用 auto_service。 |
auto_instance_type | 自动实例类型 | auto_instance 实例对应的类型。 |
auto_instance | 自动实例 | IP 对应的实例,实例为IP时,auto_instance_id显示为子网ID。 |
auto_service_type | 自动服务类型 | auto_service 实例对应的类型。 |
auto_service | 自动服务 | 在auto_instance 基础上,将容器服务的 ClusterIP 与工作负载聚合为服务,实例为IP时,auto_service_id显示为子网ID。 |
gprocess | 进程 | |
tap_port_host | 采集网卡所属宿主机 | 已废弃,请使用 capture_nic_host。 |
tap_port_chost | 采集网卡所属云服务器 | 已废弃,请使用 capture_nic_chost。 |
tap_port_pod_node | 采集网卡所属容器节点 | 已废弃,请使用 capture_nic_pod_node。 |
capture_nic_host | 采集网卡所属宿主机 | |
capture_nic_chost | 采集网卡所属云服务器 | |
capture_nic_pod_node | 采集网卡所属容器节点 | |
host_ip | 宿主机 | 宿主机的管理 IP。 |
host_hostname | 宿主机 | 宿主机的 Hostname。 |
chost_ip | 云服务器 | 云服务器的主 IP。 |
chost_hostname | 云服务器 | 云服务器的 Hostname。 |
pod_node_ip | K8s 容器节点 | 容器节点的主 IP。 |
pod_node_hostname | K8s 容器节点 | 容器节点的 Hostname。 |
k8s.label | K8s Label | |
k8s.annotation | K8s Annotation | |
k8s.env | K8s Env | |
cloud.tag | Cloud Tag | |
os.app | OS APP | |
eth_type | 链路协议 | |
vlan | VLAN TAG | |
mac | MAC 地址 | |
ip | IP 地址 | |
is_ipv4 | IPv4 标志 | |
is_internet | Internet IP 标志 | IP 地址是否为外部 Internet 地址。 |
province | 省份 | Internet IP 地址所属的省份。 |
protocol | 网络协议 | |
tunnel_tier | 隧道层数 | |
tunnel_type | 隧道类型 | |
tunnel_tx_id | 请求隧道 ID | |
tunnel_rx_id | 响应隧道 ID | |
tunnel_tx_ip | 请求隧道 IP | |
tunnel_tx_ip_0 | 请求隧道源 IP | |
tunnel_tx_ip_1 | 请求隧道目 IP | |
tunnel_rx_ip | 响应隧道 IP | |
tunnel_rx_ip_0 | 响应隧道源 IP | |
tunnel_rx_ip_1 | 响应隧道目 IP | |
tunnel_tx_mac | 请求隧道 MAC | |
tunnel_tx_mac_0 | 请求隧道源 MAC | |
tunnel_tx_mac_1 | 请求隧道目 MAC | |
tunnel_rx_mac | 响应隧道 MAC | |
tunnel_rx_mac_0 | 响应隧道源 MAC | |
tunnel_rx_mac_1 | 响应隧道目 MAC | |
client_port | 客户端口 | |
server_port | 服务端口 | |
tcp_flags_bit | TCP 标志位集合 | 当前自然分钟内所有包中 TCP 标志位的集合。 |
syn_seq | SYN 包 Seq 号 | |
syn_ack_seq | SYN-ACK 包 Seq 号 | |
last_keepalive_seq | 心跳包 Seq 号 | 最近一个心跳包中的 SEQ 序列号。 |
last_keepalive_ack | 心跳包 Ack 号 | 最近一个心跳包中的 ACK 确认号。 |
l7_protocol | 应用协议 | |
request_domain | 请求域名 | |
flow_id | 流日志 ID | |
start_time | 开始时间 | 单位: 微秒。表示当前自然分钟内流的开始时间,对于新建流表示首包时间。 |
end_time | 结束时间 | 单位: 微秒。表示当前自然分钟内流的结束时间,若流在该分钟内 close,则为尾包时间或流状态机超时的时间。 |
close_type | 流结束类型 | |
status | 状态 | 根据协议(protocol)、流结束类型(close_type)分类。 正常 包括:正常结束 、周期性上报 、断连-XX半关 、传输-超时 (非 TCP 协议)。 客户端异常 包括:建连-客户端XX 、传输-客户端XX 。 服务端异常 包括:建连-服务端XX 、传输-服务端XX 、传输-超时 (TCP 协议)。 未知 =未知 。 |
is_new_flow | 新建流 | |
signal_source | 信号源 | |
tap | 采集点 | 已废弃,请使用 capture_network_type。 |
capture_network_type | 网络位置 | 采集流量的网络位置,使用固定值(云网络)表示云内流量,其他值表示传统 IDC 流量(支持最多 254 个自定义值表示镜像分光的位置)。 |
vtap | 采集器 | 已废弃,请使用 agent。 |
agent | 采集器 | |
nat_source | NAT 源 | |
tap_port | 采集位置标识 | 已废弃,请使用 capture_nic。 |
tap_port_name | 采集位置名称 | 已废弃,请使用 capture_nic_name。 |
tap_port_type | 采集位置类型 | 已废弃,请使用 capture_nic_type。 |
capture_nic | 采集网卡标识 | 当采集位置类型为本地网卡时,此值表示采集网卡的 MAC 地址后缀(后四字节)。 |
capture_nic_name | 采集网卡名称 | 当采集位置类型为本地网卡时,此值表示采集网卡的名称。 |
capture_nic_type | 采集网卡类型 | 表示流量采集位置的类型,包括本地网卡(云内流量)、云网关网卡(云网关流量)、分光镜像(传统 IDC 流量)等。 |
tap_side | 路径统计位置 | 已废弃,请使用 observation_point。 |
observation_point | 观测点 | 采集位置在流量路径中所处的逻辑位置,例如客户端网卡、客户端容器节点、服务端容器节点、服务端网卡等。 |
l2_end | 二层边界 | 表示是否是在客户端网卡或服务端网卡处采集的流量。 |
l3_end | 三层边界 | 表示是否是在客户端或服务端所在二层网络内采集的流量。 |
has_pcap | PCAP 文件 | 是否存储了 PCAP 文件 |
nat_real_ip | NAT IP 地址 | NAT 作用前(后)的真实 IP 地址,该值从 TOA(TCP Option Address)中提取,或者根据云平台中 VIP 与 RIP 的映射信息计算。 |
nat_real_port | NAT Port | NAT 作用前的真实端口号,该值从 TOA(TCP Option Address)中提取。 |
generate from csv file: l4_flow_log.ch
#2. 指标
Metrics 列表:吞吐、负载、时延、TCP 异常、重传、零窗,详细字段描述如下。
Field | DisplayName | Unit | Description |
---|---|---|---|
byte | 字节 | 字节 | |
byte_tx | 发送字节 | 字节 | 客户端发往服务端的字节数总和(含 Ethernet 头) |
byte_rx | 接收字节 | 字节 | 服务端发往客户端的字节数总和(含 Ethernet 头) |
total_byte_tx | 累计发送字节 | 字节 | |
total_byte_rx | 累计接收字节 | 字节 | |
packet | 包数 | 包 | |
packet_tx | 发送包数 | 包 | 客户端发往服务端的包数总和 |
packet_rx | 接收包数 | 包 | 服务端发往客户端的包数总和 |
total_packet_tx | 累计发送包数 | 包 | |
total_packet_rx | 累计接收包数 | 包 | |
l3_byte | 网络层载荷 | 字节 | |
l3_byte_tx | 发送网络层载荷 | 字节 | 客户端发往服务端的网络层载荷字节数总和(不含 IP 头) |
l3_byte_rx | 接收网络层载荷 | 字节 | 服务端发往客户端的网络层载荷字节数总和(不含 IP 头) |
bpp | 平均包长 | 字节 | |
bpp_tx | 平均发送包长 | 字节 | |
bpp_rx | 平均接收包长 | 字节 | |
new_flow | 新建连接 | 连接 | |
closed_flow | 关闭连接 | 连接 | |
syn_count | SYN 包数 | 包 | SYN 包的总数 |
synack_count | SYN-ACK 包数 | 包 | SYN-ACK 包的总数 |
l4_byte | 传输层载荷 | 字节 | |
l4_byte_tx | 发送传输层载荷 | 字节 | 客户端发往服务端的包传输层载荷字节数总和(不含 TCP/UDP 头) |
l4_byte_rx | 接收传输层载荷 | 字节 | 服务端发往客户端的包传输层载荷字节数总和(不含 TCP/UDP 头) |
direction_score | 方向得分 | 算法推理传输层连接方向(客户端、服务端角色)的准确性得分值,得分越高连接方向的准确性越高,得分最高 255 | |
log_count | 日志总量 | 个 | |
retrans_syn | SYN 重传 | 包 | SYN 包的重传次数 |
retrans_synack | SYN-ACK 重传 | 包 | SYN-ACK 包的重传次数 |
retrans | TCP 重传 | 包 | |
retrans_tx | TCP 客户端重传 | 包 | TCP 连接客户端发往服务端的重传包次数 |
retrans_rx | TCP 服务端重传 | 包 | TCP 连接服务端发往客户端的重传包次数 |
zero_win | TCP 零窗 | 包 | |
zero_win_tx | TCP 客户端零窗 | 包 | TCP 连接客户端发往服务端的零窗包次数 |
zero_win_rx | TCP 服务端零窗 | 包 | TCP 连接服务端发往客户端的零窗包次数 |
retrans_syn_ratio | SYN 重传比例 | % | |
retrans_synack_ratio | SYN-ACK 重传比例 | % | |
retrans_ratio | TCP 重传比例 | % | |
retrans_tx_ratio | TCP 客户端重传比例 | % | |
retrans_rx_ratio | TCP 服务端重传比例 | % | |
zero_win_ratio | TCP 零窗比例 | % | |
zero_win_tx_ratio | TCP 客户端零窗比例 | % | |
zero_win_rx_ratio | TCP 服务端零窗比例 | % | |
tcp_establish_fail | 建连-失败次数 | 次 | |
client_establish_fail | 建连-客户端失败次数 | 次 | |
server_establish_fail | 建连-服务端失败次数 | 次 | |
tcp_establish_fail_ratio | 建连-失败比例 | % | |
client_establish_fail_ratio | 建连-客户端失败比例 | % | |
server_establish_fail_ratio | 建连-服务端失败比例 | % | |
tcp_transfer_fail | 传输-失败次数 | 次 | 所有传输错误。 |
tcp_transfer_fail_ratio | 传输-失败比例 | % | |
tcp_rst_fail | 重置次数 | 连接 | 所有重置错误。 |
tcp_rst_fail_ratio | 重置比例 | % | |
client_source_port_reuse | 建连-客户端端口复用 | 连接 | |
server_syn_miss | 建连-服务端 SYN 缺失 | 连接 | |
client_establish_other_rst | 建连-客户端其他重置 | 连接 | |
client_ack_miss | 建连-客户端 ACK 缺失 | 连接 | |
server_reset | 建连-服务端直接重置 | 连接 | |
server_establish_other_rst | 建连-服务端其他重置 | 连接 | |
client_rst_flow | 传输-客户端重置 | 连接 | |
server_rst_flow | 传输-服务端重置 | 连接 | |
server_queue_lack | 传输-服务端队列溢出 | 连接 | |
tcp_timeout | 传输-TCP 连接超时 | 连接 | |
client_half_close_flow | 断连-客户端半关 | 连接 | TCP 断连异常的场景之一,见文档描述。 |
server_half_close_flow | 断连-服务端半关 | 连接 | TCP 断连异常的场景之一,见文档描述。 |
rtt | 平均 TCP 建连时延 | 微秒 | |
tls_rtt | 平均 TLS 建连时延 | 微秒 | |
rtt_client | 平均 TCP 建连客户端时延 | 微秒 | |
rtt_server | 平均 TCP 建连服务端时延 | 微秒 | |
srt | 平均 TCP/ICMP 系统时延 | 微秒 | |
art | 平均数据时延 | 微秒 | |
cit | 平均客户端等待时延 | 微秒 | |
rtt_max | 最大 TCP 建连时延 | 微秒 | |
tls_rtt_max | 最大 TLS 建连时延 | 微秒 | |
rtt_client_max | 最大 TCP 建连客户端时延 | 微秒 | |
rtt_server_max | 最大 TCP 建连服务端时延 | 微秒 | |
srt_max | 最大 TCP/ICMP 系统时延 | 微秒 | |
art_max | 最大数据时延 | 微秒 | |
cit_max | 最大客户端等待时延 | 微秒 | |
srt_sum | 累计 TCP/ICMP 系统时延 | 微秒 | 采集周期内全部TCP/ICMP 系统时延 的加和 |
srt_count | TCP/ICMP 系统时延次数 | 次 | 采集周期内TCP/ICMP 系统时延 的次数 |
art_sum | 累计数据时延 | 微秒 | 采集周期内全部数据时延 的加和 |
art_count | 数据时延次数 | 次 | 采集周期内数据时延 的次数 |
cit_sum | 累计客户端等待时延 | 微秒 | 采集周期内全部客户端等待时延 的加和 |
cit_count | 客户端等待时延次数 | 次 | 采集周期内客户端等待时延 的次数 |
duration | 流持续时间 | 微秒 | 表示流的首包到尾包(注意不是 end_time)的时长。 |
l7_request | 应用请求 | 个 | |
l7_response | 应用响应 | 个 | |
rrt | 平均应用时延 | 微秒 | |
rrt_sum | 累计应用时延 | 微秒 | 采集周期内全部应用时延 的加和 |
rrt_count | 应用时延次数 | 次 | 采集周期内应用时延 的次数 |
rrt_max | 最大应用时延 | 微秒 | |
l7_error | 应用异常 | 个 | |
l7_client_error | 应用客户端异常 | 个 | 根据具体应用协议的响应码判断异常,不同协议的定义见 l7_flow_log 中 response_status 字段的说明 |
l7_server_error | 应用服务端异常 | 个 | 根据具体应用协议的响应码判断异常,不同协议的定义见 l7_flow_log 中 response_status 字段的说明 |
l7_server_timeout | 应用服务端超时 | 个 | 应用超时的统计次数(默认配置下:TCP 类应用在 1800s 内未采集到响应,UDP 类应用在 150s 内未采集到响应) |
l7_error_ratio | 应用异常比例 | % | |
l7_client_error_ratio | 应用客户端异常比例 | % | |
l7_server_error_ratio | 应用服务端异常比例 | % | |
l7_parse_failed | 应用协议解析失败 | 包 | 累计应用协议解析失败次数,最大值 MAX_U32 |
row | 行数 | 个 |
generate from csv file: l4_flow_log.ch
#3. Grafana Dashboard
基于上述数据可通过 Grafana 构建丰富的 Dashboard。我们在 Grafana 中预置了一个 Network - Flow Log
Dashboard,效果图如下:
Network Flow Log
你也可以访问 DeepFlow Online Demo (opens new window) 查看效果。