首页 > 开源 > Meerkat服务器集群实时监控平台-基于go/telegram/influxdb的服务器监控系统

Meerkat服务器集群实时监控平台-基于go/telegram/influxdb的服务器监控系统

OSChina资讯 2026-10-09 09:01 4 阅读 查看原文
Logo

“meerkat”在中文中通常翻译为猫鼬或狐獴,属于獴科的一种小型食肉哺乳动物,原产于非洲南部,它们喜欢群居生活,跟小伙伴在一起的时候,总有一个专职“站岗放哨”的哨兵,发现危险后,通过不同频率组合的叫声传递超过20种信息,精准指示天敌类型(如鹰隼、狐狸)和方位,让其它小伙伴及时警觉危险。Meerkat服务器集群实时监控平台的寓意也是像狐獴一样,及早发现服务器的状态异常,及时预警。

背景痛点:如果你是公司的运维人员,要管理几十上百台裸金属服务器,虚拟机,Docker容器,K8s节点,你必须时刻紧盯上面的服务状态,负载性能等各项指标,时刻24小时stand By。

meerkat-admin就是为解决这个痛点而来的,现在有个狐獴帮你主动报警,及时介入。

meerkat-admin是一款基于go原生开发的服务器集群实时监控平台,采用了go gin, gorm,telegraf 采集器,influxDB时序数据库,postgreSQL等技术栈,分为agent端,server端,webserver端,web平台四个模块。Agent端一旦部署在客户机上,主动采集指标,向中心机汇聚、存储与展示,几分钟后就可以在web dashboard看到各项指标。 指标不经 Telegraf 直写 InfluxDB,经 monitor-agent 用 mTLS gRPC 上报到 Collector。

 

演示网址:https://monitor.phpframe.org/ 商业部署联系作者微信:xdbyvibm6 (注明来意)

已完成的功能:

  • [x]内置ssh控制台,可以用户名连接,密钥连接;
  • [x]sftp模块,管理服务器文件上传,下载,删除,重命名;
  • [x]高危命令过滤,防止出现服务器崩盘;
  • [x]SSH命令会话审计,录像回放;
  • [x]计划任务,计划任务日志;
  • [x]还内置了一套完整的后台管理系统,基于Gin Gorm, Sqlite,(包括完整的用户、部门、角色、岗位、菜单、字典、系统设置、缓存、系统日志、附件等)可以单独独立出来;

下一步计划:

  • [ ]完成RDP远程连接,操作
  • [ ]告警参数设置
  • [ ]告警日志留存
  • [ ]告警通知,短信、飞书、邮件等
  • [ ]接入大模型对告警进行分析处理,形成报告
  • [ ]命令编排等

本仓库是源码 + 本机开发运行包的合集(多个 Go module),未使用 Docker。第三方组件用系统安装包或工作区已解压的二进制;Windows / Linux 均提供一键脚本(见 §8)。

1. 项目概况

概念 说明
用途 多机 CPU / 内存 / 磁盘 / 网络 / 进程等指标采集;中心控制台查看列表、详情、趋势与告警状态
规划网段 被监控机可以内网机房、混合云、信创环境 可以部署内网、可跨网段、跨云、例如192.168.1~99,中心机 192.168.1.100(本机开发可全部 localhost)
被监控机 Telegraf 采集 → monitor-agent 接收、缓存、上报
中心机 Collector 接入 Agent;PostgreSQL 存资产/心跳/告警;InfluxDB 存时序;webserver + Vue 提供登录与 API
角色 源码目录 典型产物 / 运行目录
采集器 Telegraf/ Telegraf/telegraf.exe 或系统 telegraf
Agent client/ client/monitor-agent.exe 或 dist/linux-*/monitor-agent
Collector server/ server/collector.exe 或 dist/linux-*/collector
Web API webserver/ webserver/webserver.exe 或 dist/linux-*/webserver
控制台 web/ 开发 pnpm dev(:3000);生产 web/dist + Nginx

2. 架构与数据流

2.1 部署视图

                         中心机
┌────────────────────────────────────────────────────────────┐
│  浏览器 :3000 ──► Vue(/dev-api 代理到 webserver :8090)    │
│  webserver :8090 ──读──► PostgreSQL :5432、InfluxDB :8086   │
│  Collector :9500 (mTLS gRPC) ──写──► PG + InfluxDB         │
│  Collector 管理 HTTPS :8080(自签 CA)                        │
└────────────────────────────┬───────────────────────────────┘
                             │ gRPC + mTLS
        ┌────────────────────┼────────────────────┐
        ▼                    ▼                    ▼
   被监控机 A            被监控机 B            被监控机 N
   Telegraf → :9510      同左                  同左
   monitor-agent         monitor-agent         monitor-agent
   health :9511           health :9511          health :9511

2.2 关键访问关系

从 到 地址 / 说明
Telegraf 本机 Agent http://127.0.0.1:9510/v1/telegraf/metrics(仅回环,成功 204)
Agent Collector server_address,如 192.168.1.100:9500,mTLS
Collector / webserver PostgreSQL 默认 localhost:5432
Collector / webserver InfluxDB 默认 http://localhost:8086,org hkc,bucket bucket
Vue 开发 webserver web/.env.development → VITE_APP_API_URL=http://localhost:8090

3. 技术栈(按端)

3.1 自研程序(Go / 前端)

组件 技术 说明
monitor-agent Go 1.27+,CGO_ENABLED=0 gRPC 客户端、SQLite 积压、HTTP 收 Telegraf
collector Go 1.27+ gRPC 服务端、GORM、Influx 写入、Outbox
webserver Go 1.27+,Gin、JWT 登录/菜单/监控 API;会话 SQLite
控制台 Vue 3、Vite、TypeScript、Element Plus、ECharts、pnpm 仅中心机需要(开发或构建静态资源)
RPC gRPC + Protobuf protoc 31+ 推荐;插件 protoc-gen-go / protoc-gen-go-grpc
传输安全 mTLS 测试证书:client/cmd/certgen 或 scripts/cert/Generate-mTLSCerts.ps1

更多介绍请访问: https://gitee.com/fsscms/Meerkat

欢迎star & follow