Commit Graph
78 Commits
Author SHA1 Message Date
yumusbandClaude Opus 4.7 c2e64804f3 fix: GPU 采集器 nvidia-smi 调用添加 15 秒超时
nvidia-smi 在 GPU 驱动异常时可能无限挂起,导致整个 metricsLoop 卡死。
使用 exec.CommandContext 为 initStatic 和 collectDynamic 中的 nvidia-smi
调用添加 15 秒超时保护。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-20 14:43:16 +08:00
yumusbandClaude Opus 4.7 e0c9fc5b25 fix: 修复 Agent 卡死不触发重连的问题
Agent 在连接断开后完全卡死 17 小时,根因分析如下:
1. 并发写竞争:pingLoop 直接使用 rawConn.WriteControl 与 metricsLoop
   的 safeConn.WriteJSON 竞争同一个 gorilla websocket 内部锁
2. 连接写失败被吞掉:outboundWriter.WriteJSON 写失败时返回 nil,
   metricsLoop 感知不到连接错误,不会触发重连
3. 采集器无超时保护:任何采集器阻塞都会冻结整个 metricsLoop

修复:
- safeConn 新增 WriteControl 方法,pingLoop 改用 safeConn 写入
- outboundWriter.WriteJSON 写失败时返回真实错误
- collectAndSendAllMetrics 增加 30 秒全局超时保护
- 连接写失败视为连接异常,返回错误触发重连
- 新增采集耗时监控日志(耗时超过 500ms 时记录)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-20 14:43:06 +08:00
yumusbandClaude Opus 4.6 ab22f9bd57 fix: 修复指标采集空数据时误报0%的问题
当磁盘或网卡采集不到有效数据时,空列表会被写入缓存导致
磁盘占用率和网络流量显示为0%,与真实值混淆。

修复方案:
- Agent端:空列表不发送,与GPU/温度采集器保持一致
- Server端:空数据时跳过缓存更新,保留上一次有效值

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 20:30:54 +08:00
yumusbandClaude Opus 4.6 e91d1a106b fix: Agent 安装时自动清理已存在的旧服务
重新安装 Agent 时如果服务已存在会报错
"Init already exists: /etc/systemd/system/pika-agent.service"

修改 Install() 方法,判断错误类型:
- 如果是"服务已存在"错误,先停止卸载旧服务再重装
- 其他错误(如权限不足)直接返回

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 16:42:08 +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 1a64b27af6 移除原心跳配置和业务,改为使用 WebSocket Ping Pong 实现,并增加超时逻辑 2026-02-25 14:11:22 +08:00
dushixiang 0032e42905 优化探针重连逻辑 2026-02-24 19:48:28 +08:00
dushixiang d40fc1314f 1. 修改注册探针的服务端地址为手动填写
2. 优化 Linux 系统服务模板
3. 优化首页流量展示方式
2026-02-10 19:56:46 +08:00
dushixiang 31619096b8 修改所有上报断线缓存 + 最多保留 24 小时 2026-02-07 20:15:40 +08:00
dushixiang e82046ac89 强完善默认的虚拟网卡过滤规则 fix #64 2026-02-07 15:30:30 +08:00
Hoin 71df7fb583 fix(agent): 排除 tap 开头的虚拟接口以避免误采集
在默认网络接口排除规则和示例配置中添加对 tap 开头接口的排除,这些是 PVE/KVM 虚拟机使用的虚拟网卡,不应纳入网络指标采集范围。
2026-01-31 11:04:43 +08:00
yumusb 1ef4a7d2f7 兼容 ubuntu 系的 计划任务采集、ssh登录日志的解析 2026-01-20 19:22:47 +08:00
dushixiang be54ef2d31 增加公网 IP 采集和网卡 IP 展示 2026-01-17 16:24:59 +08:00
榆木 9ae1fea7d8 下载地址增加 key 认证
agent二进制下载地址增加 key 认证,防止刷流量
2026-01-11 19:19:58 +08:00
榆木 fd7a083139 网卡IP采集过滤本地单播地址
网卡IP采集过滤本地单播地址,例如 fe80::f816:3eff:fe68:fb57/64、fe80::5054:ff:fe74:1d69/64 等
2026-01-11 17:55:49 +08:00
dushixiang 602a36df01 移除 SSH 登录事件中的登录方法字段 2026-01-11 10:14:48 +08:00
dushixiang ede5cc4f36 替换 ssh 登录事件采集为 unixgram 通信 2026-01-10 22:44:10 +08:00
dushixiang c064d86c68 升级 bolt 为 etcd 版本 2026-01-10 22:09:43 +08:00
dushixiang e7981bb69e 移除遗留的 HostMetric 相关代码 2026-01-10 10:53:45 +08:00
dushixiang 1ffa20045c 增加 agent 数据缓存功能,避免长时间连不上服务端导致数据丢失。 2026-01-09 22:28:56 +08:00
dushixiang 3cf4d7e5a9 优化目录保护 2026-01-09 21:53:44 +08:00
dushixiang 911c105414 调整目录保护功能和 SSH 登录监控 2026-01-05 21:44:20 +08:00
dushixiang 7386c6e8dd 完成 SSH 登录监控 2026-01-03 12:01:49 +08:00
dushixiang 9d14a8cba5 增加 SSH 登录监控 2026-01-03 11:05:23 +08:00
dushixiang 81691fb864 修复 Linux 环境下探针重启时间过长的问题 2025-12-30 20:45:12 +08:00
dushixiang 6c499e2464 修改客户端日志为 slog 2025-12-30 20:00:35 +08:00
dushixiang b946dea662 增加 id 迁移的补丁 2025-12-25 23:02:29 +08:00
dushixiang 6695f6e4a6 增加 id 迁移的补丁 2025-12-25 22:55:25 +08:00
dushixiang 502de9d816 优化探针卸载&服务端删除探针自动卸载自身 2025-12-25 19:24:59 +08:00
dushixiang 7944fb09dc 优化探针获取 home 目录 2025-12-25 19:12:40 +08:00
dushixiang 53c771d965 优化代码 2025-12-14 22:17:39 +08:00
dushixiang 74179374df 优化代码 2025-12-14 21:15:11 +08:00
dushixiang 21d5c7a717 完成服务监控后端重构 2025-12-13 11:55:31 +08:00
dushixiang f95b75b832 重构服务监控数据 2025-12-12 23:24:43 +08:00
dushixiang 9c644bb5b5 切换时序数据存储为victoriametrics 2025-12-12 21:37:58 +08:00
yii 3c99526fc6 修复部分设备读取温度失败导致的忽略全部设备温度问题 2025-12-09 16:21:45 +08:00
yii 524dbe65e6 新增NPU温度识别 2025-12-09 16:13:31 +08:00
yii c7da186eef 修复探针温度类型识别错误 2025-12-09 15:59:25 +08:00
dushixiang 93fb4fc29f 优化服务监控,修复修改探针范围无效的问题 2025-12-07 18:11:15 +08:00
dushixiang d296b781ac 修复Windows环境下磁盘采集的默认配置 2025-12-06 18:48:22 +08:00
dushixiang ae089e9408 温度采集适配 N1 盒子 2025-12-06 18:26:51 +08:00
dushixiang dffb53a309 修复 Linux 温度采集 2025-12-06 18:05:39 +08:00
dushixiang 6b3fd9e730 优化温度采集和渲染 2025-12-06 17:49:46 +08:00
dushixiang d10fad98ba 在 Linux 环境增加自动配置 ICMP 权限的逻辑 2025-12-06 15:20:15 +08:00
dushixiang 6374fed87c 处理 ICMP 检测失败的问题,增加特权模式重试。 2025-12-06 12:32:38 +08:00
dushixiang fdafca0337 优化磁盘数据采集和展示 2025-12-06 12:03:34 +08:00
dushixiang 5d51ab671b 增加自定义磁盘采集白名单 2025-12-06 11:28:13 +08:00
dushixiang ef94b7bf7c 增加 DDNS 功能 2025-12-04 22:48:39 +08:00
dushixiang 3032e18cff 优化告警,增加告警记录
恢复详情页面的 gpu 和温度数据
2025-12-03 18:42:34 +08:00
dushixiang 56ea052ede 修改探针最大重连等待时间为1分钟 2025-12-02 22:12:44 +08:00