agent
用于采集机器负载监控指标
每隔60秒push到transfer
agent与transfer建立长连接
agent提供 http接口/v1/push 用于接收用户手工push的一些数据,然后通过长连接迅速转发给trasfer
transfer
数据转发服务
按照hash规则进行数据分片
将分片后的数据分别push到 graph,judge等组件
graph
存储绘图数据的组件
接收transfer组件推送上来的监控数据
同时处理api组件的查询请求,返回绘图数据
API
提供统一的restAPI操作接口
比如:api组件接收查询请求,根据一致性哈希算法去相应的graph实例查询不同metric的数据
然后汇总拿到的数据,最后统一返回给用户
dashboard
仪表盘
HBS
心跳服务器
所有的agent都会连接到HBS
每分钟发一次心跳请求
Judage
用于告警判断
agent将数据push给transfer
trasfer不但会转发给graph组件来绘图,还会转发给Judage用于判断是否触发告警
Alarm
用于处理告警event的
judage产生的告警event写入redis
alarm 从redis读取处理,并进行不同渠道的发送(微信,钉钉,米聊)
Task
是监控系统一个重要的辅助模块
定时任务
实现的功能如下:
index更新--包括图表索引的全量更新和垃圾索引清理
falcon服务组件的自身状态数据采集--定时采集trasfer,graph,task三个服务的内部状态
自监控
Gateway
多IDC时,可能会遇到“网络质量差”“公网ACL不通”
这时,可以在分区内部署一套数据路由服务(gateway)
接收本分区内的所有流量(包括所有agent流量)
然后通过公网(开通ACL)
将数据push给中心的trasfer
Nodata
用于检测监控数据的上报异常
nodata和实时报警judage模块协同工作
过程为:
配置了nodata的采集项超时未上报数据,nodata生成一条默认的模拟数据
用户配置相应的报警策略,收到mock数据就产生了报警
采集项上报异常检测,作为judage模块的一个必要补充,能够使judage的实时报警功能更加可靠,完善
Aggregator
集群聚合模块
聚合某个集群下的所有机器的某个指标的值,提供一种集群视角的监控体验
Agent-update
用于管理falcon-agent
agent-update也有一个agent:ops-update,
可以看做是一个超级agent,用于管理其他agent的agent
ops-update推荐在装机的时候一起安装上