主 题:【komari 接手第一天】agent 架构整理结果
发 布 者:steve1996
标签分类: 日常
时 间:2026-09-19 22:56:49
内容预览:agent 装在需要被监控的服务器上,采集这台机器的各种运行数据,上传给服务端面板。以下是架构整理的结果:cmd/ —— 入口层,负责解析命令行、读懂用户输入的是什么命令,再调用 internal 里对应的业务逻辑;这一层本身不该有业务逻辑,只做转发,是很薄的一层internal/app/ —— 核心业务逻辑所在,启动采集器采集机器数据,再创建上报器把这些数据发送到服务端collector/ —— 负责采集这台机器的各项指标,比如 CPU、内存、磁盘、GPU 使用情况,采完就完事,不管怎么发出去config/ —— 定义了 agent 要用到的所有配置参数,比如连哪个面板地址(Endpoint)、用哪个 Token 认证、多久采集一次数据(Interval),并负责从命令行/文件/环境变量里读进来、读完校验一遍connectivity/ —— 统一管理和服务端的连接方式(HTTP、WebSocket、用哪个 DNS、优先 IPv4 还是 IPv6),别的模块要发请求就直接用它,不用各写一套discovery/ —— 用户只需给一个发现密钥,agent 就自动拿着密钥去连接服务端、完成注册reporter/ —— 负责把 collector 采到的数据整理好,通过和服务端的连接发送出去,负责"数据怎么发"这一步rpc/v2/ —— 定义 agent 和服务端沟通用的消息格式(请求、响应、事件),reporter 和 task 发消息前都要按这个格式打包task/ —— 目前只有一个任务:ping 一个目标服务器(支持 ICMP、TCP、HTTP 三种方式),拿到延迟结果version/ —— 就存了一个当前版本号,编译的时候写进去,运行时上报给服务端pkg/idna/ —— 跟这个 agent 业务完全无关、可以单独拿走用的小工具功能上的两个改动除了目录结构的整理,这次还砍掉
直达链接: https://www.nodeseek.com/post-937656-1
发 布 者:steve1996
标签分类: 日常
时 间:2026-09-19 22:56:49
内容预览:agent 装在需要被监控的服务器上,采集这台机器的各种运行数据,上传给服务端面板。以下是架构整理的结果:cmd/ —— 入口层,负责解析命令行、读懂用户输入的是什么命令,再调用 internal 里对应的业务逻辑;这一层本身不该有业务逻辑,只做转发,是很薄的一层internal/app/ —— 核心业务逻辑所在,启动采集器采集机器数据,再创建上报器把这些数据发送到服务端collector/ —— 负责采集这台机器的各项指标,比如 CPU、内存、磁盘、GPU 使用情况,采完就完事,不管怎么发出去config/ —— 定义了 agent 要用到的所有配置参数,比如连哪个面板地址(Endpoint)、用哪个 Token 认证、多久采集一次数据(Interval),并负责从命令行/文件/环境变量里读进来、读完校验一遍connectivity/ —— 统一管理和服务端的连接方式(HTTP、WebSocket、用哪个 DNS、优先 IPv4 还是 IPv6),别的模块要发请求就直接用它,不用各写一套discovery/ —— 用户只需给一个发现密钥,agent 就自动拿着密钥去连接服务端、完成注册reporter/ —— 负责把 collector 采到的数据整理好,通过和服务端的连接发送出去,负责"数据怎么发"这一步rpc/v2/ —— 定义 agent 和服务端沟通用的消息格式(请求、响应、事件),reporter 和 task 发消息前都要按这个格式打包task/ —— 目前只有一个任务:ping 一个目标服务器(支持 ICMP、TCP、HTTP 三种方式),拿到延迟结果version/ —— 就存了一个当前版本号,编译的时候写进去,运行时上报给服务端pkg/idna/ —— 跟这个 agent 业务完全无关、可以单独拿走用的小工具功能上的两个改动除了目录结构的整理,这次还砍掉
直达链接: https://www.nodeseek.com/post-937656-1