依赖检查
创建时间:2024-04-02 最近修改时间:2025-10-24
#1. 依赖检查
原理上 Agent 仅依赖于Linux Kernel 2.6.23+。
#2. 采集配置
deepflow-agent.yaml 配置文件:
- 推荐:将
vtap-group-id-request设置为系统-采集器-组页面的某个ID字段值,使得采集器被发现时可自动加入特定的采集器组
系统-采集器-配置页面:
采集网口配置为采集流量的网口的正则表达式- 采集网口主要有两类:虚拟机直接与宿主机相连的虚拟网卡、KVM宿主机的物理网卡
- 为避免采集不必要的网卡,请添加
^强制匹配开头,例如:^(eth|tap).* - 注意:仅采集
虚拟机连接宿主机网卡和宿主机连接物理交换机网卡的流量,不要采集宿主机内其他虚拟网卡流量,否则会导致采集流量重复、资源开销增大。eth.*或者bond.*:采集KVM出接口(物理网卡)的流量。注意当有网卡汇聚配置时,配置bond.*而非eth.*。tap.*:采集虚拟机的虚拟网卡的流量
- 注意:青云私有云请按如下方法配置
eth.*或者bond.*:采集KVM出接口(物理网卡)的流量,请根据实际物理网卡名称配置。但是当KVM使用了硬件网卡直通或VXLAN offlloading能力时,并不是所有的流量都能在物理网卡上采集到,此时还需增加如下配置:[0-9a-zA-Z]+_[0-9]{1,3}$: 青云直通网卡场景需要配置该接口,网卡名通常与物理网卡名称有相同的前缀,例如ens1f0_44vf.*:连到同一个子网的虚拟机网卡(名为MAC地址后4B)在一个bridge中,这个bridge中vf前缀的虚接口负责调用硬件网卡的vxlan封装能力,这个网口可认为是该bridge的出接口。这个接口的vf前缀后会跟着物理网卡名称的前缀,例如vfenp或者vfens
[0-9a-f]{8}$:采集虚拟机的虚拟网卡的流量,注意末尾加$严格匹配 8 个字符
虚拟机MAC解析默认配置为接口MAC即可,具体候选项含义为接口MAC:适用于大多数场景,通过tap口的MAC后5字节确定虚拟机MAC,第一字节忽略接口名称:Contrail采用此方式,tap口的名称后缀代表MAC地址的后5字节,同样第一字节忽略- 早期版本的青云私有云也要使用此方式,且只能获取到MAC地址后4字节。但是2020年接触的青云私有云已无此问题,直接可使用
接口MAC - 青云环境如果使用直通网卡,仍然需要配置为
接口名称来通过直通网卡的名称查询bridege fdb表获取MAC地址
- 早期版本的青云私有云也要使用此方式,且只能获取到MAC地址后4字节。但是2020年接触的青云私有云已无此问题,直接可使用
虚拟机XML:在某些版本华为私有云中,tap口的MAC和名称均和虚拟机实际MAC无关联,此时需要读取虚拟机的QEMU XML文件确定实际MAC
隧道解封装配置为正确的SDN隧道协议,以展示虚拟网络链路追踪能力- 当KVM上使用VXLAN隧道封装时
- 若未部署KVM上虚拟机内的容器采集器,或容器跨节点通信不使用隧道封装,需要配置KVM采集器隧道解封装参数为
VXLAN - 若KVM上虚拟机运行容器、部署了容器采集器、且容器跨节点通信使用隧道时,需根据容器CNI隧道类型配置KVM采集器的隧道解封装参数为
VXLAN-VXLAN或VXLAN-IPIP
- 若未部署KVM上虚拟机内的容器采集器,或容器跨节点通信不使用隧道封装,需要配置KVM采集器隧道解封装参数为
- 对于腾讯专有云(TCE)场景,需要配置为
TCE GRE
- 当KVM上使用VXLAN隧道封装时
#3. 安装 Agent
一般KVM环境需要客户自行将 agent 的 rpm/deb 包上传并安装到宿主机上。包含如下步骤:
# 将采集器 rpm/deb 包拷贝至计算节点 /tmp 目录下并安装
# Centos 系统操作系统用 rpm 文件,Debian 系列操作系统用 deb 文件
rpm -ivh /tmp/deepflow-agent-1.0-XXXX.rpm
dpkg -i /tmp/deepflow-agent-1.0-XXXX.deb
# 修改 /etc/deepflow-agent.yaml 文件中的 controller_ips,此为 DeepFlow 控制器IP
sed -ir 's#127.0.0.1#10.10.241.115#g' /etc/deepflow-agent.yaml
# 按需修改 deepflow-agent.yaml 中的 vtap-group-id-request
# 启动 deepflow-agent 服务并设置为开机启动
systemctl enable deepflow-agent && systemctl start deepflow-agent
# 检查服务正常运行
systemctl status deepflow-agent
# 杀死 deepflow-agent 并继续检查是否可恢复运行
pkill -9 deepflow-agent
systemctl status deepflow-agent
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19