[#50] x86机器使用qemu模拟方式安装部署arm版本安装包,当前未精简版,只有简单的node exporter功能,删减日志,GPU指标功能,仍使用Swarm组网

This commit is contained in:
2025-12-01 15:27:12 +08:00
parent 4c45166b44
commit a6e1bf7fe7
26 changed files with 1875 additions and 20 deletions

View File

@@ -0,0 +1,154 @@
# ARM Client-CPU 安装指南(client_arm)
本包用于在 ARM64 CPU 节点上部署 Argus 的最小客户端:
- `argus-agent`(负责注册/上报状态到 master)
- `node-exporter`(暴露该节点的系统指标)
> 注意:本 ARM 客户端包 **不包含 GPU/DCGM exporter 和 Fluent Bit**,仅用于 CPU 节点 metrics。
---
## 1. 前置条件
- 目标机器为 ARM64(例如:aarch64 服务器 / 节点);
- 已安装 Docker 和 docker compose(v2,支持 `docker compose` 命令);
- 能访问 master 所在网络,或已经通过 overlay 网络加入到与 server 相同的 `argus-sys-net` 中。
如采用 overlay 网络(Swarm 模式),需提前创建 `argus-sys-net`:
```bash
docker network create --driver overlay argus-sys-net || true
```
如仅使用本地 bridge 网络,可将 compose 中 `networks: argus-sys-net` 调整为本地自定义 network。
---
## 2. 解压和加载镜像
假设你已经将 `client_arm_YYYYMMDD.tar.gz` 拷贝到 ARM 节点:
```bash
tar -xzf client_arm_YYYYMMDD.tar.gz
cd client_arm/YYYYMMDD
```
加载 CPU node 镜像:
```bash
for f in images/*.tar.gz; do
gunzip -c "$f" | docker load
done
```
可以通过:
```bash
docker images | grep 'argus-sys-metric-test-node-arm64'
```
确认镜像已加载。
---
## 3. 配置 .env
进入 compose 目录:
```bash
cd compose
cp .env.example .env
```
需要填写的关键字段:
- `MASTER_ENDPOINT`
- 例如:`http://master.argus.com:3000` 或 `http://<Server-IP>:32300`
- `AGENT_ENV` / `AGENT_USER` / `AGENT_INSTANCE`
- 用于识别环境、用户和实例,在 UI 中区分节点:
- 示例:`AGENT_ENV=prod`, `AGENT_USER=ops`, `AGENT_INSTANCE=node001`
- `CPU_NODE_HOSTNAME`
- 节点在配置中的 hostname,一般与宿主 `hostname` 一致,例如 `swarm-metric-node-001`。
- `ARGUS_BUILD_UID` / `ARGUS_BUILD_GID`
- 用于挂载目录 `/private/argus/agent` 的权限映射。
例如:
```env
PKG_VERSION=20251124
NODE_CPU_IMAGE_TAG=argus-sys-metric-test-node-arm64:20251124
COMPOSE_PROJECT_NAME=argus-client-arm
MASTER_ENDPOINT=http://master.argus.com:3000
AGENT_ENV=dev2
AGENT_USER=yuyr
AGENT_INSTANCE=node001sX
CPU_NODE_HOSTNAME=swarm-metric-node-001
ARGUS_BUILD_UID=1000
ARGUS_BUILD_GID=1000
```
---
## 4. 准备挂载目录
包中已经预创建 `private/argus/agent` 目录:
- `../private/argus/agent`
可以根据需要设置所有者和权限:
```bash
cd ..
sudo chown -R $UID:$GID private/argus
```
确保与 `.env` 中的 `ARGUS_BUILD_UID/GID` 一致。
---
## 5. 启动客户端容器
在 `compose/` 目录执行:
```bash
docker compose --env-file .env up -d
```
查看状态:
```bash
docker compose ps
```
预期看到:
- `argus-metric-cpu-node` 处于 `Up` 状态。
---
## 6. 在 server 端验证
在 server 侧(master + Prometheus + Grafana 已经通过 ARM server 包部署):
1. 在 master 的 UI 或 API 中:
- `GET /api/v1/master/nodes` 应能看到新节点,`name=CPU_NODE_HOSTNAME`;
2. 在 Prometheus 中:
- `up{job="node"}` 中应有当前节点记录,且 `value=1`;
- 可以通过 `node_load1{hostname="swarm-metric-node-001"}` 等表达式查看指标;
3. 在 Web 门户 / Grafana:
- 节点列表页面中能看到该节点;
- 通过“按 hostname 的节点面板”查看对应指标。
---
## 7. 注意事项
- ARM 客户端包只负责“CPU 节点 metrics”,不包含 GPU/DCGM 或 Fluent Bit;
- 如需要 GPU 支持,请继续使用 `client_gpu` 包,并部署在 x86_64 + NVIDIA GPU 节点上;
- ARM 节点的网络连通性(到 master / Prometheus)需要运维侧提前规划;
本包不做网络路由/防火墙配置,仅假定可以直接访问 `MASTER_ENDPOINT`。