监控 | open-falcon | 安装
1. 简介
主要看中了它的水平扩展,画图比zabbix要友好,告警支持简单压缩。
- 绿色:基础组件;
- 蓝色:作图链路
- 红色:报警链路
- 橙色:域名
1.1 基础组件
agent
每台实例上都需安装,agent从hbs
上拉取配置信息,采集数据后上报(push
)给transfer
。
transfer
transfer是一个无状态的集群,挂掉1台或多台均无影响。transfer接收agent上报的数据,然后使用一致性哈希进行数据分片、并把分片后的数据转发给graph、judge集群(transfer还会打一份数据到opentsdb)。类似zabbix里的proxy角色。transfer 提供jsonRpc
接口和telnet
接口两种方式
transfer集群可使用域名,让agent通过域名来访问,从而实现高可用性和自动切换,同时DNS还可以保证优先用本机房内的transfer
transfer的数据来源,一般有三种:
- falcon-agent采集的基础监控数据
- falcon-agent执行用户自定义的插件返回的数据
- client library:线上的业务系统,都嵌入使用了统一的perfcounter.jar,对于业务系统中每个RPC接口的qps、latency都会主动采集并上报
center-status
中心存储,包括mysql、redis。mysql用于存储配置信息、索引数据。redis用于报警缓存队列。
1.2 作图链路
graph
graph组件用于存储、归档作图数据,可以集群部署。每个graph实例会处理一个分片的数据: 接收transfer发送来的分片数据,归档、存储、生成索引;接受query对该数据分片的查询请求。
query
数据分片存储在graph上,用户查询起来比较麻烦。query负责提供一个统一的查询入口、屏蔽数据分片的细节。query的使用场景主要有:(1)dashboard图表展示 (2)使用监控数据做二次开发。
建议将query集群挂载到一个域名下。考虑到高可用,query至少部署两个实例(当前,两个实例部署的IDC、机架等需要负责高可用的规范)。
dashboard
dashboard用户监控数据的图表展示,是一个web应用
1.3 报警链路
judge
judge用于实现报警策略的触发逻辑
hbs
hbs是Open-Falcon的配置中心,负责 适配系统的配置