Beyla 网络指标配置选项
网络指标配置在 Beyla 配置 YAML 文件中的 network 属性下,或通过一组以 BEYLA_NETWORK_ 为前缀的环境变量进行配置。
YAML 示例
network:
enable: true
cidrs:
- 10.10.0.0/24
- 10.0.0.0/8
- 10.30.0.0/16
attributes:
kubernetes:
enable: true
select:
beyla_network_flow_bytes:
include:
- k8s.src.owner.name
- k8s.src.namespace
- k8s.dst.owner.name
- k8s.dst.namespace
- src.cidr
- dst.cidr
otel_metrics_export:
endpoint: https://:4318除了 network YAML 部分,Beyla 配置还需要一个用于导出网络指标的端点(在前面的示例中是 otel_metrics_export,但它也接受 Prometheus 端点)。
网络指标配置属性
要启用网络指标,请将以下 features 之一添加到 otel_metrics_export) 或 prometheus_export) 配置属性中
network启用beyla_network_flow_bytes指标:您的集群中两个端点之间的字节数network_inter_zone启用beyla_network_inter_zone_bytes指标:您的 Cloud 集群中不同可用区之间的字节数
注意
beyla_network_inter_zone_bytes规范目前处于实验阶段,仅适用于 Kubernetes 集群。该规范并非最终版本,Beyla 的未来版本可能会引入破坏性变更。
| YAML | 环境变量 | 类型 | 默认值 |
|---|---|---|---|
source | BEYLA_NETWORK_SOURCE | string | socket_filter |
指定用于获取 Beyla 报告的网络事件的 Linux 内核功能。
可用选项有:tc 和 socket_filter。
当使用 tc 作为事件源时,Beyla 在直接操作模式下使用 Linux Traffic Control 的入口和出口过滤器来捕获网络事件。此事件源模式假设没有其他 eBPF 程序在直接操作模式下附加到相同的 Linux Traffic Control 接口。例如,Cilium Kubernetes CNI 使用了相同的方法,因此如果您在 Kubernetes 集群中安装了 Cilium CNI,请配置 Beyla 使用 socket_filter 模式捕获网络事件。
当使用 socket_filter 作为事件源时,Beyla 安装一个 eBPF Linux 套接字过滤器来捕获网络事件。此模式不与使用 Linux Traffic Control 出口和入口过滤器的 Cilium CNI 或其他 eBPF 程序冲突。
| YAML | 环境变量 | 类型 | 默认值 |
|---|---|---|---|
cidrs | BEYLA_NETWORK_CIDRS | []string | (空) |
CIDR 列表,用于将匹配 src.address 和 dst.address 的条目分别设置为 src.cidr 和 dst.cidr 属性。
该属性是源 IP 地址和目标 IP 地址的函数。如果一个 IP 地址不匹配此处列出的任何地址,则不会设置属性。如果一个 IP 地址匹配多个 CIDR 定义,则流会用最窄的 CIDR 进行装饰。因此,您可以安全地添加一个 0.0.0.0/0 条目,以便将所有不匹配其他任何 CIDR 的流量归为一组。
如果您通过环境变量设置此属性,每个条目必须用逗号分隔,例如
BEYLA_NETWORK_CIDRS=10.0.0.0/8,192.168.0.0/16| YAML | 环境变量 | 类型 | 默认值 |
|---|---|---|---|
agent_ip | BEYLA_NETWORK_AGENT_IP | string | (未设置) |
允许覆盖每个指标上报告的 beyla.ip 属性。如果未设置,Beyla 会自动从指定的网络接口(参见下一个属性)检测自己的 IP 地址。
| YAML | 环境变量 | 类型 | 默认值 |
|---|---|---|---|
agent_ip_iface | BEYLA_NETWORK_AGENT_IP_IFACE | string | external |
指定 Beyla 应使用哪个接口来选择自己的 IP 地址,以设置 `beyla.ip` 属性的值。接受的值有:external(默认)、local 或 name:<interface name>(例如 name:eth0)。
如果设置了 agent_ip 配置属性,此属性无效。
| YAML | 环境变量 | 类型 | 默认值 |
|---|---|---|---|
agent_ip_type | BEYLA_NETWORK_AGENT_IP_TYPE | string | any |
指定 Beyla 应在每个流的 `beyla.ip` 字段中报告哪种类型的 IP 地址(IPv4、IPv6 或两者)。接受的值有:any(默认)、ipv4、ipv6。如果设置了 agent_ip 配置属性,此属性无效。
| YAML | 环境变量 | 类型 | 默认值 |
|---|---|---|---|
interfaces | BEYLA_NETWORK_INTERFACES | []string | (空) |
收集流量的接口名称。如果为空,Beyla 将获取系统中除 excluded_interfaces(见下文)中列出的所有接口。如果条目用斜杠括起来(例如 /br-/),则按正则表达式匹配,否则按大小写敏感字符串匹配。
如果您通过环境变量设置此属性,每个条目必须用逗号分隔,例如
BEYLA_NETWORK_INTERFACES=eth0,eth1,/^veth/| YAML | 环境变量 | 类型 | 默认值 |
|---|---|---|---|
exclude_interfaces | BEYLA_NETWORK_EXCLUDE_INTERFACES | []string | lo |
要从网络流追踪中排除的接口名称。默认值:lo(环回)。如果条目用斜杠括起来(例如 /br-/),则按正则表达式匹配,否则按大小写敏感字符串匹配。
如果您通过环境变量设置此属性,每个条目必须用逗号分隔,例如
BEYLA_NETWORK_EXCLUDE_INTERFACES=lo,/^veth/| YAML | 环境变量 | 类型 | 默认值 |
|---|---|---|---|
protocols | BEYLA_NETWORK_PROTOCOLS | []string | (空) |
如果设置,Beyla 将丢弃所有报告的互联网协议不在此列表中的网络流。
接受的值定义在 Linux 标准知名 IP 协议 的枚举中,可以是:TCP, UDP, IP, ICMP, IGMP, IPIP, EGP, PUP, IDP, TP, DCCP, IPV6, RSVP, GRE, ESP, AH, MTP, BEETPH, ENCAP, PIM, COMP, L2TP, SCTP, UDPLITE, MPLS, ETHERNET, RAW
| YAML | 环境变量 | 类型 | 默认值 |
|---|---|---|---|
exclude_protocols | BEYLA_NETWORK_EXCLUDE_PROTOCOLS | []string | (空) |
如果设置,Beyla 将丢弃所有报告的互联网协议在此列表中的网络流。
如果 `protocols` / `BEYLA_NETWORK_PROTOCOLS` 列表已经设置,则此属性将被忽略。
接受的值定义在 Linux 标准知名 IP 协议 的枚举中,可以是:TCP, UDP, IP, ICMP, IGMP, IPIP, EGP, PUP, IDP, TP, DCCP, IPV6, RSVP, GRE, ESP, AH, MTP, BEETPH, ENCAP, PIM, COMP, L2TP, SCTP, UDPLITE, MPLS, ETHERNET, RAW
| YAML | 环境变量 | 类型 | 默认值 |
|---|---|---|---|
cache_max_flows | BEYLA_NETWORK_CACHE_MAX_FLOWS | integer | 5000 |
指定在刷新以供后续导出之前,会计缓存中可以累积多少个流。默认值为 5000。如果您在 Beyla 日志中看到“received message larger than max”错误,请减小此值。
| YAML | 环境变量 | 类型 | 默认值 |
|---|---|---|---|
cache_active_timeout | BEYLA_NETWORK_CACHE_ACTIVE_TIMEOUT | duration | 5s |
指定流量在会计缓存中保留的最大时长,然后刷新以供后续导出。
| YAML | 环境变量 | 类型 | 默认值 |
|---|---|---|---|
direction | BEYLA_NETWORK_DIRECTION | string | both |
允许根据流量在其捕获接口中的方向选择要追踪的流量。接受的值为 ingress(入站)、egress(出站)或 both(两者,默认)。
注意
在此上下文中,ingress(入站)或 egress(出站)与来自节点外部或集群外部的进出流量无关,而是与网络接口相关。这意味着同一个网络包可能在虚拟网络设备中被视为“入站”,而在其背后的物理网络接口中被视为“出站”。
| YAML | 环境变量 | 类型 | 默认值 |
|---|---|---|---|
sampling | BEYLA_NETWORK_SAMPLING | integer | 0(禁用) |
应采样数据包并发送到目标收集器的速率。例如,如果设置为 100,则平均每 100 个数据包中会有一个发送到目标收集器。
| YAML | 环境变量 | 类型 | 默认值 |
|---|---|---|---|
print_flows | BEYLA_NETWORK_PRINT_FLOWS | boolean | false |
如果设置为 true,Beyla 将每个网络流打印到标准输出。注意,这可能会产生大量输出。



