Monitoring Legacy Servers
This document was translated by ChatGPT
#1. Introduction
DeepFlow supports monitoring legacy servers. Note that DeepFlow Server must run on K8s. If you do not have a K8s cluster, you can refer to the All-in-One Quick Deployment section to deploy DeepFlow Server first.
#2. Deployment Topology
#3. Configure DeepFlow Server
#3.1 Update deepflow-server Configuration
Check if all network segments of the server are in the following list of network segments
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
2
3
4
5
6
If not, you need to add the missing server network segments to the local_ip_ranges
list in the custom configuration file below. For example, if the host IP is 100.42.32.213, you need to add the corresponding 100.42.32.0/24 network segment to the configuration.
Modify the values-custom.yaml
custom configuration file:
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
- 100.42.32.0/24 # FIXME
trisolaris:
trident-type-for-unkonw-vtap: 3 # required
2
3
4
5
6
7
8
9
10
11
12
13
Update deepflow
helm upgrade deepflow -n deepflow -f values-custom.yaml deepflow/deepflow
## Restart deepflow-server
kubectl delete pods -n deepflow -l app=deepflow -l component=deepflow-server
2
3
#3.2 Create Host Domain
Just like monitoring multiple K8s clusters requires creating a K8s domain, here you also need to create a domain specifically for synchronizing servers.
unset DOMAIN_NAME
DOMAIN_NAME="legacy-host" # FIXME: domain name
cat << EOF | deepflow-ctl domain create -f -
name: $DOMAIN_NAME
type: agent_sync
EOF
2
3
4
5
6
7
#3.3 Create Agent Group
Create an agent group:
unset AGENT_GROUP
AGENT_GROUP="legacy-host" # FIXME: domain name
deepflow-ctl agent-group create $AGENT_GROUP
deepflow-ctl agent-group list $AGENT_GROUP # Get agent-group ID
2
3
4
5
Create the agent group configuration file agent-group-config.yaml
, specify vtap_group_id
and enable platform_enabled
to allow deepflow-agent to synchronize the server's network information to deepflow-server.
vtap_group_id: g-ffffff # FIXME
platform_enabled: 1
2
Create the agent group configuration:
deepflow-ctl agent-group-config create -f agent-group-config.yaml
#4. Deploy DeepFlow Agent
Download 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
2
3
curl -O https://deepflow-ce.oss-cn-beijing.aliyuncs.com/deb/agent/stable/linux/$(arch | sed 's|x86_64|amd64|' | sed 's|aarch64|arm64|')/deepflow-agent-deb.zip
unzip deepflow-agent-deb.zip
dpkg -i x86_64/deepflow-agent-1.0*.systemd.deb
2
3
curl -O https://deepflow-ce.oss-cn-beijing.aliyuncs.com/bin/agent/stable/linux/$(arch | sed 's|x86_64|amd64|' | sed 's|aarch64|arm64|')/deepflow-agent.tar.gz
tar -zxvf deepflow-agent.tar.gz -C /usr/sbin/
cat << EOF > /etc/systemd/system/deepflow-agent.service
[Unit]
Description=deepflow-agent.service
After=syslog.target network-online.target
[Service]
Environment=GOTRACEBACK=single
LimitCORE=1G
ExecStart=/usr/sbin/deepflow-agent
Restart=always
RestartSec=10
LimitNOFILE=1024:4096
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
touch /etc/deepflow-agent.yaml
cat << EOF > deepflow-agent-docker-compose.yaml
version: '3.2'
services:
deepflow-agent:
image: registry.cn-hongkong.aliyuncs.com/deepflow-ce/deepflow-agent:v6.5
container_name: deepflow-agent
restart: always
#privileged: true ## Docker version below 20.10.10 requires the opening of the privileged mode, See https://github.com/moby/moby/pull/42836
cap_add:
- SYS_ADMIN
- SYS_RESOURCE
- SYS_PTRACE
- NET_ADMIN
- NET_RAW
- IPC_LOCK
- SYSLOG
volumes:
- /etc/deepflow-agent.yaml:/etc/deepflow-agent/deepflow-agent.yaml:ro
- /sys/kernel/debug:/sys/kernel/debug:ro
- /var/run/docker.sock:/var/run/docker.sock
network_mode: "host"
pid: "host"
EOF
docker compose -f deepflow-agent-docker-compose.yaml up -d
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
Modify the deepflow-agent configuration file /etc/deepflow-agent.yaml
:
controller-ips:
- 10.1.2.3 # FIXME: K8s Node IPs
vtap-group-id-request: 'g-fffffff' # FIXME: agent-group ID
2
3
Start deepflow-agent:
systemctl enable deepflow-agent
systemctl restart deepflow-agent
2
Note:
If deepflow-agent cannot start normally due to missing dependencies, you can download the statically linked compiled deepflow-agent. Note that the statically linked compiled deepflow-agent has severe performance issues under multithreading:
curl -O https://deepflow-ce.oss-cn-beijing.aliyuncs.com/rpm/agent/stable/linux/static-link/$(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
2
3
curl -O https://deepflow-ce.oss-cn-beijing.aliyuncs.com/deb/agent/stable/linux/static-link/$(arch | sed 's|x86_64|amd64|' | sed 's|aarch64|arm64|')/deepflow-agent-deb.zip
unzip deepflow-agent-deb.zip
dpkg -i x86_64/deepflow-agent-1.0*.systemd.deb
2
3
curl -O https://deepflow-ce.oss-cn-beijing.aliyuncs.com/bin/agent/stable/linux/static-link/$(arch | sed 's|x86_64|amd64|' | sed 's|aarch64|arm64|')/deepflow-agent.tar.gz
tar -zxvf deepflow-agent.tar.gz -C /usr/sbin/
cat << EOF > /etc/systemd/system/deepflow-agent.service
[Unit]
Description=deepflow-agent.service
After=syslog.target network-online.target
[Service]
Environment=GOTRACEBACK=single
LimitCORE=1G
ExecStart=/usr/sbin/deepflow-agent
Restart=always
RestartSec=10
LimitNOFILE=1024:4096
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#5. Next Steps
- Universal Service Map - Experience DeepFlow's AutoMetrics Capability
- Distributed Tracing - Experience DeepFlow's AutoTracing Capability
- Eliminate Data Silos - Learn About DeepFlow's AutoTagging and SmartEncoding Capabilities
- Say Goodbye to High Baseline Troubles - Integrate Metrics Data from Prometheus, etc.
- Full-Stack Distributed Tracing - Integrate Tracing Data from OpenTelemetry, etc.