dushixiang
0fa920e972
refactor: 重构 WebSocket 可靠投递会话模型
2026-08-31 21:52:03 +08:00
dushixiang
787fa6918d
feat: WebSocket 消息可靠投递(纯内存事件队列)
...
- agent 数据写入增加 10s 超时,写失败立即断连重连,消除无超时写卡死期间快照被覆盖的静默丢失
- 事件类消息(SSH登录/防篡改/指令响应/监控检测)改走内存 outbox:seq + 服务端累计 ack + 断线重放,上限 1024 条溢出丢最旧,重启清空(可接受)
- 注册请求携带 BootID 会话标识:探针重启后 seq 从 1 重新分配,服务端据此重置确认位点,避免新消息被旧位点误判为重复而丢弃
- server 读循环与处理解耦(per-agent 有序队列 + 串行 worker),慢处理不再阻塞 TCP 读取,队列满断连由探针重放兜底
- 修复探针快速重连时旧连接误注销新连接的竞态(此前会闪断新连接)
- IsAgentEnabled 加 3s TTL 缓存,禁用立即失效;pong 在线状态写库去抖(首次 + 5 分钟心跳刷新)
- VM 写超时默认 30s -> 10s,快速失败配合重放兜底
新旧版本双向兼容:注册响应 Reliable 字段协商,旧 server 下探针自动降级直发
2026-08-30 22:30:41 +08:00
dushixiang
3efa6852ed
fix: filter disabled agents from authenticated API
2026-08-26 20:46:45 +08:00
dushixiang
d700d595ab
fix: hide disabled agents from public list
2026-08-26 20:37:55 +08:00
dushixiang
14a48f81a4
feat: support disabling agents
2026-08-26 20:24:17 +08:00
dushixiang
a4ec00b47e
支持 agent 拖动排序
2026-08-26 20:06:20 +08:00
dushixiang
080579d0e6
refactor: decouple public monitor sparklines
2026-08-23 23:05:41 +08:00
dushixiang
5210f91eef
fix(auth): make OIDC discovery resilient
2026-08-23 21:33:28 +08:00
dushixiang
6c8d2f13d3
feat: 告警规则实体化与服务监控按标签选探针
...
- 告警规则:独立实体(alert_rules 表),按优先级命中第一条生效;支持三种主机目标(全部/按主机/按标签)、7 类阈值、事件通知开关、IP 打码、推送渠道选择;未命中规则的主机不产生告警;列表支持外置启停
- 服务监控:新增按标签选择探针,与指定探针取并集,均为空时全部探针执行
- 公网 IP 采集:范围支持全部探针/按探针/按标签,兼容历史 custom 取值
- 告警历史:新增规则归属列;评估链路(指标/证书/服务下线/探针离线/到期提醒/事件通知)全部按主机命中规则驱动
- 设置页:左侧菜单改为浅色卡片容器并优化对比度,通知渠道移至公网 IP 采集之后;主菜单宽度调整为 240px
2026-08-23 19:53:35 +08:00
dushixiang
acf3b6b57f
refactor: split default theme into standalone repository
2026-08-12 20:00:48 +08:00
dushixiang
a4f7c82de6
更新包路径
2026-08-12 18:59:29 +08:00
dushixiang
1af64eccd9
refactor: simplify theme system to filesystem-only with self-contained portal
...
主题系统从带数据库/事务/repo 层/远程下载/配置管理/主题市场的重型架构,
彻底简化为纯文件系统操作:
后端:
- 主题数据全部存放在 data/themes/ 目录,不经过数据库
- 删除主题配置功能(managed/raw/redirect schema、配置存取 API、
ThemeConfiguration model、theme_configurations 表、repo 层)
- 删除远程下载(URL 安装、GitHub Release 更新、SSRF 防护、SHA-256)
- 删除版本范围检查(semver 解析/比较/匹配、pikaVersion 校验)
- 删除主题市场
- ThemeService 不再持有 db,合并为 theme.go + theme_util.go 两个文件
- 主题类型从 models 包移到 service 包(非数据库模型)
- 保留:ZIP 上传解压(含目录穿越防护)、目录扫描列表、启用/删除、
覆盖安装、默认主题回退、启动恢复、入口 HTML 渲染缓存
前端 portal(官方默认主题):
- 从 47 个碎片文件精简到 15 个,按标准目录组织
- 删除 theme-sdk 包,API 客户端和类型内联回 portal,完全自包含
- 按职责拆分:types.ts / api.ts / constants.ts / lib/utils.ts /
contexts/ColorMode.tsx / hooks/index.ts / components.tsx / pages/
- 每个页面一个文件,图表和子组件内联,fork 二开只需看一个文件
2026-08-09 22:45:43 +08:00
dushixiang
60678ea1bc
chore: upgrade dependencies
2026-07-08 21:56:14 +08:00
dushixiang
d3690832f9
优化发布构建资源加载
2026-05-07 21:45:22 +08:00
dushixiang and Claude Opus 4.7
c431f300bc
新增实时监控模式,agent 1s 并行采集 + 前端滑动窗口
...
agent
- 移除 collector.interval 配置项;按指标类型内置节奏:cpu/memory/network/
disk_io/gpu/network_connection 1s,temperature 5s,disk 30s,host 60s
- doCollectAndSend 改为并行执行本 tick 到期的采集器,避免串行累计耗时
超过 1s 节奏;每个 goroutine 加 recover 兜底,单点 panic 不拖垮整 tick
server
- LatestMetrics 加 sync.RWMutex + Update/Snapshot 方法,HandleMetricData
所有写入走 Update;GetLatestMetrics 返回 Snapshot,handler 在副本上
sanitize,修复 marshal 时与 ws 写入的 data race(go test -race 验证)
- HandleMetricData defer Set 缓存项,每次上报刷新 TTL;host case 也走
Update,不再 1 小时后失效
- LatestMetrics.Timestamp 用服务端 time.Now(),agent 时钟倒拨不会冻结
前端实时图;Timestamp/DiskIOSummary 字段补到 LatestMetrics
- AutoStep 新增 r ≤ 5m → 1s 档;timeRangeMilliseconds 加 2m
frontend
- 详情页加"实时"档位(默认),1s 拉 latestMetrics + 1m 历史播种 + 滑动
2 分钟窗口;快图表(CPU/Memory/Network/DiskIO/NetworkConnection)走
useLiveBuffer 追加,慢图表(GPU/Temperature/Monitor)保留 refetch
- useLiveBuffer:seed 不再覆盖已追加的 livePoint;resetKey 处理切网卡 /
切 agent 时的语义复位
- formatChartTime live 档位精确到秒;修复 1d/24h 仅显示 HH:mm 跨夜歧义
- 慢图表用 React.memo,阻断 1Hz 节奏的级联重渲染
- GpuChart 修复 utilization/temperature 时间戳错位时温度点丢失
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-06 23:18:50 +08:00
dushixiang
e115d828ab
重构数据采集打包,修改为统一打包发送
2026-05-05 17:46:32 +08:00
dushixiang
29d8b3e9cf
调整指标数据使用 max 聚合,避免消峰
2026-05-05 17:09:26 +08:00
yumusb
47c9a515a2
feat: 支持短UUID访问服务器详情,前端默认使用短链接
...
- 后端支持通过UUID前缀(第一段)匹配探针,保留完整UUID兼容
- 注册时自动检测短ID前缀冲突,冲突时分配新UUID
- 前端列表和卡片默认链接到短UUID(前8位)
2026-04-30 14:10:39 +08:00
yumusb
52a30aae74
feat: 支持 API Key 类型与管理接口认证
2026-04-24 18:45:01 +08:00
yumusb and Claude Opus 4.6
b9ec210542
refactor: 优化后端服务结构
...
- 统一使用 orz 响应格式
- 优化 handler 和 service 层代码
- 改进上下文传递
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-10 12:53:13 +08:00
yumusb
fd452e56d8
增加测试镜像、增加删除残留数据。
2026-04-08 20:24:03 +08:00
yumusb
35becefe1e
Support metric bundles and enable WS compression
...
Add support for bundling metrics and enable WebSocket compression. Introduces protocol.BundlePayload and MessageTypeBundle, and handles bundled messages on the server side (handleBundleMessage) by iterating items and forwarding each to metricService.HandleMetricData. On the agent side, add bundleWriter to collect outgoing MetricsPayloads, switch collectors to write into the bundle writer, and send a single bundle message when items exist. Also enable compression on the WebSocket upgrader and create a custom websocket.Dialer (with Proxy, HandshakeTimeout and EnableCompression). Minor logging/messages and import adjustments included.
2026-04-08 11:26:00 +08:00
dushixiang
4df28e3536
删除探针、服务监控时同步删除 victoriametrics 数据
2026-02-25 14:28:11 +08:00
dushixiang
1a64b27af6
移除原心跳配置和业务,改为使用 WebSocket Ping Pong 实现,并增加超时逻辑
2026-02-25 14:11:22 +08:00
yumusb
63cdd37b12
Hide agent IP when unauthenticated
...
Ensure agent.IP is cleared for unauthenticated requests. Previously IPv4, IPv6 and Hostname were redacted, but agent.IP was left intact and could leak sensitive information. This change sets agent.IP to an empty string in Get() when the user is not authenticated.
2026-02-24 09:44:27 +08:00
dushixiang
d40fc1314f
1. 修改注册探针的服务端地址为手动填写
...
2. 优化 Linux 系统服务模板
3. 优化首页流量展示方式
2026-02-10 19:56:46 +08:00
dushixiang
c9b6d6ff5a
优化流量统计
2026-01-25 22:01:56 +08:00
dushixiang
ff2afc82a5
移除管理员探针管理的分页功能,增加标签过滤,与公共页面保持一致的排序逻辑 fix #47
2026-01-24 21:51:23 +08:00
dushixiang
85f80b76fd
新增批量修改探针可见性的功能 fix #33
2026-01-24 18:48:49 +08:00
dushixiang
58efeea362
安装探针命令增加自动创建文件夹的代码 fix #59
2026-01-24 18:30:00 +08:00
dushixiang
6f08f9447a
修复自定义 agent 名称
2026-01-17 17:39:43 +08:00
dushixiang
2664ebb05e
优化探针查询过滤
2026-01-17 17:30:44 +08:00
dushixiang
6488c9155d
保留旧的连接 IP 地址
2026-01-17 17:15:51 +08:00
dushixiang
3a8caec66e
保留旧的连接 IP 地址
2026-01-17 17:14:19 +08:00
dushixiang
be54ef2d31
增加公网 IP 采集和网卡 IP 展示
2026-01-17 16:24:59 +08:00
yumusb
2108d09f6a
增加自定义 name 参数
2026-01-15 19:34:57 +08:00
yumusb
56e92c9081
允许只设置一个 systemName
2026-01-12 11:44:16 +08:00
榆木
07cc517b2c
允许有探针在线的IP地址不提供key下载
2026-01-11 19:55:41 +08:00
榆木
9ae1fea7d8
下载地址增加 key 认证
...
agent二进制下载地址增加 key 认证,防止刷流量
2026-01-11 19:19:58 +08:00
dushixiang
f0cff6a878
SSH 登录事件增加 IP 白名单
2026-01-11 13:56:21 +08:00
dushixiang
52037fa8e6
优化已使用流量计算
2026-01-11 12:08:59 +08:00
dushixiang
ab1a13d5b2
在管理页面增加设备 IP 信息
2026-01-11 11:43:39 +08:00
dushixiang
8904d39872
在探针注册后服务端主动下发SSH登录监控配置
2026-01-11 10:22:36 +08:00
dushixiang
5359ee89d4
在探针注册后服务端主动下发SSH登录监控配置
2026-01-11 10:20:38 +08:00
dushixiang
2b626b067f
优化事件展示
2026-01-10 23:21:39 +08:00
dushixiang
0ec6cee36c
改为异步下发配置
2026-01-10 23:10:13 +08:00
dushixiang
f4d6a3fc3e
完善流量使用统计
2026-01-10 17:59:28 +08:00
dushixiang
1ffa20045c
增加 agent 数据缓存功能,避免长时间连不上服务端导致数据丢失。
2026-01-09 22:28:56 +08:00
dushixiang
3cf4d7e5a9
优化目录保护
2026-01-09 21:53:44 +08:00
dushixiang
f43a856add
优化 SSH 登录配置
2026-01-09 21:15:09 +08:00