首先查看架构图如下:
agent 采集机器常见指标,支持日志监控,支持插件机制,支持业务通过接口直接上报数据, agent除了上报监控数据给transfer,还会上报本机信息给ams,注册本机信息到资产管理系统,另外就是与job模块交互,拉取要执行的任务,上报任务执行结果, rdb是用户资源中心,ams是资产管理系统,job是任务执行中心,同时agent与monapi也有交换,上报收集数据。
transfer提供rpc接口接收agent上报的数据,然后通过一致性哈希,将数据转发给多台tsdb和多台judge
tsdb 用于存储历史数据,支持配置为双写模式提升系统容灾能力,tsdb会把监控数据转发一份给index
index是索引模块,替换原来的mysql方案,在内存里构建索引,便于后续数据检索,性能大幅提升
judge是告警引擎,从monapi(portal)同步监控策略,然后对接收到的数据做告警判断,如满足阈值,则生成告警事件推到redis
monapi(alarm)从redis读取judge生成的事件,进行二次处理,补充一些元信息,生成告警消息,重新推回redis
各发送组件,比如mail-sender、sms-sender等,从redis读取告警消息,发送告警,抽出各类sender是为了后续定制方便
数据库使用mysql,主要存储的内容包括:用户信息、团队信息、树节点信息、告警策略、监控大盘、屏蔽策略、采集策略、部分组件心跳信息等
最后通过前端搭建的nginx,通过不同location将请求转发到不同后端
领取专属 10元无门槛券
私享最新 技术干货