前提条件
创建时间: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
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.yaml中deepflow-server 下 server.yaml 中的如下参数,并执行/usr/local/deepflow/bin/deepflow-deploy -u更新:tridentTypeForUnkonwVtap: 11
| 字段 | 含义 |
|---|---|
| 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
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 将资源数据保存到数据库中