feat: Phase 6 Agent 系统信息+进程监控采集器

- 新增 collector/system.go: SystemCollector(OS/内核/ulimit) + ProcessCollector(Top 5 CPU/内存)
- 模型新增 SystemStat + ProcessStat + ProcessInfo
- Report 结构新增 System + Processes 字段
- Agent 启动时采集系统信息,每周期采集进程列表
This commit is contained in:
attacker committed 2026-06-18 13:03:14 +00:00
1 parent 2e71371257
commit 06d7451cf9
3 files changed
+265

No files matched your search

+22
View File
@@ -77,6 +77,18 @@ func main() {
diskIOCollector := collector.NewDiskIOCollector()
rep := reporter.New(*server, *token, logger)
// 系统信息(仅启动时采集一次)
sysCollector := collector.NewSystemCollector()
var systemStat model.SystemStat
if stat, err := sysCollector.Collect(); err == nil {
systemStat = stat
logger.Printf("系统信息: OS=%s Kernel=%s Arch=%s nofile=%d nproc=%d",
stat.OS, stat.Kernel, stat.Arch, stat.UlimitNofile, stat.UlimitNproc)
}
// 进程采集器
procCollector := collector.NewProcessCollector()
// 中间件采集器(可选)
var mwCollector *collector.MiddlewareCollector
if *redisFlag != "" || *mysqlFlag != "" {
@@ -154,6 +166,16 @@ func main() {
}
}
// 系统信息(每次上报附带)
report.System = systemStat
// 进程采集
if procStat, err := procCollector.Collect(); err != nil {
logger.Printf("进程采集异常: %v", err)
} else {
report.Processes = procStat
}
if err := rep.Send(ctx, report); err != nil {
logger.Printf("上报失败: %v", err)
return