# antmonitor
**Repository Path**: raphael01/antmonitor
## Basic Information
- **Project Name**: antmonitor
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-11-01
- **Last Updated**: 2026-11-02
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# AntMonitor
### 蚂蚁矿机场地监控
**看清全场 · 及时告警 · 敢动手运维**
面向 BITMAIN **ANTMINER / ANTBOX** 托管与包机场 —
局域网批量监控,一台电脑就能跑起来。
[中文](docs/guide/zh.md) ·
[English](docs/guide/en.md) ·
[Русский](docs/guide/ru.md) ·
[Español](docs/guide/es.md) ·
[Deutsch](docs/guide/de.md) ·
[العربية](docs/guide/ar.md)
[🌐 场地端](https://github.com/raphael2025/antmonitor)
·
[☁ 云端总览](https://github.com/raphael2025/antmonitor-cloud)
·
[💬 Telegram](https://t.me/+W3J9yAypNgpjNTk9)
·
微信 `raphael-2024`
---
## 适合谁
| | |
|:---|:---|
| **托管 / 包机场** | 几百到几千台矿机,要一眼看清在线、算力、掉线 |
| **水冷 / 风冷** | 集装箱冷却状态与矿机一起盯 |
| **多场地老板** | 本地值班 + [云端总览](https://github.com/raphael2025/antmonitor-cloud) 随时扫一眼全网 |
不需要会写代码。Ubuntu / Windows 均提供 GitHub 和 Gitee 安装入口。
---
## 你能得到什么
- **全场一张图** — 在线台数、总算力、功耗、货架机位、客户报表
- **告警到人** — 掉线 / 零算力 / 高温 / 冷却故障;面板语音 + Telegram
- **批量运维** — 定位灯、安全限流的批量重启;持续零算力自动重启可开关(仅在线且明确读到零算力才处理,等待15分钟、间隔15分钟重试,最多4次;掉线只告警,不自动重启;成片零算力按网段/全场熔断,维护中的网段或矿池故障时暂停自动重启)
- **多场地** — 本机做运维,[AntMonitor Cloud](https://github.com/raphael2025/antmonitor-cloud) 做老板总览
- **面板多语言** — 中 / 英 / 俄 / 西 / 德 / 阿,右上角一键切换
开源可自建。设备对接细节不在公开文档里;特殊需求可定制。
---
## 三分钟上手
GitHub / Gitee 是下载代码的网站,无需注册账号或安装它们的客户端。Ubuntu 和 Windows 都会自动准备 Git / Python;
按网络情况选择下面的一条命令即可。Ubuntu 命令需要 `curl`;系统没有时先执行 `sudo apt-get update && sudo apt-get install -y curl ca-certificates`。
### Ubuntu(推荐)
**GitHub:**
```bash
curl -fsSL https://raw.githubusercontent.com/raphael2025/antmonitor/main/install.sh | sudo bash -s -- --source github
```
**Gitee(国内下载):**
```bash
curl -fsSL https://gitee.com/raphael01/antmonitor/raw/main/install.sh | sudo bash -s -- --source gitee
```
不确定哪个网站能访问?自动选择 GitHub / Gitee
下面是一条命令:先尝试 GitHub,下载失败再尝试 Gitee;完整下载成功后才执行安装脚本一次。
安装器也会自动选择可用的源码来源,不会在安装已开始后重复运行另一份安装程序。
```bash
( f=$(mktemp) && trap 'rm -f "$f"' EXIT && { curl -fsSL --connect-timeout 10 --max-time 60 https://raw.githubusercontent.com/raphael2025/antmonitor/main/install.sh -o "$f" || curl -fsSL --connect-timeout 10 --max-time 60 https://gitee.com/raphael01/antmonitor/raw/main/install.sh -o "$f"; } && sudo bash "$f" --source auto )
```
Gitee 命令会自动安装 Git,并从 Gitee 拉取源码;后续网页更新使用同一仓库来源。
自动装依赖、下载代码、建服务并启动,安装时设置 admin 密码(直接回车会生成强密码并显示),
随后可直接粘贴云端接入码,暂时不接云端就按回车跳过。
默认安装目录 `/opt/antmonitor`,服务名 `antmonitor`,面板端口 `8800`。
已安装后再次运行同一安装入口,有交互终端时会进入管理菜单;选 **6「连接 / 更换云端」** 即可补接云端。
#### Ubuntu 没有桌面,怎样打开面板?
**Ubuntu Server 不需要安装桌面或浏览器。** AntMonitor 会启动 Web 服务;Linux 上不会自动弹出浏览器,
请用同一局域网内另一台电脑的浏览器配置:
1. 在 Ubuntu 终端执行 `hostname -I`,找到另一台电脑能访问的局域网 IP(可能显示多个地址)。
2. 在 Windows / Mac / 其他电脑的浏览器打开 `http://:8800`,
例如 `http://192.168.1.50:8800`,替换成你自己的 Ubuntu IP。
3. 用 **admin** 登录 → 顶部 **「☁ 连接云端」**(未连接时会突出显示)。
4. 云端「🔌 场地接入」点 **「生成并复制接入信息」** → 本地端点 **「粘贴接入信息并连接」**。
局域网 HTTP 页面若提示不能自动读剪贴板,直接按 **Ctrl+V** 即可继续连接。地址、token、场地名与类型自动带入;旧码缺名称时补填一次。
程序自动测试、保存并启用上报,验证失败时保留原配置和输入。
下方状态会持续更新;显示「等待首轮扫描」时,在「⚙ 网段」设置矿机网段并开始全网扫描,完成后自动上报。
**只有 SSH 能访问 Ubuntu?** 在有浏览器的电脑上运行(把用户名和 IP 换成实际 SSH 登录信息):
```bash
ssh -N -L 18800:127.0.0.1:8800 用户名@Ubuntu监控机IP
```
保持 SSH 窗口打开,在这台电脑的浏览器访问 `http://127.0.0.1:18800`。
以上地址使用默认 HTTP / 8800 配置;如果改过面板端口或启用了 HTTPS,按实际配置调整。
#### 通过终端接入云端
从**云端面板「🔌 场地接入」**复制接入码。首次运行上方一键安装命令时,按提示粘贴即可,输入不会显示;
新码自带场地名和类型,旧码会提示补填。暂时没有接入码,可以回车跳过。
**已经安装后接入或更换云端:**重跑同一条安装命令,选菜单 **6「连接 / 更换云端」**。
也可以按脚本下载源选一条,直接进入接入提示:
```bash
# GitHub
curl -fsSL https://raw.githubusercontent.com/raphael2025/antmonitor/main/install.sh | sudo bash -s -- connect
# Gitee
curl -fsSL https://gitee.com/raphael01/antmonitor/raw/main/install.sh | sudo bash -s -- connect
```
`connect` 只验证连接、保存云端配置并重启现有服务,不更新代码或依赖,也不改变原来的更新源。
接入码格式或连接测试失败时保留原配置,可立即重试。
如果原来使用自定义安装目录,还需补 `--dir '/实际安装目录'`。
接入后核对具体连接测试结果及云端是否出现本场地;详细排查见
[中文指南 · Ubuntu 无桌面访问与云端配置](docs/guide/zh.md#ubuntu-无桌面访问与云端配置)。
已经更新到当前版本,也可在安装目录直接运行 `sudo bash install.sh connect --dir .`,无需再次下载脚本。
**Windows 的同一份接入信息**可在本地网页使用,也可双击安装目录内的 `connect-cloud.bat` 后粘贴。
命令界面输入不显示;测试通过后才保存。如果原 Windows 监控仍在运行,按提示关闭原窗口并重新运行 `run.bat`;
端口空闲时会自动打开监控。程序保存配置和首次真实上报是两个步骤,以面板的上报成功时间为准。
### Windows 10 / 11
在 PowerShell 里执行,不需要管理员。按下载源选一条:
**GitHub:**
```powershell
& ([scriptblock]::Create((irm 'https://raw.githubusercontent.com/raphael2025/antmonitor/main/install.ps1'))) -Source github
```
**Gitee(GitHub 无法访问时使用):**
```powershell
& ([scriptblock]::Create((irm 'https://gitee.com/raphael01/antmonitor/raw/main/install.ps1'))) -Source gitee
```
两种方式均无需预装 Git / Python。缺少 Git 时先自动准备便携 Git;Gitee 优先使用经过固定 SHA256 校验的 SourceForge 镜像,
不需要先成功访问 GitHub。下载到 `%LOCALAPPDATA%\AntMonitor\antmonitor`,桌面生成「AntMonitor」快捷方式并启动;
缺少 Python 时从 python.org 下载并验证签名后安装(当前用户,不需要管理员),之后可在网页上一键更新。
Windows 已有安装再次运行脚本只会启动程序,保留原来的更新源;换源说明见[中文指南](docs/guide/zh.md#windows一键安装)。
Windows 自动选择 GitHub / Gitee
复制这一整段到 PowerShell 执行。先完整下载脚本,再执行一次;不会在安装失败后重新执行另一份脚本。
```powershell
$s=$null; foreach($u in @('https://raw.githubusercontent.com/raphael2025/antmonitor/main/install.ps1','https://gitee.com/raphael01/antmonitor/raw/main/install.ps1')) { try { $s=Invoke-RestMethod -Uri $u -TimeoutSec 60 -ErrorAction Stop; break } catch { Write-Host ('Download unavailable: '+([uri]$u).Host) } }; if([string]::IsNullOrWhiteSpace($s)) { throw 'GitHub/Gitee unavailable; use downloaded source.' }; & ([scriptblock]::Create($s)) -Source auto
```
### Windows 网页提示找不到 Git:一键恢复
适用于已能正常监控,但网页更新提示「找不到 git」,或启动时安装便携 Git 出现 `WinError 5 / 拒绝访问` 的旧版本。
**先在原 AntMonitor 控制台按 Ctrl+C,等程序停止,再用同一 Windows 用户打开 PowerShell,选一条执行:**
```powershell
# GitHub
& ([scriptblock]::Create((irm 'https://raw.githubusercontent.com/raphael2025/antmonitor/main/repair-web-updates.ps1')))
# Gitee
& ([scriptblock]::Create((irm 'https://gitee.com/raphael01/antmonitor/raw/main/repair-web-updates.ps1'))) -Source gitee
```
脚本会寻找当前目录或默认安装目录;找不到时提示粘贴含有 `run.bat` 的原文件夹路径。
恢复成功会自动启动新窗口,随后登录网页点击「更新」,安装最新版本。
脚本保留原源码、配置和数据库;旧 ZIP 会匹配它原来的发布版本,已有 Git 仓库保留原 `origin`。
Gitee 选择恢复脚本和无 `.git` 时的仓库来源;缺少 Git 时优先使用 SourceForge 上与官方文件 SHA256 一致的 MinGit,
镜像失败才尝试官方 GitHub。也可通过 `MINER_MINGIT_ZIP` 指定本地固定版本安装包。
自定义目录、网络失败或本地改动的处理见[中文指南 · Windows 网页更新恢复](docs/guide/zh.md#windows-web-update-recovery)。
### 后续更新与换源
Ubuntu 更新代码、依赖并重启,按希望使用的来源选一条:
```bash
# GitHub
curl -fsSL https://raw.githubusercontent.com/raphael2025/antmonitor/main/install.sh | sudo bash -s -- update --source github
# Gitee
curl -fsSL https://gitee.com/raphael01/antmonitor/raw/main/install.sh | sudo bash -s -- update --source gitee
```
Ubuntu 显式传入 `--source github` / `--source gitee` 可在两个官方仓库之间切换更新源;不传或 `--source auto` 时保留已有 `origin`。
默认自动模式下,官方来源网络失败时可尝试另一平台的同分支,只接受快进更新,不回退到旧镜像版本。
自定义仓库不会被自动覆盖。自定义安装目录仍需追加 `--dir '/实际安装目录'`。
Windows 日常从网页更新;GitHub / Gitee 仓库是否已有新版本,取决于发布者的同步情况。
更新并重启后,正常刷新网页即可加载新版脚本和语言文件;资源版本自动生成,ZIP 安装也适用。
详细步骤见[中文指南 · Ubuntu 更新与选择下载源](docs/guide/zh.md#ubuntu-更新与选择下载源)。
### 装好以后
admin 登录 →「⚙ 网段」填矿机网段 → 保存并全网扫描。
接云端用顶部 **「☁ 连接云端」**:先在云端复制完整接入信息,再点本地 **「粘贴接入信息并连接」**。
浏览器不允许自动读取时,按提示 **Ctrl+V** 即可继续。测试通过后自动保存并启用,持续显示等待扫描、上报成功或失败重试。
手动填写地址、token、证书指纹,以及暂停上报,都在连接窗口的「高级设置」中。
登录页和顶部都能切换 **跟随系统 / 按时间自动 / 日间 / 夜间**,浏览器会记住选择。
按时间自动使用浏览设备的本地时间:07:00–19:00 为日间,其余为夜间,无需设置服务器。
### GitHub 和 Gitee 都打不开
在能联网的电脑下载完整源码 ZIP,拷到监控机解压,然后使用本地安装入口:
| 系统 | 在解压后的源码目录执行 |
|---|---|
| Ubuntu | `sudo bash install.sh --dir /opt/antmonitor` |
| Windows PowerShell | `powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1` |
这条路径不需要访问 GitHub / Gitee 下载源码。**源码包不等于完整离线安装包**:系统包、Python、Python 依赖仍需可用下载源,
或事先拷入对应系统和版本的安装包 / wheels。Windows 支持本地签名 Python 安装器和校验过的 MinGit ZIP,
两系统支持 `offline/wheels` 依赖目录,具体变量和操作见[中文指南 · 无法访问代码托管平台](docs/guide/zh.md#无法访问代码托管平台)。
**大场地防误报**:发现掉线或零算力先等 20 秒用更长超时重探一遍(二次确认),仍不行当轮就报;整段掉线不重探、直接报整段掉线;单台判活最多等 3 秒;高温连续 2 轮才报;全场同时大面积掉线
只报一条「全场掉线」;矿机网页卡住但还在挖矿时改从 4028 端口取数,不再误报掉线。参数见
[中文指南 · 大场地防误报](docs/guide/zh.md#大场地防误报默认已开启)。
完整「简介 · 部署 · 使用」→ [选语言阅读](docs/guide/README.md)
### 客户实时算力与 24 小时平均
客户实时算力是各台矿机**当前实测算力之和**;近 24 小时平均按运行记录和持续时间计算,确认离线的时段计为零。
一台机器全天稳定在 **293 TH/s**,24 小时平均仍为 **293 TH/s**;100 台均如此时,客户合计为 **29.3 PH/s**。
`台数 × 标称算力` 只能表示理论值,实际停机、降频和算力波动都会影响平均值。
历史不足或监控断档时,已有平均值会显示在主数值中,并常显「按有效时段计算」和覆盖时长;没有数据显示未知,不当成零。
例如 `有效数据 23.26/24h` 表示平均只覆盖其中 23.26 小时。矿机列表原有的「平均算力」来自固件,周期不保证是 24 小时。
累计交付 `TH·h` 另用于周期统计与 CSV:293 TH/s 持续一天是 7,032 TH·h,不能把这个数当成平均算力。
云端同时查看这些指标时,请更新**场地端和云端**;默认实时客户数据随场地摘要每 60 秒上报,平均报表每 600 秒更新。
若云端总览正常、客户表却提示「本地未上报」,请确认此场地的本地端已经**更新并重启运行进程**。
升级可直接利用保留的原始扫描记录计算平均,无需一律再等满 24 小时;仅下载新代码或刷新网页不会更新正在运行的旧进程。
详细口径见[中文指南 · 客户算力怎么看](docs/guide/zh.md#客户算力怎么看)。
本轮[数据逻辑审计](docs/DATA_LOGIC_AUDIT.md)同时修正了客户归属、按时间加权在线率、未知/过期读数、归档边界和云端日报等问题。
算力、功率、在线状态各自显示有效覆盖;耗电为监控估算,确认离线按零贡献处理不代表电表为零。
网页当前功率固定用 **kW**,统计期累计耗电固定用 **kWh(度)**。总览是矿机功率合计,AntBox 配电读数另列,不重复加总,也不冒充全场电表负荷。
本地首页直接显示已有有效功耗的合计;缺少部分读数时只标注「已统计 x/y 台」。能耗比为 **功耗合计(W)÷实时算力合计(TH/s)**,仅使用两项都有有效读数的同一批矿机;单机也用这两项计算。
客户报表按共同的十分钟截止边界查询,旧账本保留为 `legacy_*` 对照;缺失的历史不会自动补齐。
云端主复制流程提供 **AMC1 完整接入包**,包含地址、token 和场地信息;本轮强化主复制说明与实际包解析预览,本地网页或命令界面仍可整段粘贴。
升级请**先更新并重启云端,再更新并重启各场地端**,并确认两端系统时间正确。源包延迟或时钟异常不会被接收时间刷新成有效新读数。
审计文档列出了具体数值反例、API 字段、测试命令和仍需真实设备响应/数据库才能核验的范围。
---
## 产品与仓库
| | GitHub | Gitee | 做什么 |
|:---|:---|:---|:---|
| **场地端** | [antmonitor](https://github.com/raphael2025/antmonitor) | [antmonitor](https://gitee.com/raphael01/antmonitor) | 局域网监控、告警、运维(本仓库) |
| **云端** | [antmonitor-cloud](https://github.com/raphael2025/antmonitor-cloud) | [antmonitor-cloud](https://gitee.com/raphael01/antmonitor-cloud) | 多场地 KPI、卡片、趋势、客户汇总 |
两边互相独立、互相配合:本地保管明细与历史,云端只收摘要总览。
---
## 持续更新
会一直迭代。矿场里踩过的坑、想要的功能,都欢迎说 — 好的意见会尽量排进版本。
**正在规划:** 智能 Agent(Skill + MCP)、多客户管理、更细的权限与通知、报表增强……
---
## 联系与定制
报表对接、多场地策略、权限改造、Agent 落地、OEM 定制:
| | |
|:---|:---|
| **微信** | 搜索 **`raphael-2024`** |
| **Telegram** | [加入群组](https://t.me/+W3J9yAypNgpjNTk9) |
| **场地端** | https://github.com/raphael2025/antmonitor |
| **云端** | https://github.com/raphael2025/antmonitor-cloud |
Issue / PR 同样欢迎。
---
AntMonitor · Open source · Built for real farms