159 lines
3.8 KiB
Markdown
159 lines
3.8 KiB
Markdown
# E2E Test - Argus Metric 部署测试
|
||
## 概述
|
||
|
||
本项目用于对 Argus Metric 模块进行端到端(E2E)部署测试。
|
||
通过一键脚本可快速搭建 Prometheus、FTP、Grafana 等服务,验证 Metric 模块的完整部署与运行流程。
|
||
|
||
## 一键构建与部署 Prometheus / FTP / Grafana
|
||
### 1. 修改环境变量文件
|
||
|
||
将示例配置文件复制为 .env 并根据实际情况修改:
|
||
|
||
``` bash
|
||
cp env.example .env
|
||
```
|
||
|
||
### 2. 一键启动服务
|
||
|
||
执行以下命令完成环境初始化、镜像构建与服务启动:
|
||
|
||
``` bash
|
||
sudo bash start-all.sh
|
||
```
|
||
|
||
该脚本将自动完成:
|
||
- 初始化目录结构(如 /private/argus/metric)
|
||
- 构建各服务 Docker 镜像
|
||
- 启动 Prometheus、FTP、Grafana 容器
|
||
|
||
### 3. 检查容器日志
|
||
|
||
可手动验证容器运行状态:
|
||
|
||
``` bash
|
||
docker logs argus-metric-ftp
|
||
docker logs argus-metric-grafana
|
||
docker logs argus-metric-prometheus
|
||
```
|
||
|
||
如日志输出中无 ERROR 或 supervisor 报错信息,则表示服务启动正常。
|
||
|
||
## 客户端安装包打包与分发
|
||
|
||
打包后服务端会将安装包发布至 FTP 共享目录,默认路径为:
|
||
|
||
``` bash
|
||
$DATA_ROOT/ftp/share
|
||
```
|
||
|
||
发布后的文件权限与 FTP 目录账户保持一致。
|
||
|
||
### 1. 递增版本号
|
||
``` bash
|
||
bash scripts/version-manager.sh bump minor
|
||
```
|
||
该脚本会自动更新版本号(如 1.101.0 → 1.102.0)。
|
||
|
||
### 2. 打包安装制品
|
||
``` bash
|
||
bash scripts/package_artifact.sh
|
||
```
|
||
执行后会在输出目录中生成压缩包或安装脚本。
|
||
|
||
### 3. 发布制品至 FTP
|
||
``` bash
|
||
sudo bash scripts/publish_artifact.sh $VERSION --output-dir $OUTPUT_DIR --owner $UID:$GID
|
||
```
|
||
|
||
参数说明:
|
||
|
||
参数 说明
|
||
$VERSION 发布版本号(如 1.102.0)
|
||
$OUTPUT_DIR 输出目录(默认 /private/argus/ftp/share)
|
||
$UID:$GID 文件属主(用户ID:组ID)
|
||
|
||
示例:
|
||
|
||
``` bash
|
||
sudo bash scripts/publish_artifact.sh 1.102.0 --output-dir /private/argus/ftp/share --owner 2133:2015
|
||
```
|
||
|
||
更多详情可参考 client-plugins/all-in-one/README.md。
|
||
|
||
## 客户端安装(通过 FTP)
|
||
|
||
客户端下载与安装步骤如下:
|
||
|
||
``` bash
|
||
curl -u ${USER}:${PASSWD} ftp://${FTP_SERVER}/setup.sh -o setup.sh
|
||
chmod +x setup.sh
|
||
sudo bash setup.sh --server ${FTP_SERVER} --user ${USER} --password ${PASSWD} --port ${PORT}
|
||
```
|
||
|
||
参数说明:
|
||
|
||
参数 说明
|
||
$FTP_SERVER 服务器 IP 地址
|
||
$USER 默认 ftpuser
|
||
$PASSWD 默认 ZGClab1234!
|
||
$PORT FTP 服务端口(需与 .env 保持一致)
|
||
|
||
示例:
|
||
|
||
``` bash
|
||
curl -u ftpuser:ZGClab1234! ftp://10.211.55.4/setup.sh -o setup.sh
|
||
chmod +x setup.sh
|
||
sudo bash setup.sh --server 10.211.55.4 --user ftpuser --password 'ZGClab1234!' --port 2122
|
||
```
|
||
|
||
更多细节可参考 client-plugins/all-in-one/README.md。
|
||
|
||
## 模拟 Argus-Master 配置下发
|
||
|
||
可通过手动写入 nodes.json 文件模拟 Argus-Master 对 Argus-Metric 的配置下发:
|
||
|
||
[
|
||
{
|
||
"node_id": "A1",
|
||
"user_id": "sundapeng",
|
||
"ip": "10.211.55.4",
|
||
"hostname": "dev-sundapeng-nsche-wohen-pod-0",
|
||
"labels": ["label-a", "label-b"]
|
||
}
|
||
]
|
||
|
||
路径:
|
||
|
||
``` bash
|
||
${DATA_ROOT}/prometheus/nodes.json
|
||
```
|
||
|
||
Argus-Metric 中的 prometheus 模块会自动解析该文件,并将其拆分生成目标配置:
|
||
|
||
``` bash
|
||
${DATA_ROOT}/prometheus/targets/
|
||
```
|
||
|
||
## Grafana 手动配置(如未自动接入 Prometheus)
|
||
|
||
如 Grafana 未自动导入 Prometheus 数据源,可手动执行以下操作:
|
||
|
||
1. 添加数据源
|
||
- 进入 Grafana → Data sources
|
||
- 选择 Add data source → Prometheus
|
||
- URL 填写:http://prometheus:9090(Docker 内部 DNS 地址)
|
||
|
||
2. 导入测试 Dashboard
|
||
- 打开 Grafana → Dashboards → Import
|
||
- 上传或粘贴 test_grafana_dashboard.json
|
||
|
||
## 查看监控数据
|
||
Prometheus 访问以下地址查看节点活性:
|
||
``` bash
|
||
http://127.0.0.1:9091/targets
|
||
```
|
||
|
||
Grafana 访问以下地址查看监控大屏:
|
||
``` bash
|
||
http://127.0.0.1:3000/d/node_gpu_metrics/node-and-gpu-metrics
|
||
``` |