deepflow-agent在传统服务器(虚机、物理机)上的部署方法
本文主要说明使用deepflow监控非k8s服务器的情况,应用场景是,deepflow-server已经具备,在其他服务器上安装部署deepflow-agent并连接到已有的deepflow-server(可能不在同一台主机)。
本文主要说明使用deepflow监控非k8s服务器的情况,应用场景是,deepflow-server已经具备,在其他服务器上安装部署deepflow-agent并连接到已有的deepflow-server(可能不在同一台主机)。
大概部署拓扑图:
1、部署deepflow-server
关于deepflow-server,该组件部署方式参考deepflow官方文档:
deepflow-server是必须部署在k8s之上,这是官方硬性规定,flow-agent可以部署在任意环境。
2、添加主机网段信息(一般不需要此操作,server默认包含大多数网段,不涉及的可忽略此步骤)
需要注意的是,你部署的agent所在主机,必须在你部署的deepflow-server管辖的网段之内,deepflow-server默认支持管辖下列网段的服务器:
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的主机网段不在上述列表内,请自行在该配置中添加
修改 values-custom.yaml
自定义配置文件(该文件默认在/root/deepflow/values-custom.yaml):
# add
configmap:
server.yaml:
controller:
genesis:
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
# - 7.8.0.0/16 # 添加主机的网段信息
trisolaris:
trident-type-for-unkonw-vtap: 3 # required
修改上述文件后需要重启deepflow-server使配置生效
执行:
helm upgrade deepflow -n deepflow -f values-custom.yaml deepflow/deepflow
kubectl delete pods -n deepflow -l app=deepflow -l component=deepflow-server
3、部署虚机上的deepflow-agent
3.1 创建主机域名
执行下列命令,其中-i参数xx.xx.xx.xx替换为实际的deepflow-server主机IP
unset DOMAIN_NAME
DOMAIN_NAME="legacy-host" # 可随意设置域名: domain name
cat << EOF | deepflow-ctl -i xx.xx.xx.xx domain create -f -
name: $DOMAIN_NAME
type: agent_sync
EOF
如果不添加-i参数指定server IP,将会使用默认参数(本机IP),并提示:curl (http://localhost:30417/v1/domains/) failed, (Post "http://localhost:30417/v1/domains/": dial tcp localhost:30417: connect: connection refused)
该指令执行成功,将会返回一些列信息,类似:
{
"DATA": {
"AZ_COUNT": 0,
"CLUSTER_ID": "",
"CONFIG": {
"controller_ip": "deepflow-server-IP",
"region_uuid": "ffffffff-ffff-ffff-ffff-ffffffffffff"
},
"CONTROLLER_IP": "deepflow-server-IP",
"CONTROLLER_NAME": "server-host",
"CREATED_AT": "2023-09-15 10:39:42",
"DISPLAY_NAME": "5260639a-fe28-4867-91e6-cf3dc40180f3",
"ENABLED": 1,
"ERROR_MSG": "",
"ICON_ID": 0,
"ID": "",
"K8S_ENABLED": 1,
"LCUUID": "caece4af-ff4f-5c2d-8807-ec4be44e4250",
"NAME": "legacy-host",
"POD_CLUSTERS": null,
"REGION_COUNT": 0,
"STATE": 1,
"SYNCED_AT": "",
"TYPE": 23,
"VTAP_CTRL_IP": "",
"VTAP_CTRL_MAC": "",
"VTAP_NAME": ""
},
"DESCRIPTION": "",
"OPT_STATUS": "SUCCESS"
}
3.2 创建采集器组(group)
每个agent都属于某个组(group),group可以管理一系列agent
3.2.1 创建group并获取group ID
通过下列命令创建group并查看group ID,后续会在agent配置中使用,其中xx.xx.xx.xx替换为deepflow-server所在主机的IP
unset AGENT_GROUP
AGENT_GROUP="legacy-host" # 可随意设置group名称
# 创建group
deepflow-ctl -i xx.xx.xx.xx agent-group create $AGENT_GROUP
# 查看 agent-group ID
deepflow-ctl -i xx.xx.xx.xx agent-group list $AGENT_GROUP
上述命令会返回group信息
NAME ID
legacy-host g-Hl0fKJ5xc3
3.2.2 创建采集器group配置文件 agent-group-config.yaml
:
vtap_group_id: g-Hl0fKJ5xc3 # 这里配置刚刚拿到的group ID
platform_enabled: 1
3.2.3 创建采集器group配置
将-i参数xx.xx.xx.xx替换为deepflow-server所在主机IP
deepflow-ctl -i xx.xx.xx.xx agent-group-config create -f agent-group-config.yaml
3.3 部署deepflow-agent
3.3.1 下载deepflow-agent
curl -O https://deepflow-ce.oss-cn-beijing.aliyuncs.com/rpm/agent/stable/linux/$(arch | sed 's|x86_64|amd64|' | sed 's|aarch64|arm64|')/deepflow-agent-rpm.zip
unzip deepflow-agent-rpm.zip
yum -y localinstall x86_64/deepflow-agent-1.0*.rpm
3.3.2 修改 deepflow-agent 的配置文件 /etc/deepflow-agent.yaml
controller-ips:
- 10.1.xx.xx # 配置K8S节点IP列表:
vtap-group-id-request: "g-Hl0fKJ5xc3" # 配置3.2.1中获取的agent-group ID
3.3.3 启动 deepflow-agent
systemctl enable deepflow-agent
systemctl restart deepflow-agent
至此,在虚机上部署deepflow-agent相关内容介绍完毕,可以在grafana上面查看是否有上述节点信息。
或者执行下列命令查看当前deepflow-server上的agent列表信息是否包含刚刚部署的节点
deepflow-ctl -i xx.xx.xx.xx agent list
不出意外的话上述命令将会显示刚刚部署的agent,所属group为legacy-host
更多推荐
所有评论(0)