架构图

open-falcon - 图1

简化图

open-falcon - 图2

执行原理

  1. falcon-agent

数据采集组件,内置http接口,采集定义好的数据上报给transfer

  1. transfer

agent与transfer建立长链接,将数据汇报给transfer,transfer默认监听在:8433端口上,agent会通过jsonrpc的方式来push数据上来,transfer将数据传递给judge,和graph

  1. graph

graph组件存储绘图数据,历史数据.transfer会将接收的数据传给graph,监听端口为6071

  1. query

绘图数据的查询接口,因为graph分片存储,如果要传输给dashboard,需要query搜集数据并聚合在展示给用户

  1. dashboard

dashboard是面向用户的查询界面,在这里,用户可以看到push到graph中的所有数据,并查看其趋势图

  1. judge

Judge要做告警判断,需要先从portal数据库中读取报警策略,但是Judge实例比较多,都去读取数据库会造成很大压力,所以可以让heartbeat成为db cache缓存,heartbeat从数据库中读取数据缓存到内存,Judge调用heartbeat的rpc接口,获取报警策略,告警事件存入redis

  1. alarm

处理judge存入redis的告警事件

  1. sender

调用各个公司提供的mail-privider和sms-privider,按照某个并发度,从redis读取邮件,短信并发送,alarm生成的报警短信和报警邮件是直接写入redis即可,由sender来发送

  1. portal

配置报警策略写入数据库

  1. hbs

心跳服务器,falcon-agent每分钟都会发送心跳给heartbeat server,上报自己的版本、hostname、ip等。从heartbeat拉取要执行的插件和特殊采集项等。这些信息需要heartbeat访问 Portal的数据库要获取。Judge要做告警判断,需要先从portal数据库中读取报警策略,但是Judge实例比较多,都去读取数据库会造成很大压力,所以可以让heartbeat成为db cache缓存,heartbeat从数据库中读取数据缓存到内存,Judge调用heartbeat的rpc接口,获取报警策略