Go · 单二进制 · 开源

越阈值瞬间抓现场,
定位到那一行代码

hawk 是一款 Linux 服务器 CPU/内存暴涨泄漏自动诊断守护进程。 1 秒采样,异常瞬间抓取现场,直接告诉你是哪个进程、哪个服务、哪一行代码

单二进制部署 内嵌 Web 面板 离线无 CDN 低开销纯 /proc 采集
/var/log/hawk/monitor.log
# CPU 越阈值触发,hawk 自动抓栈并提取最热函数
[W] pid=1659 service=eta_api TRIGGER process_cpu sys_cpu=95.2 ...
[W] pid=1659 service=eta_api hotspot(cpu): eta_api/services.(*Calc).Run  services/calc.go:88  flat 78.3%
核心能力

一个守护进程,覆盖诊断全链路

从暴涨抓现场到泄漏趋势判定、系统预警、安全查杀,全部内置于单个二进制,无外部服务依赖。

暴涨秒级抓现场

1 秒采样 + 滑动窗口阈值判定,CPU/内存越线瞬间抓取 top、/proc、火焰图、goroutine/heap,无需人守在终端前。

定位到代码行号

Go 走 pprof -lines、Python 走 py-spy、Native 走 gdb/pstack,直接给出「最热函数 + 文件:行号」,写进日志、告警与 Web。

泄漏趋势判定

对已登记服务做长时窗口最小二乘线性回归,斜率超阈值且 R² 达标即判为疑似泄漏,Web 概览标红预警。

系统指标 + 阈值预警

纯 /proc·/sys 解析 CPU/内存/磁盘/网络/TCP/句柄/OOM,内置可改阈值,告警防抖 + 冷却,低开销不 fork。

挖矿木马检测

启发式识别 xmrig/kinsing 等特征、矿池连接、/tmp 可执行、伪装内核线程、ld.so.preload 注入等,防御用途。

内置病毒库引擎

加载 .hdb/.hsb/.ndb 做哈希 + 特征匹配,无需 ClamAV 进程;配套 hawkdb 从公开来源更新病毒库。

多渠道告警

钉钉(支持加签)、企业微信、SMTP 邮件、通用 Webhook。邮件正文附带自动生成的根因假设与修复步骤。

内嵌 Web 面板

go:embed 打包进单二进制,离线无 CDN。实时折线、泄漏标红、事件详情(火焰图/栈)、小时报告、系统与安全页签。

报告与多机汇聚

每小时综合报告可在线浏览/手动生成;支持通过 rsync over SSH 将两节点日志汇聚到中心节点统一分析。

单二进制 · 低依赖

前端与运行时全部内嵌,systemd 托管。核心采集不调 shell、不 fork,缺少可选外部工具时自动降级不影响启动。

工作原理

采样 → 判定 → 抓现场 → 定位 → 告警

常态低开销采样,异常态高精度取证,全程自动。

1 秒采样与阈值判定

纯读 /proc·/sys 采集系统与进程指标,滑动窗口比对 CPU/内存阈值,配合冷却与告警防抖,避免抖动误报。

越线瞬间抓取现场

并发采集 top / /proc 快照 / IO / 网络,并按语言选取工具生成 CPU 火焰图、goroutine、heap、native 栈等取证文件。

提取热点 + 生成修复报告

从 profile/栈提取最热函数与文件:行号,按「事件×语言×热点×profile×泄漏趋势」生成根因假设与处置步骤 repair.md

多渠道推送与留档

写入按天轮转的 monitor.log 与现场目录,推送钉钉/企业微信/邮件/Webhook,Web 面板可回溯全部事件与报告。

现场目录 /var/log/hawk/incidents/<ts>-<kind>/
meta.jsonl        # 触发指标 + 嫌疑PID + 语言 + 服务名 + 状态
system.txt  top.txt  io.txt  net.txt
proc-1659.txt     # /proc 快照
threads-1659.txt
go-1659-cpu.svg   # Go: CPU 火焰图
goroutine.txt  heap.svg  mutex.txt
repair.md         # 自动生成的修复报告
关于 Go 行号定位: 需为每个 Go 服务显式挂载标准 net/http/pprof(绑 127.0.0.1),并在配置的 go_pprof_targets 登记;未开启则自动走 perf record + FlameGraph 兜底。详见 部署文档
下载

获取 Linux 安装包

开箱即用的发行包,内含 hawk 二进制、配置模板、安装脚本、systemd 服务与全套文档。当前版本 v1.0.0

推荐 · 主流服务器

hawk · Linux amd64

x86-64 / Intel · AMD
tar.gz · 约 5.5 MB
  • hawk 主守护进程(前端已内嵌)
  • conf/ 配置模板
  • scripts/ 安装 + systemd
  • docs/ 全套文档
下载 amd64
ARM 服务器 / 云主机

hawk · Linux arm64

aarch64 · 鲲鹏 / 飞腾 / Graviton
tar.gz · 约 5.0 MB
  • 与 amd64 版功能完全一致
  • 适配 arm64 架构服务器
  • 同样单二进制部署
  • docs/ 全套文档
下载 arm64
可选 · 病毒库更新器

hawkdb · 本地工具

在本地联网机器运行
tar.gz · 约 5.5 MB
  • 抓取 ClamAV / MalwareBazaar 公开库
  • 生成 hawk 格式病毒库
  • 再手动上传到服务器启用
  • 不装 ClamAV 也能扫描
下载 hawkdb
校验完整性:下载 SHA256SUMS.txt,在解压前执行 sha256sum -c SHA256SUMS.txt 核对。 无预编译包需要的架构?可自行交叉编译:bash scripts/package.sh v1.0.0
快速开始

三步跑起来

在被监控的 Linux 服务器上以 root 执行。完整选项、升级、排障见 部署文档

① 解压并安装
# 上传后解压
tar -xzf hawk-v1.0.0-linux-amd64.tar.gz
cd hawk-v1.0.0-linux-amd64

# 一键安装:依赖 + 二进制 + 配置 + systemd
sudo bash scripts/install.sh
② 登记服务并按需配置
# 扫描运行中的进程,自动登记到 config.yaml
sudo bash scripts/gen-services.sh

# 按需编辑:go_pprof_targets / notify / web 等
sudo vim /etc/hawk/config.yaml
③ 启动并查看
sudo systemctl start hawk
sudo systemctl status hawk

# 实时日志(两种)
sudo journalctl -u hawk -f
sudo tail -f /var/log/hawk/monitor.log
④ 开启 Web 面板(可选)
# config.yaml
web:
  enabled: true
  addr: "0.0.0.0:8088"   # 对外务必配 auth/防火墙
  auth:
    enabled: true
    username: "admin"
    password: "改成强密码"
浏览器访问 http://<addr>,即可看到概览、系统指标、安全、事件、报告五个页签。