完成a6000测试系统构建、部署、测试整合 (#35)

测试方案:

- lm2机器端口映射到本机:18080, 18081, 8082-8085
- 访问URL: http://localhost:18080/dashboard

![image.png](/attachments/30ed6e20-697a-4d3b-a6d3-6acccd2e9922)

![image.png](/attachments/38ef1751-0f3b-49c6-9100-f70d15617acc)

![image.png](/attachments/3be45005-9b9e-4165-8ef6-1d27405800f1)

![image.png](/attachments/eb916192-edc1-4096-8f9f-9769ab6d9039)

![image.png](/attachments/620e6efc-bd02-45ae-bba1-99a95a1b4c02)

![image.png](/attachments/986e77e7-c687-405f-a760-93282249f72f)

端到端测试通过:

![image.png](/attachments/c6e29875-4a16-4718-8b2f-368f64eb545e)

Co-authored-by: sundapeng.sdp <sundapeng@hashdata.cn>
Reviewed-on: #35
Reviewed-by: xuxt <xuxt@zgclab.edu.cn>
Reviewed-by: sundapeng <sundp@mail.zgclab.edu.cn>
Reviewed-by: huhy <husteryezi@163.com>
This commit was merged in pull request #35.
This commit is contained in:
2025-10-29 10:04:27 +08:00
parent d1b89c0cf6
commit 59a38513a4
143 changed files with 10840 additions and 609 deletions

View File

@@ -1,21 +1,18 @@
version: "3.8"
networks:
default:
name: argus-sys-net
sysnet:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.29.0.0/16
- subnet: 172.31.0.0/16
services:
bind:
image: ${BIND_IMAGE_TAG:-argus-bind9:latest}
container_name: argus-bind-sys
networks:
default:
ipv4_address: 172.29.0.2
sysnet:
ipv4_address: 172.31.0.2
volumes:
- ./private:/private
restart: unless-stopped
@@ -32,14 +29,14 @@ services:
- ARGUS_BUILD_UID=${ARGUS_BUILD_UID:-2133}
- ARGUS_BUILD_GID=${ARGUS_BUILD_GID:-2015}
ports:
- "32300:3000"
- "${MASTER_PORT:-32300}:3000"
volumes:
- ./private/argus/master:/private/argus/master
- ./private/argus/metric/prometheus:/private/argus/metric/prometheus
- ./private/argus/etc:/private/argus/etc
networks:
default:
ipv4_address: 172.29.0.10
sysnet:
ipv4_address: 172.31.0.10
restart: unless-stopped
es:
@@ -55,8 +52,11 @@ services:
- ./private/argus/log/elasticsearch:/private/argus/log/elasticsearch
- ./private/argus/etc:/private/argus/etc
ports:
- "9200:9200"
- "${ES_HTTP_PORT:-9200}:9200"
restart: unless-stopped
networks:
sysnet:
ipv4_address: 172.31.0.3
kibana:
image: argus-kibana:latest
@@ -71,11 +71,14 @@ services:
depends_on:
- es
ports:
- "5601:5601"
- "${KIBANA_PORT:-5601}:5601"
restart: unless-stopped
networks:
sysnet:
ipv4_address: 172.31.0.4
node-a:
image: ubuntu:22.04
image: argus-sys-node:latest
container_name: argus-node-a
hostname: dev-yyrshare-nbnyx10-cp2f-pod-0
depends_on:
@@ -101,13 +104,16 @@ services:
entrypoint:
- /usr/local/bin/node-entrypoint.sh
dns:
- 172.29.0.2
- 172.31.0.2 # internal bind for *.argus.com
- 8.8.8.8 # external fallback for apt/external domains
ports:
- "2020:2020"
- "${NODE_A_PORT:-2020}:2020"
restart: unless-stopped
networks:
- sysnet
node-b:
image: ubuntu:22.04
image: argus-sys-node:latest
container_name: argus-node-b
hostname: dev-yyrshare-uuuu10-ep2f-pod-0
depends_on:
@@ -133,7 +139,269 @@ services:
entrypoint:
- /usr/local/bin/node-entrypoint.sh
dns:
- 172.29.0.2
- 172.31.0.2
- 8.8.8.8
ports:
- "2021:2020"
- "${NODE_B_PORT:-2021}:2020"
restart: unless-stopped
networks:
- sysnet
ftp:
image: argus-metric-ftp:latest
container_name: argus-ftp
restart: unless-stopped
environment:
- TZ=Asia/Shanghai
- FTP_BASE_PATH=/private/argus/ftp
- FTP_PASSWORD=${FTP_PASSWORD:-ZGClab1234!}
- DOMAIN=${FTP_DOMAIN:-ftp.metric.argus.com}
- ARGUS_BUILD_UID=${ARGUS_BUILD_UID:-2133}
- ARGUS_BUILD_GID=${ARGUS_BUILD_GID:-2015}
ports:
- "${FTP_PORT:-21}:21"
- "${FTP_DATA_PORT:-20}:20"
- "${FTP_PASSIVE_HOST_RANGE:-21100-21110}:21100-21110"
volumes:
- ./private/argus/metric/ftp:/private/argus/ftp
- ./private/argus/etc:/private/argus/etc
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
networks:
sysnet:
ipv4_address: 172.31.0.40
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
prometheus:
image: argus-metric-prometheus:latest
container_name: argus-prometheus
restart: unless-stopped
environment:
- TZ=Asia/Shanghai
- PROMETHEUS_BASE_PATH=/private/argus/metric/prometheus
- ARGUS_BUILD_UID=${ARGUS_BUILD_UID:-2133}
- ARGUS_BUILD_GID=${ARGUS_BUILD_GID:-2015}
ports:
- "${PROMETHEUS_PORT:-9090}:9090"
volumes:
- ./private/argus/metric/prometheus:/private/argus/metric/prometheus
- ./private/argus/etc:/private/argus/etc
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
networks:
sysnet:
ipv4_address: 172.31.0.41
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
grafana:
image: argus-metric-grafana:latest
container_name: argus-grafana
restart: unless-stopped
environment:
- TZ=Asia/Shanghai
- GRAFANA_BASE_PATH=/private/argus/metric/grafana
- ARGUS_BUILD_UID=${ARGUS_BUILD_UID:-2133}
- ARGUS_BUILD_GID=${ARGUS_BUILD_GID:-2015}
- GF_SERVER_HTTP_PORT=3000
- GF_LOG_LEVEL=warn
- GF_LOG_MODE=console
- GF_PATHS_PROVISIONING=/private/argus/metric/grafana/provisioning
- GF_AUTH_ANONYMOUS_ENABLED=true
- GF_AUTH_ANONYMOUS_ORG_ROLE=Viewer
ports:
- "${GRAFANA_PORT:-3000}:3000"
volumes:
- ./private/argus/metric/grafana:/private/argus/metric/grafana
- ./private/argus/etc:/private/argus/etc
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
networks:
sysnet:
ipv4_address: 172.31.0.42
depends_on:
- prometheus
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
# --- Added: Web Frontend (no host port; resolved by DNS as web.argus.com) ---
web-frontend:
image: argus-web-frontend:latest
container_name: argus-web-frontend
environment:
- ARGUS_BUILD_UID=${ARGUS_BUILD_UID:-2133}
- ARGUS_BUILD_GID=${ARGUS_BUILD_GID:-2015}
# Frontend runtime-injected external ports (used to render hyperlinks)
- EXTERNAL_MASTER_PORT=${WEB_PROXY_PORT_8085:-8085}
- EXTERNAL_ALERTMANAGER_PORT=${WEB_PROXY_PORT_8084:-8084}
- EXTERNAL_GRAFANA_PORT=${WEB_PROXY_PORT_8081:-8081}
- EXTERNAL_PROMETHEUS_PORT=${WEB_PROXY_PORT_8082:-8082}
- EXTERNAL_KIBANA_PORT=${WEB_PROXY_PORT_8083:-8083}
volumes:
- ./private/argus/etc:/private/argus/etc
networks:
sysnet:
ipv4_address: 172.31.0.80
restart: unless-stopped
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
test-node:
image: argus-sys-metric-test-node:latest
container_name: argus-metric-test-node
hostname: test-metric-node-001
restart: unless-stopped
privileged: true
depends_on:
- ftp
- prometheus
environment:
- TZ=Asia/Shanghai
- DEBIAN_FRONTEND=noninteractive
- FTP_DOMAIN=${FTP_DOMAIN:-ftp.metric.argus.com}
- FTP_SERVER=${FTP_SERVER:-172.31.0.40}
- FTP_USER=${FTP_USER:-ftpuser}
- FTP_PASSWORD=${FTP_PASSWORD:-ZGClab1234!}
- FTP_PORT=${FTP_PORT:-21}
- ARGUS_BUILD_UID=${ARGUS_BUILD_UID:-2133}
- ARGUS_BUILD_GID=${ARGUS_BUILD_GID:-2015}
- METRIC_NODE_ROLE=cpu
volumes:
- ./private/argus/agent:/private/argus/agent
- ./scripts/metric/test-node-entrypoint.sh:/usr/local/bin/metric-test-node-entrypoint.sh:ro
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
entrypoint:
- /usr/local/bin/metric-test-node-entrypoint.sh
command:
- sleep
- infinity
dns:
- 172.31.0.2
- 8.8.8.8
networks:
sysnet:
ipv4_address: 172.31.0.50
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
test-gpu-node:
profiles: ["gpu"]
image: argus-sys-metric-test-gpu-node:latest
container_name: argus-metric-test-gpu-node
hostname: test-metric-gpu-node-001
restart: unless-stopped
privileged: true
runtime: nvidia
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities:
- gpu
depends_on:
- ftp
- prometheus
environment:
- TZ=Asia/Shanghai
- DEBIAN_FRONTEND=noninteractive
- NVIDIA_VISIBLE_DEVICES=all
- NVIDIA_DRIVER_CAPABILITIES=compute,utility
- GPU_MODE=gpu
- ARGUS_BUILD_UID=${ARGUS_BUILD_UID:-2133}
- ARGUS_BUILD_GID=${ARGUS_BUILD_GID:-2015}
- METRIC_NODE_ROLE=gpu
volumes:
- ./private/argus/agent:/private/argus/agent
- ./scripts/metric/test-node-entrypoint.sh:/usr/local/bin/metric-test-node-entrypoint.sh:ro
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
entrypoint:
- /usr/local/bin/metric-test-node-entrypoint.sh
command:
- sleep
- infinity
dns:
- 172.31.0.2
- 8.8.8.8
networks:
sysnet:
ipv4_address: 172.31.0.51
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
# --- Added: Alertmanager ---
alertmanager:
image: argus-alertmanager:latest
container_name: argus-alertmanager
environment:
- ARGUS_BUILD_UID=${ARGUS_BUILD_UID:-2133}
- ARGUS_BUILD_GID=${ARGUS_BUILD_GID:-2015}
volumes:
- ./private/argus/etc:/private/argus/etc
- ./private/argus/alert/alertmanager:/private/argus/alert/alertmanager
networks:
sysnet:
ipv4_address: 172.31.0.82
ports:
- "${ALERTMANAGER_PORT:-9093}:9093"
restart: unless-stopped
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
# --- Added: Web Proxy (multi-port gateway) ---
web-proxy:
image: argus-web-proxy:latest
container_name: argus-web-proxy
depends_on:
- bind
- master
- grafana
- prometheus
- kibana
- alertmanager
environment:
- ARGUS_BUILD_UID=${ARGUS_BUILD_UID:-2133}
- ARGUS_BUILD_GID=${ARGUS_BUILD_GID:-2015}
volumes:
- ./private/argus/etc:/private/argus/etc
networks:
sysnet:
ipv4_address: 172.31.0.81
ports:
- "${WEB_PROXY_PORT_8080:-8080}:8080"
- "${WEB_PROXY_PORT_8081:-8081}:8081"
- "${WEB_PROXY_PORT_8082:-8082}:8082"
- "${WEB_PROXY_PORT_8083:-8083}:8083"
- "${WEB_PROXY_PORT_8084:-8084}:8084"
- "${WEB_PROXY_PORT_8085:-8085}:8085"
restart: unless-stopped
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"