DeepFlow Agent注册失败、协议解析、资源识别与配置方式如何排查?
摘要:目录 1. 前言 2. 部署问题排查 3. 通用排查案例 4. 其余常见问题 1. 前言 1.1 适用范围 本文档适用于 DeepFlow Agent v6.6 及以上版本。 1.2 运行权限及内核要求 确保环境满足运行权限及内核要求。 1
目录
1. 前言
2. 部署问题排查
3. 通用排查案例
4. 其余常见问题
1. 前言
1.1 适用范围
本文档适用于 DeepFlow Agent v6.6 及以上版本。
1.2 运行权限及内核要求
确保环境满足运行权限及内核要求。
1.3 排查前检查
检查项
要求
版本
Agent/Server 为 LTS 版本,且 Agent ≤ Server 版本
部署方式
主机进程部署 或 K8s Pod 部署
工具
已安装与 Server 同版本的 deepflow-ctl
等待时间
Agent 部署后等待 5 分钟以上再排查(初始化需要时间)
网段
Agent IP 在 Server 的 local_ip_ranges 网段内
2. 部署问题排查
2.1 主机进程部署
主机进程部署通过 deepflow-agent 二进制直接运行在主机上,默认使用 38086 端口。
Agent 注册失败排查
按以下顺序检查:
检查 Domain 与 Agent Group Config 配置
检查 Server 网段配置
检查主机名是否重名
检查是否通过 LB 连接 Server
2.1.1 检查 Domain 与 Agent Group Config 配置
主机进程部署需要完成两个步骤:
创建 Host Domain(类型为 agent_sync)
创建 Agent Group Config(采集器组配置)
这两个步骤缺一不可。agent_sync 类型 Domain 只能创建一个,多了会导致注册异常。
排查步骤:
检查 Host Domain 是否已创建:
# 确认列表中存在类型为 agent_sync 的 Domain
deepflow-ctl domain list
检查 Agent Group Config 是否已创建:
deepflow-ctl agent-group-config list
解决方案:
如果缺少 Host Domain:
unset DOMAIN_NAME
DOMAIN_NAME="legacy-host" # 自定义 domain 名称
cat << EOF | deepflow-ctl domain create -f -
name: $DOMAIN_NAME
type: agent_sync
EOF
Domain 用于让 deepflow-agent 以自同步方式将服务器网络信息发送至 deepflow-server,类似于监控 K8s 集群时创建 K8s Domain。
如果缺少 Agent Group Config,通过 deepflow-ctl 创建:
inputs:
resources:
workload_resource_sync_enabled: true
采集器组配置用于在无法通过云平台 API 同步资源的场景下,同步物理服务器或虚拟机的资源信息。
注意事项:
Domain 只需创建一个,创建多个会导致 Agent 注册异常
两步操作缺一不可
2.1.2 检查 Server 网段配置
DeepFlow Server 通过 local_ip_ranges 配置识别局域网网段。如果 Agent 的 IP 不在该配置范围内,会导致:
Agent 无法正常注册
某些 IP 在 metrics 中被聚合为 0.0.0.0(广域网 IP)
排查步骤:
获取 Agent 的 IP 地址
检查 Server 配置中的 local_ip_ranges:
# kubectl edit cm -n deepflow deepflow
# 默认配置:
local_ip_ranges:
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
- 169.254.0.0/15
- 224.0.0.0-240.255.255.255
确认 Agent IP 是否在配置的网段范围内。
解决方案:
更新 Server 配置,将 Agent 所在网段添加到 local_ip_ranges:
更新 Server 配置文档
关于 0.0.0.0 广域网 IP
在 DeepFlow 中,0.0.0.0 代表广域网 IP。
