区块链中文技术社区

Gatus 介绍:Go 语言编写的主动式健康监控状态页

Gatus 介绍:Go 语言编写的主动式健康监控状态页

核心定位

Gatus 是一款用 Go 开发的主动式健康状态监控面板(GitHub 10k+ Star),用于填补传统监控工具的盲区:

  • 传统监控(如 Prometheus Alertmanager)依赖流量触发告警,若服务无访问则无法发现故障。
  • Gatus 采用主动探测逻辑,按预设间隔主动检查端点,在用户感知问题前发出预警。
  • 核心公式:主动健康检查 + 可视化状态页 + 多通道告警
  • 支持 HTTP、ICMP、TCP、DNS、gRPC、WebSocket 等十余种协议,单 Docker 命令即可启动。

核心特性

特性 说明
灵活条件语法 不止校验状态码,可基于响应体(支持 JSONPath)、响应耗时、SSL 证书/域名过期时间等配置规则,支持数组长度、多值匹配、正则等函数,也可用于简易 UAT 测试。
Suite 端到端监控 支持串联多步请求,前序请求的返回结果可作为后续请求参数,实现「创建-更新-校验-删除」等完整业务流的可用性监控。
外部端点推送 内网服务无需暴露端口,可通过 Agent 主动推送健康状态,支持心跳检测,超时未上报即触发告警。
40+ 告警通道 覆盖协作工具(Slack/Discord/企业微信)、PagerDuty、短信、邮件、主流云厂商平台,支持自定义 Webhook;可配置「连续失败 N 次才告警」「恢复自动通知」。
SSH 隧道 可通过跳板机监控 Kubernetes 集群内或私有云内网服务。
生态兼容 暴露 Prometheus 指标,可对接现有监控体系;生成 SVG 状态徽章,可直接嵌入 GitHub README、文档站点。
低资源与安全 Go 实现,生产环境内存占用仅几十 MB,支持配置热加载、断网防误报,支持 Basic Auth/OIDC/mTLS 等安全特性。

部署与存储

部署方式

支持 Docker、Kubernetes Helm、Terraform、单二进制直接运行;配置文件支持多 YAML 文件拆分合并,便于多团队协作管理。

存储方案

存储类型 适用场景
Memory 快速体验,重启后数据丢失
SQLite 轻量单机部署、小团队/个人项目
PostgreSQL 生产环境、高可用需求

生产环境推荐 PostgreSQL + 写穿缓存,提升仪表盘加载速度。

同类工具对比

特性 Gatus Uptime Kuma Healthchecks.io
开发语言 Go Node.js Python
协议支持 极广(含 gRPC/SSH 等) 中等 较少
条件规则 灵活(支持 JSONPath/函数) 简单 简单
工作流监控 支持 不支持 不支持
SSH 隧道 支持 不支持 不支持
资源占用 极低 中等 中等

Gatus 更适合需要深度定制、监控复杂业务场景的技术团队。

适用场景

  1. 个人/小团队:快速搭建轻量监控,SQLite + 常用告警即可满足需求。
  2. 中大型团队:统一管理数百个微服务的健康状态,对接现有 Prometheus 监控体系。
  3. SaaS 产品:对外提供用户可见的服务状态页,搭配徽章展示历史可用性。
  4. DevOps 运维:补位传统监控盲区,实现无流量场景下的故障前置发现。

项目地址

GitHub:https://github.com/TwiN/gatus

开源工具 HTTPSMS 介绍

开源工具 HTTPSMS 介绍

用 Android 手机做 SMS 网关,通过 HTTP API 收发短信,完全自托管、数据自主可控

核心定位

无需对接第三方商业短信平台,把闲置安卓手机变成私有短信网关:

  • 调用简单 HTTP API 即可用你的手机号发信
  • 手机收到的短信可通过 Webhook 实时推送到你的服务器
  • 支持完全自托管,无厂商锁定期,数据自己掌握

整体架构

开源工具 HTTPSMS 介绍

用 Android 手机做 SMS 网关,通过 HTTP API 收发短信,完全自托管、数据自主可控
来源:「AI开源提效指南」公众号分享

核心定位

无需对接第三方商业短信平台,把闲置安卓手机变成私有短信网关:

  • 调用简单 HTTP API 即可用你的手机号发信
  • 手机收到的短信可通过 Webhook 实时推送到你的服务器
  • 支持完全自托管,无厂商锁定期,数据自己掌握

整体架构

你的业务/脚本 → 调用 /v1/messages/send 接口
↓(立即返回 202 Accepted,不阻塞)
HTTPSMS 服务端(Go + Fiber)→ 异步通过 FCM 通知安卓端

安卓 App(Kotlin)→ 调用系统短信能力收发信,回传状态

核心优势

特性 说明
多语言支持 官方 SDK 覆盖 Go / Python / JS / Java / C# / PHP 等,curl 可直接调用
端到端加密 AES-256 加密,密钥仅存于本地手机,服务器被攻破也无法解密短信
流量管控 支持自定义发送速率、消息过期时间,避免推送延迟、突发流量导致异常
低成本 开源免费(AGPL-3.0),无按条收费,仅需一台安卓机

典型使用场景

  • 个人/内部系统的 2FA 短信验证码下发
  • 服务器运维告警(比邮件/推送到达率更高)
  • 自动化测试收验短信
  • 无公网 IoT 设备的状态通知通道

与同类方案对比

特性 HTTPSMS Twilio/云短信 自建 GSM Modem
成本 免费/极低 按条收费 硬件采购成本
端到端加密 支持 不支持 本地处理
完全自托管 支持 不支持 支持
开源 AGPL-3.0 闭源 多数闭源
Webhook 转发 原生支持 部分支持 很少支持

快速上手

开源工具推荐:轻量终端网络监控工具 RustNet

开源工具推荐:轻量终端网络监控工具 RustNet

解决了什么痛点?

传统网络排查工具往往顾此失彼,RustNet 旨在解决以下核心问题:

传统工具 存在的短板
netstat / ss 只能看到连接,无法关联到具体进程
tcpdump / Wireshark 抓包数据难绑定应用,远程服务器使用门槛高
X11 转发 配置极其繁琐,体验差

核心诉求:快速定位「哪个进程在和谁通信、用的什么协议、占了多少带宽」。


项目简介

RustNet 是一款用 Rust 编写的跨平台终端 UI(TUI)网络监控工具。

  • 极简体积:不足 3MB
  • 广泛兼容:支持 Linux / macOS / Windows / FreeBSD
  • 技术栈:ratatui 构建界面、libpcap 抓包,Linux 下默认启用 eBPF 加速
  • 社区热度:GitHub 收获 3.2k Star,已发布 20 个版本

核心功能亮点

  • 精准溯源:直接将 TCP/UDP/QUIC 连接映射到对应进程。
  • 深度识别:自动识别 HTTP / DNS / SSH / QUIC 等常见协议。
  • 状态可视:颜色标记连接活跃度(白=活跃、黄=老化、红=超时),支持查看历史连接。
  • 高效筛选:Vim 风格过滤(支持 port:/process:/sni: 等字段),支持快速排序。
  • 附加能力:内置本地 GeoIP 库(离线查归属地)、进程分组折叠、网卡级统计。

快速安装

各平台安装命令

平台 安装命令
macOS / Linux (Homebrew) brew tap domcyrus/rustnet && brew install rustnet
Ubuntu 25.10+ sudo add-apt-repository ppa:domcyrus/rustnet && sudo apt install rustnet
通用 (Cargo) cargo install rustnet-monitor
Windows (Chocolatey) choco install rustnet (需先装 Npcap)

权限配置

抓包需要权限,推荐以下两种方式之一:

方式一:临时使用(最简单)
sudo rustnet
方式二:永久免 sudo(Linux)
sudo setcap 'cap_net_raw,cap_bpf,cap_perfmon=eip' $(which rustnet)

常用操作

操作类型 命令/快捷键 说明
启动参数 -i eth0 指定监听网卡
--resolve-dns 开启反向 DNS 解析
-r 500 设置刷新间隔(毫秒)
界面交互 / 进入过滤模式(如 process:chrome)
s 切换排序列(找流量大户)
a 开启进程分组视图
i 切换到网卡统计视图
Enter 查看单条连接详情(含 SNI 域名)

适用人群

  • 运维工程师:快速排查服务器流量暴涨原因。
  • 后端开发者:确认服务连接的健康状态与协议合规性。
  • 安全审计:在无图形界面的远程服务器上进行网络诊断。

项目地址:https://github.com/domcyrus/rustnet

OpenObserve:轻量级 Rust 日志系统

OpenObserve:轻量级 Rust 日志系统

一句话总结:一个二进制、100MB 内存、内置 UI、支持 SQL 查日志,可作为 Elasticsearch / Loki 的轻量替代方案。


一、核心优势

  • Rust 编写:高性能、低内存、无 GC 抖动
  • 单二进制部署:无外部依赖,一个容器即可运行
  • 内置 Web UI:日志查询、仪表盘、告警一体化
  • SQL 查询日志:无需学习 LogQL 或 DSL
  • 自动展平 JSON:嵌套字段可直接 SELECT / WHERE
  • 多存储后端:本地磁盘 / S3 / MinIO / GCS
  • 自动过期清理:按天或大小自动删除旧数据

二、与 Elasticsearch / Loki 对比

维度 Elasticsearch Loki OpenObserve
内存起步 4–8 GB ~256 MB ~100 MB
自带 UI Kibana(重) 需 Grafana 内置
查询语言 DSL LogQL SQL
单二进制
告警 需配置 需 Grafana 内置
部署复杂度 极低

三、快速部署(Docker)

docker run -d \
  --name openobserve \
  --restart unless-stopped \
  -p 5080:5080 \
  -v /data/openobserve:/data \
  -e ZO_DATA_DIR=/data \
  -e ZO_ROOT_USER_EMAIL=admin@example.com \
  -e ZO_ROOT_USER_PASSWORD=YourPassword \
  public.ecr.aws/zinclabs/openobserve:latest

访问地址:

http://<服务器IP>:5080/web/


四、数据接入(HTTP API)

单条日志

curl -u "admin@example.com:TOKEN" \
  -X POST http://localhost:5080/api/default/default/_json \
  -H "Content-Type: application/json" \
  -d '{
    "message": "用户登录成功",
    "level": "info",
    "service": "web-api"
  }'

批量日志

curl -u "admin@example.com:TOKEN" \
  -X POST http://localhost:5080/api/default/default/_json \
  -H "Content-Type: application/json" \
  -d '[
    {"message": "/api/users", "latency_ms": 45, "status": 200},
    {"message": "DB timeout", "level": "error", "status": 500}
  ]'

五、SQL 查询示例

-- 最近 1 小时错误日志
SELECT *
FROM "default"
WHERE _timestamp > now() - INTERVAL '1 HOUR'
  AND message LIKE '%error%'
ORDER BY _timestamp DESC
LIMIT 100;

-- 每小时请求量统计
SELECT
  date_trunc('hour', _timestamp) AS hour,
  count(*) AS request_count
FROM nginx_logs
GROUP BY hour
ORDER BY hour;

六、常见坑与解决方案

问题 原因 解决方式
数据不过期 WebUI 优先级高于环境变量 在 UI 中设置或检查变量名
401 错误 Ingestion Token 不等于 Query Token 使用 JWT 或查询 Token
镜像拉取失败 ECR 访问受限 使用 Docker 镜像加速
磁盘写满 默认保留 10 年 设置 ZO_DATA_RETENTION_DAYS
中文乱码 非 UTF-8 编码 推送时强制使用 UTF-8

七、适用场景

  • 1–2 台服务器
  • 不想维护 Grafana 全家桶
  • 熟悉 SQL,不愿学习 LogQL
  • 需要快速可用的日志系统

若重度依赖 LogQL 流式实时分析,Loki 仍然不可替代。


八、相关资源

Easytier 一款简单、去中心化的网状 VPN,支持 WireGuard

官网:https://easytier.cn/
github: https://github.com/EasyTier/Easytier

特征

核心功能

  • 去中心化:节点平等且独立,无需中心化服务
  • 易于使用:可通过网页、客户端和命令行进行多种操作
  • 跨平台:支持 Windows/MacOS/Linux/FreeBSD/Android 以及 X86/ARM/MIPS 架构
  • 安全:采用 AES-GCM 或 WireGuard 加密,防止中间人攻击

高级功能

  • 高效的 NAT 穿越:支持 UDP 和 IPv6 穿越,适用于 NAT4-NAT4 网络
  • 子网代理:节点可以共享子网,供其他节点访问。
  • 智能路由:延迟优先级和自动路由选择,带来最佳网络体验
  • 高性能:全程零拷贝,支持 TCP/UDP/WSS/WG 协议

网络优化

  • UDP 抗丢包能力:KCP/QUIC 代理可优化高丢包环境下的延迟和带宽
  • Web 管理:通过 Web 界面轻松配置和监控
  • 零配置:使用静态链接可执行文件进行简单部署