不知道网络里到底有什么?这个开源工具帮你扫一遍就清楚了 —— MiBee Steward 竞品对比

这是一篇面向开发者社区的宣发文章(可发 V2EX / Linux DO / Reddit r/selfhosted / Hacker News / 掘金 / SegmentFault)。
角度:不讲战略、不谈商业化,只讲"它解决什么问题、和已有工具比差在哪、为什么值得一试"。
Repo: https://github.com/Mi-Bee-Studio/MiBeeSteward · License: AGPL-3.0 · 单二进制,CGO-free,SCP 上去就能跑。


一、先抛痛点:你真的知道自己网络里有什么吗?

如果你是.homelab 玩家、中小企业 IT、或者实验室/机房管理员,大概率被这些问题困扰过:

  • “路由器后台只能看到 DHCP 列表,MAC 对不上是哪个设备”
  • “新接了台 IP 摄像头,但找不到它的 IP”
  • “公司机房一台机器掉线了,但没人记得它的型号、系统、谁负责”
  • “想做个资产台账,但 LibreNMS / Zabbix 太重了,Snipe-IT 又得手动录入”
  • “nmap 扫一遍倒是能出来结果,但没有 UI、不能持续追踪、更认不出品牌”

这些问题的共性是:你知道网络里有东西,但不知道它是什么、属于谁、什么时候来的、什么时候走的

MiBee Steward 就是来解决这件事的。一句话定位:

设备/网络层的自动发现 + 身份识别 + 登记(CMDB-lite)。

它扫一遍你的网络,自动告诉你"这台是海康的摄像头、那台是华为的交换机、那台是树莓派"——然后把结果登记成一个持续保鲜的资产账本,带 UI、带 Prometheus 出口、带变化检测。


二、它不是什么(重要,避免错位预期)

为了不浪费你的时间,先把它不是的东西说清楚:

它不是你应该用什么
❌ 监控告警系统Prometheus + Alertmanager
❌ Dashboard/可视化平台Grafana
❌ 状态页Uptime Kuma
❌ 主机深度监控(CPU/内存/磁盘)Netdata / node_exporter
❌ 服务注册中心(L7 服务发现)Consul / eureka

它的活儿是"发现 + 认出 + 登记",这三件事之外的活儿,它主动让位给成熟工具,通过 /metrics/sd 两个出口把数据吐给 Prometheus 生态。

这不是短板,是有意的边界——这样它才能专注把"资产画像"这一件事做好。


三、竞品对比:它站在哪个位置?

现有的工具可以分成四类,每一类都和 MiBee Steward 有重叠,但没有一个占据它的位置:

3.1 资产登记(CMDB)

代表:NetBox、Snipe-IT

  • 共同点:都做"资产台账"
  • 关键差异:NetBox / Snipe-IT 是手动录入的——你得自己填 IP、MAC、型号、归属。MiBee Steward 反过来:自动扫出来,然后认出品牌型号,登记进去
  • NetBox / Snipe-IT 的强项:资产生命周期、采购/保修、IPAM、合规导出——这些 MiBee Steward 不做

3.2 服务发现(L7)

代表:Consul、eureka

  • 共同点:都做"发现"
  • 关键差异:Consul 发现的是服务实例(redis 在哪、mysql 在哪),应用自己注册上去;MiBee Steward 发现的是设备(这个 IP 是个什么物理/网络实体),被动扫描出来
  • 层级不同:Consul 是 L7,MiBee Steward 是 L2-L4

3.3 扫描器

代表:nmap

  • 共同点:都能扫
  • 关键差异:nmap 给你一个命令行结果,扫完就完了——没 UI、不持续追踪、不认品牌、不登记台账。MiBee Steward 给你一个持续保鲜的资产库,带 Web UI、带历史、带变化检测
  • MiBee Steward 没在 rewire nmap:扫描引擎是自研的 Go 实现(scannerv2,5 层插件架构),CGO-free、可交叉编译

3.4 网络监控

代表:LibreNMS、Zabbix、Checkmk

  • 共同点:都带一点自动发现
  • 关键差异:这些是监控导向、SNMP-heavy、部署重——LibreNMS 要 MySQL + PHP + Redis,Zabbix 要 Server + Proxy + Agent + DB + Web。它们的目标是"持续监控指标并发告警",身份识别只是副产品。MiBee Steward 反过来:身份识别是主业,监控交给 Prometheus 生态
  • 部署门槛:LibreNMS / Zabbix 动辄 500MB+ 镜像、10s+ 启动;MiBee Steward 是 ~20MB 单二进制、<1s 启动、SQLite 嵌入、零外部依赖

3.5 轻量自托管监控

代表:Uptime Kuma、Beszel、Netdata

  • 常见误解:有人会把 MiBee Steward 和这些比。这是赛道错位——这些工具监控你已经知道的主机/服务;MiBee Steward 解决的是"你不知道网络里有什么"的问题
  • 互补关系:MiBee Steward 发现 → Uptime Kuma / Netdata 监控。两者搭配反而更顺

3.6 定位矩阵一览

                  轻量 ←────────────────→ 企业级
                   |                        |
  发现导向     nmap (CLI)              LibreNMS / Zabbix
                   |                        |
                   |     ★ MiBee Steward ★  |
                   |                        |
  登记导向     Snipe-IT                  NetBox
                   |        (手动录入)      |

MiBee Steward 占据的格子:自动发现(nmap 级)+ 身份识别(指纹/分类)+ 登记/管理(CMDB-lite)+ 单二进制。这个组合目前没有别的工具占据


四、它的核心差异化优势

① 自动身份识别(最大差异化)

不是只给你"这台开了 80 端口",而是告诉你**“这台是海康摄像头、那台是华为交换机、那台是 APC UPS”**。

识别引擎的输入包括:

  • 协议指纹:SNMP sysObjectID / sysDesc、HTTP Server 头 / HTML body、RTSP Server、ONVIF 设备信息、TLS 证书、Prometheus / node_exporter metric、SSH/Telnet banner
  • 数据驱动的规则库:识别规则是 YAML 数据(不是写死的 Go 代码),configs/fingerprints/*.yaml,社区可贡献。加一个新厂商/型号 = 加一条 YAML,不用改代码

为什么这是护城河:抄一个 ONVIF+RTSP 分类器不难,但覆盖数百厂商 × 数千型号的指纹库是数月/数年的积累。

② 5 层插件化扫描引擎(scannerv2)

probe(探测)  → classify(分类)  → handler(处理)  → store(持久化)  → orchestrator(编排)
ICMP/TCP/SNMP/   banner/HTTP/      心跳生成 +       service_evidence/   gather→classify→
HTTP/RTSP/ONVIF/ RTSP/ONVIF/       级联深采 +       host_services/      dispatch+cascade
TLS/ARP/mDNS/    SNMP/camera/      TLS 证书链       host_tls_certs
WS-Discovery/    prometheus/        (https/ldaps/
LLDP/CDP/        rule_classifier    smtps/... )
Bridge-MIB

加一个新协议 = 一个 Classifier + 一个 Handler。不需要改 orchestrator 或持久化层。

级联深采 是它的隐藏大招:扫到 HTTP → 探测 /metrics → 如果是 Prometheus → 级联探 node_exporter → 自动把硬件信息回填到这台设备。一次扫描自动滚雪球式地把设备画像越画越细

③ 单二进制 + 零运行时依赖

scp mibee-steward user@host:/opt/ && ssh user@host '/opt/mibee-steward'
  • CGO-free:SQLite 用 modernc.org/sqlite 纯 Go 实现,不需要 C 编译器
  • 交叉编译干净:make build-all 一条命令出 linux amd64 + arm64
  • 前端嵌入:SvelteKit SPA 通过 go:embed all:dist 打进二进制,跑起来就是带 UI 的
  • 存储嵌入:SQLite WAL 模式,不需要外部数据库

对比一下:

工具部署镜像/二进制大小启动时间外部依赖
MiBee Steward单二进制~20MB<1s0
Uptime KumaDocker / Node~300MB+~3sNode.js
LibreNMSDocker / LAMP~500MB+~10sMySQL + PHP + Redis
Zabbix多组件~500MB+~30sMySQL/PG + Server + Agent + Web
NetBoxDocker / K8s~500MB+~15sPostgreSQL + Redis

④ 分布式:多 LAN 跨网段发现

家里一个网、公司一个网、机房一个网?在每个网段丢一个轻量 agent,agent 扫本地 LAN,然后通过 HTTPS(pull 模型,agent 主动发起连接,可在 NAT 后)上报到 center。

  • Center 汇聚成全局资产画像
  • MAC 为主键:同一台设备在两个网段漫游(比如笔记本在公司和家里),仍是同一个资产,不会重复
  • Agent 是独立二进制(cmd/agent),也是 CGO-free,普通用户权限就能跑,不需要 sudo
  • 每个 agent 自带 anti-entropy 快路径(X-Network-State-Hash):网络状态没变时 center 跳过逐设备处理,只刷新租约——稳态网络下几乎零开销

⑤ 变化检测(准实时的灵魂)

每次扫描自动 diff,自动发现:

  • device_added:网络里来了新设备
  • device_changed:已有设备的属性变了(型号、OS、开放端口)
  • device_lost:设备消失了(带 grace period,避免扫描抖动误报)

提供两种消费方式:

  • GET /api/v1/changes:查询历史
  • GET /changes/watch:SSE 实时流(未来集成 webhook / 第三方告警的接口)

⑥ 网络拓扑发现(L2 邻接)

不只是"列设备清单",还能告诉你**“谁插在哪个交换机的哪个口”**:

  • LLDP / CDP:SNMP 读 LLDP-MIB + CDP-MIB(cdpCacheTable),加 raw-frame LLDPDU 监听
  • Bridge-MIB / Q-BRIDGE-MIB:dot1qTpFdbPort 做 VLAN-aware 的 MAC→端口映射
  • STP-MIB:dot1dStp 推断根桥/桥角色
  • IF-MIB:ifName 把 ifIndex 翻译成人能读的端口名(Gi1/0/24 这种)

合起来就是交换机视角的 L2 邻接图:谁插在哪个口、在哪个 VLAN、STP 角色是什么。

⑦ Prometheus 原生出口

  • /metrics:资产状态 gauge + 心跳计数器 + 响应时延 histogram
  • /sd:HTTP Service Discovery,Prometheus 直接对接,自动把发现的资产注册进去

和 Alertmanager / Grafana 是共生关系,不是竞争关系。MiBee Steward 负责"持续产出准确的资产数据",告警/可视化由 Prometheus 生态接管。

⑧ TLS 证书盘点

对所有 TLS-wrapped 服务(HTTPS、LDAPS、SMTPS、IMAPS、POP3S、FTPS、IRCS、TelnetS)抓完整证书链(叶证书 + 所有中间 CA),记录 Subject / Issuer / SAN / 有效期 / 签名 / 公钥 / 指纹 + PEM,按设备按端口,带过期状态(valid / expiring / expired)和信任判定。证书快过期了自动能在 UI 上看到

⑨ 安全开箱即用

JWT(cookie-first + Bearer fallback)+ RBAC(admin / user)+ TOTP 2FA + CSRF + 速率限制 + 完整审计日志。机器到机器场景还有独立的 agent bearer token 鉴权。

⑩ 国际化 + 暗色模式

中英双语(@inlang/paraglide-js),暗色/亮色主题自动跟随系统,响应式 UI 桌面/移动通用。


五、它适合谁?

场景适配度说明
Homelab 玩家⭐⭐⭐⭐⭐单二进制扔到 NAS / 树莓派上,扫一遍家里所有设备,带 UI
中小企业 IT⭐⭐⭐⭐⭐替代手工 Excel 资产台账,自动发现 + 持续保鲜
IoT / 摄像头舰队⭐⭐⭐⭐⭐RTSP + ONVIF + Camera 三级分类器,专为 IP 摄像头场景优化
机房 / 实验室⭐⭐⭐⭐灵活的 per-device 探针配置 + 心跳保鲜
多分支机构⭐⭐⭐⭐分布式 agent,每个分支一个,center 统一画像
想替换 LibreNMS / Zabbix⭐⭐❌ 赛道不同——你要的是监控告警,这是资产发现
想替换 NetBox⭐⭐❌ 赛道不同——你要的是手动录入的 CMDB + IPAM,这是自动发现
想替换 Uptime Kuma❌ 完全不同——你要的是服务在线监控 + 状态页

六、5 分钟上手

单机模式(一台机器搞定)

# 拉代码
git clone https://github.com/Mi-Bee-Studio/MiBeeSteward.git
cd mibee-steward

# 构建前端 + Go 二进制
make build             # 产出 bin/mibee-steward,已 CGO_ENABLED=0

# 丢到服务器
scp bin/mibee-steward user@your-server:/opt/mibee-steward/
scp configs/config.example.yaml user@your-server:/opt/mibee-steward/configs/config.yaml

# 起服务
ssh user@your-server
cd /opt/mibee-steward
./mibee-steward -config configs/config.yaml

浏览器打开 http://your-server:8080,登录后到 Scanner 页面扫一个子网,等几分钟就能看到带品牌型号的设备清单。

分布式模式(多网段)

# Center 侧:用 cmd/server 二进制(就是上面那个)
# Agent 侧:单独构建 cmd/agent
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o bin/mibee-agent ./cmd/agent/

详细步骤见仓库 docs/en/distributed-guide.md


七、和竞品的诚实对比表

只列 MiBee Steward 实际交付的能力,没交付的不吹

能力MiBee StewardnmapNetBoxLibreNMSZabbixUptime KumaConsul
自动发现(扫描)
身份识别(品牌/型号)自动✅ 手动⚠️ 部分⚠️ 模板
持续资产登记✅ 手动✅(服务)
单二进制零依赖⚠️ Node
CGO-free / 交叉编译
分布式(多网段)✅ Proxy
变化检测(added/lost)⚠️⚠️
L2 拓扑(LLDP/CDP/Bridge-MIB)
Prometheus 出口
告警 / 状态页❌(边界)⚠️
主机深度监控❌(边界)⚠️
部署复杂度极低极高

一句话总结:

  • 想要纯扫描命令行 → nmap
  • 想要手动录入 CMDB + IPAM → NetBox
  • 想要重监控告警体系 → Zabbix / LibreNMS
  • 想要服务在线监控 + 状态页 → Uptime Kuma
  • 想要L7 服务注册 → Consul
  • 想要自动发现 + 自动认出 + 单二进制 + Prometheus 出口MiBee Steward

八、它在哪些方面还比不上竞品(诚实)

为了不让你踩坑,把这些目前不如竞品的地方说清楚:

  1. 没有告警系统 —— 这是有意的边界(让位给 Alertmanager)。如果你想要一站式"扫 + 告警",MiBee Steward 不是你的菜,你需要的是 LibreNMS / Zabbix
  2. 没有状态页 —— 同上,让位给 Uptime Kuma
  3. 没有 Dashboard / 可视化平台 —— 内置 ECharts 只是资产视图辅助,做不了 Grafana 那种自由探索
  4. 不做主机深度监控 —— CPU / 内存 / 磁盘这些指标它不采,留给 node_exporter / Netdata
  5. 指纹库还在建设期 —— 摄像头、网络设备覆盖较好,长尾厂商型号还在补。规则库是 YAML 数据,欢迎社区贡献
  6. 没有 LDAP / SAML SSO —— 目前是 JWT + TOTP 2FA,企业 SSO 在路上
  7. Center 单点 —— 目前 center 是单实例 + SQLite,主从 HA 在路线图上

如果你不能接受以上任何一点,MiBee Steward 现阶段不适合你。 它适合的是:接受这些边界、想用一套轻量工具链(MiBee Steward + Prometheus + Grafana + Alertmanager)替代单一重监控系统的用户。


九、技术栈速览(给爱看实现的开发者)

选型
后端语言Go 1.26+
Web 框架Chi v5
数据库SQLite(modernc.org/sqlite,纯 Go,CGO_ENABLED=0)
查询层sqlc 生成类型安全代码(配置 engine: sqlite)
配置koanf/v2(YAML + MIBEE_* 环境变量覆盖)
前端SvelteKit 5(file-based routing、Tailwind 4、ECharts、paraglide i18n)
前端打包通过 go:embed all:dist 嵌入二进制
认证JWT(cookie-first + Bearer fallback)+ TOTP 2FA + CSRF
构建Makefile,默认 CGO_ENABLED=0,可选 WITH_EBPF tag
部署systemd / Nginx / Docker 全支持

有意思的实现细节:

  • 5 层插件化扫描引擎:加协议 = 1 Classifier + 1 Handler,零侵入 orchestrator
  • WAL + 独立心跳 DB:主库 CRUD + 心跳库高频写分离,避免 SQLITE_BUSY,~270k 行/天的写吞吐扛得住
  • eBPF 可选被动观测:TC ingress 程序嗅探 ONVIF WS-Discovery + TCP magic bytes,作为补充证据源(build-tag 隔离,默认构建不带)
  • 级联深采:扫到 HTTP → 探 /metrics → 是 Prometheus → 级联 node_exporter → 自动回填硬件信息
  • 数据驱动指纹库:YAML 规则 + 第三方 DB 导入工具(cmd/fpimport/,recog / IEEE OUI / IANA PEN,nmap 因协议污染只用做 clean-room 参考)

十、License & 贡献

  • 代码:AGPL-3.0(开源,可自由使用 / 修改 / 分发,衍生品需同等开源)
  • 指纹语料库:configs/fingerprints/,CC-BY-SA 4.0(数据可自由使用,衍生需署名 + 同等协议)
  • 贡献门槛:DCO 签署 + CLA(双重许可的法律前提)。指纹库贡献门槛更低——一条 YAML 一条规则

特别欢迎的贡献:

  • 🌟 指纹规则:把你认识的设备型号贡献成 YAML 规则,丰富识别库
  • 🌟 协议探针:加一个新协议的 Classifier + Handler
  • 🌟 Bug 反馈 / UI 改进:用着不爽的地方开 issue
  • 🌟 文档 / 翻译:中英之外的 i18n

十一、结语:为什么你应该试一下

如果你符合下面任意一条:

  • 受够了 LibreNMS / Zabbix 的部署复杂度,只想要个"扫一遍认出来"的工具
  • 受够了 NetBox / Snipe-IT 的手动录入,想要自动化
  • 受够了 nmap 扫完没下文,想要持续追踪 + UI + 变化检测
  • 想给 Prometheus / Grafana / Alertmanager 链条补一个"自动发现 + 资产源"
  • 有多个网段,想要统一资产画像
  • 单纯好奇这个细分赛道有没有人做

那就花 5 分钟试试:

git clone https://github.com/Mi-Bee-Studio/MiBeeSteward.git
cd mibee-steward && make build
./bin/mibee-steward -config configs/config.example.yaml

打开 http://localhost:8080,扫一遍你的 192.168.x.0/24,看它认出几台设备。

如果觉得不错,🌟 Star 一下,这是对开源作者最直接的支持。
如果觉得哪里不爽,开 issue 吐槽——尤其是"这台设备没认出来",这能直接帮指纹库变好。
如果你想长期参与,Watch / Fork,指纹库和协议探针都欢迎 PR。


Repo: https://github.com/Mi-Bee-Studio/MiBeeSteward
License: AGPL-3.0(代码)+ CC-BY-SA 4.0(指纹语料库)
部署:单二进制,CGO-free,SCP 上去就能跑
文档:docs/en/(英文)+ docs/zh/(中文)

MiBee Steward — Discover what’s on your network, know what it is, track it over time.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝宝石的傻话

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值