前提条件

创建时间:2024-04-02 最近修改时间:2025-10-24

#1. 前提条件

  • 对接限制
    • 不支持和其他云平台对接混合使用
    • 仅支持对接宿主机、虚拟机、MAC、IP信息
    • 6.1版本的 deepflow-agent 不支持采集器同步-KVM,可按需部署 trident
    • 需要设置单独的采集器配置组,不能与其他采集器配置组混用
    • 采集器需要设置采集器组 ID ,有且只有 default 配置组时允许不配置采集器组 ID。

对于 DeepFlow 未部署过的平台,实施之前挑选3个计算节点执行如下脚本,进行环境信息调研:

#!/bin/sh
echo "========== VM List ==============="
sudo virsh list
echo
echo "========== Interface List ========"
sudo ip a
echo
echo "========== VLAN config ==========="
sudo cat /proc/net/vlan/config
echo
echo "========== Linux Bridge List ====="
sudo brctl show
echo
echo "========== OvS Show =============="
sudo ovs-vsctl show
echo
echo "========== OvS Port List ========="
sudo ovs-vsctl list port
echo
echo "========== OvS Interface List ===="
sudo ovs-vsctl list interface
echo
echo "========== VM Details ============"
echo
sudo virsh list | grep -E "^ *[0-9]+ " | awk '{print $1}' | while read vid; do
    echo "========== VM" $vid "========="
    sudo virsh dumpxml $vid
    echo
    sudo virsh domiflist $vid
done
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

如果 trident 已经启动并开始向控制器同步信息,可以在控制器上用下列命令进行信息查询:

mt genesis.trident-dump-platform-data vtap_ctrl_ip=$ctrl_ip
1

#2. 资源页面配置

配置项 填写内容 备注
云平台名称 例:采集器同步-1 云平台的名称,不可和其他云平台的名称重复。不支持中文名称,最大长度64
所属区域 在候选框中选择区域,可不选 选择区域后表示云平台属于这个region,如果不选表示学习此云平台上的区域
资源同步控制器 在候选框中选择资源同步控制器,可不选 选择资源同步控制器表示云平台在这个控制器上同步资源,不选会在区域的主节点上同步资源,如果没有区域会在主控制器上同步资源

#3. 系统页面采集器组配置

配置项 配置内容 备注
虚拟机XML文件夹 虚拟机XML文件位置 青云环境路径一般配置为/run/libvirt/qemu,其他环境一般用默认的/etc/libvirt/qemu
同步资源信息 开启 适用于 v6.5 及之前的版本
hypervisor_resource_enabled true 适用于 v6.6 及之后的版本

#4. Trisolaris 配置

  • 编辑主控制器上/usr/local/deepflow/templates/values-custom.yamldeepflow-server 下 server.yaml 中 的如下参数,并执行 /usr/local/deepflow/bin/deepflow-deploy -u 更新:

    tridentTypeForUnkonwVtap: 1
    
    1
字段 含义
trident-type-for-unkonw-vtap 填写为1(KVM类型)

#5. Genesis 配置

aging_time: 86400
vinterface_aging_time: 300
multi_ns_mode: false
ignore_nic_regex: ^(kube-ipvs)
vm_name_field: metadata
host_ips:
# - x.x.x.x 
# - x.x.x.x/x 
# - x.x.x.x-x.x.x.x 
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
exclude_ip_ranges:
# - x.x.x.x/x 
# - x.x.x.x-x.x.x.x 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
字段 含义
aging_time genesis中数据的过期时间,单位为秒,默认为86400
vinterface_aging_time vinterface数据的过期时间,单位为秒,默认为300
multi_ns_mode 多namespace模式开关,默认false
ignore_nic_regex 忽略网卡正则表达式配置,匹配到会忽略该网卡,默认为 ^(kube-ipvs) ,增加其他的网卡名称需要在此基础上新增
vm_name_field 采集器同步 KVM ,解析虚拟机的 XML 时,默认为 metadata 即使用 domian.metadata.instance.name 字段作为虚拟机的名称,也可指定为 domain.name、domain.title、domain.uuid 之一
host_ips platform_enabled开关开启时,此处配置的采集器IP所上报的kvm内容才会被解析,支持配置单IP、网段CIDR和IP范围
local_ip_ranges 内网IP网段范围配置,配置的IP所在网络会被作为内网进行学习,支持配置网段CIDR和IP范围
exclude_ip_ranges 解析IP时,该配置下的IP会被忽略,支持配置网段CIDR和IP范围
  • 采集器列表页面注册 genesis 所在主机的采集器(确保主机已经学习到)
  • 整个对接的过程如下
    • trident 收集云平台的资源,如 host,tenant,vm,network,port,ip等,发送给genesis服务
    • genesis 把 trident 收集的资源进行整理,并提供数据给 cloud
    • cloud 通过内部函数调用将抽象后的资源数据提供给 recorder
    • recorder 将资源数据保存到数据库中