[#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,158 @@
# ARM Server 安装指南(server_arm)
本包用于在 ARM64 服务器上部署 Argus 的最小 server 端组件集:
- master
- Prometheus
- Prometheus targets-updater sidecar
- Grafana
- Alertmanager
- Web 前端 + Web Proxy
> 注意:本 ARM 版本 **不包含 Elasticsearch / Kibana / FTP / BIND9**,仅提供指标与告警能力。
---
## 1. 前置条件
- 目标机器为 ARM64(例如:aarch64 服务器);
- 已安装 Docker 和 docker compose(v2,支持 `docker compose` 命令);
- 已准备好 overlay 网络 `argus-sys-net`(如不需要也可将 compose 改为 `bridge` 网络)。
创建 overlay 网络示例:
```bash
docker network create --driver overlay argus-sys-net || true
```
如未使用 Swarm,也可以在 compose 中将 `networks: argus-sys-net` 改成本地 `bridge` 网络。
---
## 2. 解压和加载镜像
假设你已经将 `server_arm_YYYYMMDD.tar.gz` 拷贝到目标 ARM 服务器:
```bash
tar -xzf server_arm_YYYYMMDD.tar.gz
cd server_arm/YYYYMMDD
```
加载镜像:
```bash
for f in images/*.tar.gz; do
gunzip -c "$f" | docker load
done
```
加载后可以用:
```bash
docker images | grep 'argus-.*arm64'
```
确认 master / prometheus / grafana / alertmanager / web 镜像已就绪。
---
## 3. 配置 .env
在 `compose/` 目录下有自动生成的 `.env.example`:
```bash
cd compose
cp .env.example .env
```
`.env` 中主要字段:
- `PKG_VERSION`:包版本(不建议修改)。
- 镜像 tag(默认使用构建时的 `*-arm64:${PKG_VERSION}`):
- `MASTER_IMAGE_TAG`
- `PROM_IMAGE_TAG`
- `PROM_UPDATER_IMAGE_TAG`
- `GRAFANA_IMAGE_TAG`
- `ALERT_IMAGE_TAG`
- `FRONT_IMAGE_TAG`
- `WEB_PROXY_IMAGE_TAG`
- 端口:
- `MASTER_PORT`(默认 32300)
- `PROMETHEUS_PORT`(默认 9090)
- `GRAFANA_PORT`(默认 3000)
- `ALERTMANAGER_PORT`(默认 9093)
- `WEB_PROXY_PORT_8080` ~ `WEB_PROXY_PORT_8085`
- 其他:
- `ARGUS_BUILD_UID` / `ARGUS_BUILD_GID`(用于挂载目录的权限对齐)。
根据实际环境按需调整端口和 UID/GID。
---
## 4. 准备挂载目录
在 package 根目录(与 `compose/` 同级)下,已预创建所需的 `private/argus` 目录骨架:
- `private/argus/etc`
- `private/argus/master`
- `private/argus/metric/prometheus`(含 `data` / `rules` / `targets`)
- `private/argus/metric/grafana`(含 `data` / `logs` / `plugins` / `provisioning` 等)
可根据需要调整访问权限,例如:
```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-master-sys`
- `argus-prometheus`
- `argus-prometheus-targets-updater`
- `argus-grafana`
- `argus-alertmanager`
- `argus-web-frontend`
- `argus-web-proxy`
---
## 6. 验证
1. Master:
- `curl http://localhost:${MASTER_PORT}/readyz`
2. Prometheus:
- 浏览器访问:`http://<host>:${PROMETHEUS_PORT}`
3. Grafana:
- 浏览器访问:`http://<host>:${GRAFANA_PORT}`
4. Web 门户:
- 浏览器访问:`http://<host>:${WEB_PROXY_PORT_8080}`
确认这些页面能够正常打开,并且在没有任何节点注册时,Prometheus 中 `job="node"` 可为空,但基础 UI 应可访问。
---
## 7. 注意事项
- 本 ARM server 包仅包含 metrics + alert 相关组件,不提供日志链路(ES/Kibana),也不包含 DNS/FTP 相关服务;
- 若后续需要扩展 ES/Kibana,可在新的 spec 中单独设计 ARM 日志栈;
- 对于多节点/Swarm 部署,请结合 `src/sys/arm_swarm_tests` 中的 compose 与脚本进行扩展。