跳到主要内容

配置

eBPF网络模块总开关

  • 主机安装:

修改 /opt/tingyun-oneagent/conf/oneagent.conf 中配置项 network_enabled=true

然后重启服务

sudo systemctl restart tingyun-oneagent
  • Kubernetes安装:

修改 tingyun-sys-configoneagent.conf 的配置项 network_enabled=false

apiVersion: v1
kind: ConfigMap
metadata:
name: tingyun-sys-config
namespace: tingyun
data:
oneagent.conf: |
# APM总开关,此配置项由报表生成, 不可修改
apm_enabled=true
# Infra总开关, 此配置项由报表生成, 不可修改
infra_enabled=true
#
# Infra是否采集进程日志开关, 此配置项由报表生成, 不可修改
infra_log_enabled=false
#
# EBPF网络数据总开关, 如果开启此开关,需要同时修改Daemonset tingyun-linux-agent的requests cpu为0.5, memory为1Gi以上,并重启Daemonset tingyun-linux-agent
network_enabled=false

需要同时修改Daemonset tingyun-linux-agent的requests cpu为0.5, memory为1Gi以上,并重启Daemonset tingyun-linux-agent

eBPF探针熔断

熔断原理

eBPF探针熔断策略是根据Node节点主机CPU使用率和可用内存大小来判断是否需要执行探针熔断。

  • CPU默认的阈值为 70%~80%,当Node节点CPU使用率超过80%,触发探针熔断。

  • 可用内存默认的阈值为1GB~2GB,当Node节点的可用内存小于1GB时,触发探针熔断。

  • 探针熔断后,当主机CPU使用率低于70%时且可用内存大于2GB时,探针恢复正常工作。

需要注意的是,熔断时eBPF探针进程会退出,熔断恢复后,eBPF探针进程会重新启动。

配置修改

  • 主机安装:

修改 /opt/tingyun-oneagent/conf/ebpf-network.conf 配置项

# 当节点的CPU使用率高于禁用阈值或可用内存小于禁用阈值时,网络模块切换到熔断状态
# 当处于熔断状态,且CPU使用率低于启用阈值时,且可用内存大于启用阈值时,网络模块切换到工作状态
#
# CPU使用率禁用阈值(%)
cpu_usage.high=80
#
# CPU使用率启用阈值(%)
cpu_usage.low=70
#
# 可用内存禁用阈值(B)
memory_available.low=1073741824
#
# 可用内存启用阈值(B)
memory_available.high=2147483648

然后重启服务

sudo systemctl restart tingyun-oneagent

查看熔断日志:

cat /opt/tingyun-oneagent/logs/oneagent/watchdog.log

输入结果类似如下:

Disabling ebpf-network, cpu_usage 90%, memory_available 1073741824
Restarting ebpf-network, cpu_usage 60%, memory_available 4434245400
  • Kubernetes安装:

修改 tingyun-sys-configebpf-network.conf 配置项

  ebpf-network.conf: |
# 当节点的CPU使用率高于禁用阈值或可用内存小于禁用阈值时,网络模块切换到熔断状态
# 当处于熔断状态,且CPU使用率低于启用阈值时,且可用内存大于启用阈值时,网络模块切换到工作状态
#
# CPU使用率禁用阈值(%)
cpu_usage.high=80
#
# CPU使用率启用阈值(%)
cpu_usage.low=70
#
# 可用内存禁用阈值(B)
memory_available.low=1073741824
#
# 可用内存启用阈值(B)
memory_available.high=2147483648

然后使用yaml文件更新。

kubectl apply -f tingyunagent.yaml    

当tingyunagent.yaml安装文件丢失时,可以使用edit configmap命令修改配置。

kubectl edit configmap tingyun-sys-config -n tingyun

查看熔断日志:

kubectl -n tingyun exec -ti tingyun-linux-agent-vrtwk -- cat /opt/agent/logs/oneagent/watchdog.log

输入结果类似如下:

Disabling ebpf-network, cpu_usage 90%, memory_available 2434335434
Restarting ebpf-network, cpu_usage 60%, memory_available 4434245400

日志级别和审计模式

ebpf-network.conf 文件内的配置项 log.levellog.audit

#
# 配置项: log.filecount
# 用途: 日志文件保留个数
# 缺省值: 10
# 修改后需要重启pod
log.filecount=3
#
# 配置项: log.filesize
# 用途: 单个日志文件大小
# 缺省值: 100
# 单位: MB字节
# 修改后需要重启pod
log.filesize=100
#
# 配置项: log.level
# 用途: 日志数据过滤级别
# 可设定值: debug, info, warning, error
# 缺省值: info
# 修改后需要重启pod
log.level=info
#
# 配置项: log.audit
# 用途: 开启审计模式日志
# 可设定值: true, false
# 缺省值: false
# 修改后需要重启pod
log.audit=false

查看日志:

  • 主机安装:
/opt/tingyun-oneagent/logs/agent/ebpf-network.log
  • Kubernetes安装:
/opt/agent/logs/agent/ebpf-network.log