1)优势
·强大灵活的数据采集:自动发现,支持falcon-agent、snmp、支持用户主动push、用户自定义插件支持、opentsdb data model like(timestamp、 endpoint、metric、key-value tags) ·水平扩展能力:支持每个周期上亿次的数据采集、告警判定、历史数据存储和查询 ·高效率的告警策略管理:高效的portal、支持策略模板、模板继承和覆盖、多种告警方式、支持callback调用 ·人性化的告警设置:最大告警次数、告警级别、告警恢复通知、告警暂停、不同时段不同阈值、支持维护周期 ·高效率的graph组件:单机支撑200万metric的上报、归档、存储(周期为1分钟) ·高效的历史数据query组件:采用rrdtool的数据归档策略,秒级返回上百个metric一年的历史数据 ·dashboard:多维度的数据展示,用户自定义Screen ·高可用:整个系统无核心单点,易运维,易部署,可水平扩展 ·开发语言: 整个系统的后端,全部golang编写,portal和dashboard使用python编写
2)架构图
2.1)官网架构图
2.2)网友所画架构图
2.3)基础组件
组件名称(绘图组件) | 功能 | 备注 |
agent |
1.agent采集机器监控指标,每隔60秒push给Transfer 2.agent和tranfer建立长连接,传输数据比较快 3.agent提供了一个http接口/v1/push接收用户手工push数据,然后转发给tranfer |
|
graph |
1.graph组件是存储绘图数据、历史数据的组件 2.tranfer会把接收到的数据转发给granph |
|
transfer | 1.接收agent传来的数据,转发数据到后端的Graph和Judge | |
query | 1.查询各个graph数据,提供了一个统一的http查询接口:query组件接收到用户的查询请求后,会从后端的多个graph,查询相应数据,聚合后,在返回给用户 | |
Task |
|
1.需要连接graph库 |
dashboard | 前端界面 |
|
组件名称(报警组件) | 功能 | 备注 |
Sender | 1.报警发送模块,控制并发度,提供发送的缓冲queue | |
uic(fe) | 1.用户组管理,单点登录 | 1.需要连接数据库uic |
portal | 1.配置报警策略,管理机器分组的web端 |
|
hbs | 1.心跳服务器:hbs有2个地址,1个http地址,agent和hbs的rpc地址通信 | 1.需要连接falcon-portal库 |
judge | 1.报警判断模块,judge依赖于HBS,所以得先搭建HBS | 1.可部署多实例 |
links | 1.Links是为报警合并功能写的组件。如果你不想使用报警合并功能,这个组件是无需安装的 | 1.需要连接falcon_links |
alarm | 1.报警事件处理器 | 1.alarm模块是处理报警event的,judge产生的报警event写入redis,alarm从redis读取,这个模块被业务搞得很糟乱,各个公司可以根据自己公司的需求重写 |
Nodata |
1.nodata用于检测监控数据的上报异常。nodata和实时报警judge模块协同工作,过程为: 配置了nodata的采集项超时未上报数据,nodata生成一条默认的模拟数据;用户配置相应的报警策略,收到mock数据就产生报警。采集项上报异常检测,作为judge模块的一个必要补充,能够使judge的实时报警功能更加可靠、完善 | |
Aggregator |
1.集群聚合模块。聚合某集群下的所有机器的某个指标的值,提供一种集群视角的监控体验 |
3)安装
*环境配置* **安装redis** 源码和rpm包都可以,视情况而定 **安装mysql** 1.源码和rpm包都可以,视情况而定 2.初始化mysql表结构 *mysql -uroot -proot < 1_uic-db-schema.sql/2_portal-db-schema.sql/3_dashboard-db-schema.sql/4_graph-db-schema.sql/5_alarms-db-schema.sql/ links-db-schema.sql* ******************************************************************************************************************************************* *后端配置* **下载官方源码包** 1.下载open-falcon-v0.2.1.tar.gz、open-falcon-v0.2.0.tar.gz 2.解压到/home/work/open-falcon 3.修改配置文件,一般都是需要指定"数据库密码" 4.启动open-falcon:./open-falcon start(启动全部服务) ./open-falcon check(检查服务启动状态) ****************************************************************************************************************************************** *前端配置* **下载源码包** 1.git clone 2.安装依赖包:python-devel、openldap-devel、mysql-devel、virtualenv(python官网下载tar包)、yum groupinstall "Development tools" 3.安装前端flask模块:cat pip_requirements.txt Flask==0.10.1 Flask-Babel==0.9 Jinja2==2.7.2 Werkzeug==0.9.4 gunicorn==19.1.1 python-dateutil==2.2 requests==2.3.0 mysql-python python-ldap 4.修改rrd/config.py配置文件 ## 根据实际情况,修改PORTAL_DB_*, 默认用户名为root,默认密码为"".还有数据库主机 ## 根据实际情况,修改ALARM_DB_*, 默认用户名为root,默认密码为"",还有数据库主机 ## API_ADDR = os.environ.get("API_ADDR","http://10.59.2.133:8080/api/v1"),此处需要改为open-falcon的服务端ip 5.启动dashboard ./control start
4)监控客户端主机
1.解压open-falcon-v0.2.0.tar.gz 2.修改agent配置文件 "heartbeat": { "enabled": true, "addr": "10.59.2.133:6030", #服务端ip "interval": 60, "timeout": 1000 }, "transfer": { "enabled": true, "addrs": [ "10.59.2.133:8433" #服务端ip ], "interval": 60, "timeout": 1000 3.启动agent服务即可 ./open-falcon start agent即可 *查看日志:agent.log是否正常*
时间: 2024-10-26 02:58:38