【小米开源监控系统】open-falcon

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

  1. 可部署多实例做集群
  2. 需要连接数据库graph
transfer 1.接收agent传来的数据,转发数据到后端的Graph和Judge
query 1.查询各个graph数据,提供了一个统一的http查询接口:query组件接收到用户的查询请求后,会从后端的多个graph,查询相应数据,聚合后,在返回给用户
Task
  1. index更新;包括图标索引的"全量更新"和"垃圾索引清理"
  2. falcon服务组件自身状态数据采集;主要采集tranfer、graph、task三个服务的内部状态
  3. falcon自检控任务
1.需要连接graph库
dashboard 前端界面
  1. 需要python虚拟环境
  2. 需要连接数据库dashboard
组件名称(报警组件) 功能 备注
Sender 1.报警发送模块,控制并发度,提供发送的缓冲queue
uic(fe) 1.用户组管理,单点登录 1.需要连接数据库uic
portal 1.配置报警策略,管理机器分组的web端
  1. 需要连接数据库falcon-portal
  2. 需要python虚拟环境
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

【小米开源监控系统】open-falcon的相关文章

小米开源监控系统Open-Falcon安装使用笔记

前言 近期爆出Zabbix有严重bug,加上一直对zabbix的性能.UI不满.所以这次想钻研一下最近很火的open-falcon,源于小米公司的开源项目,赞一个. 一.官网介绍 监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供翔实的数据用于追查定位问题.监控系统作为一个成熟的运维产品,业界有很多开源的实现可供选择.当公司刚刚起步,业务规模较小,运维团队也刚刚建立的初期,选择一款开源的监控系统,是一个省时省力,效率最高的方案.之后,随着业务规模的持续快速

小米开源监控open-falcon

小米开源监控系统Open-Falcon安装使用笔记 07net01.com 发布于 2016-10-25 18:42:03 分类:IT技术 阅读(88) 评论 前言 近期爆出Zabbix有严重bug,加上一直对zabbix的性能.UI不满.所以这次想钻研一下最近很火的open-falcon,源于小米公司的开源项目,赞一个. 一.官网介绍 监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供翔实的数据用于追查定位问题.监控系统作为一个成熟的运维产品,业界有很多

开源监控系统中 Zabbix 和 Nagios 哪个更好?

监控平台的话,各有优劣,但基本都可以满足需求.等达到一定监控指标后,发现,最困难的是监控项目的管理. CMDB中小规模(服务器<=1k):Zabbix大规模(1k>=服务器<=10k):Nagios进行二次开发超大规模(服务器>=10k):开发适应自己平台的监控软件吧另推荐个牛逼的东西:http://prometheus.io 作者:好撑链接:https://www.zhihu.com/question/19973178/answer/131911060来源:知乎著作权归作者所有.

小米open-falcon监控系统接入手册

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Helvetica; color: #000000 } span.s1 { } 一.新项目接入 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Helvetica; color: #000000 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Helvetica; colo

大众点评实时监控系统CAT的那些坑

首先,感谢大众点评开源监控系统CAT.CAT是一款非常使用的功能建全的监控系统.作为一个知名的开源软件,真的是太差了. 想把CAT用起来,没有多年的Java经验是不行的.先吐槽一下,再写一篇如何用的文章. 从 https://github.com/dianping/cat 开始,就会碰到种种"坑". 第一坑,https://github.com/dianping/cat 上显示持续集成是失败的.(因为build的使用要用aliyun 的 maven 源才行.) 尝试用master编译成

庖丁解牛(一):监控系统

好朋友"雪糕"是前Baidu的高工,当年我们一起参与构建了一个庞大的运维自动化系统Noah.转载一些他的关于监控系统的感悟,我也深有同感. 我们在后来也用Python写了个简易版:51reboot/rebootMon-4 · GitHub 最近借着出去分享的机会,画了张简化的监控系统架构图: 写在前面 我从事运维自动化相关的工作,也已经8年了.当初刚开始做的时候,运维开发(devops)这词还不火.很少人知道.国内对运维的理解,也就是机房.服务器.苦逼的7*24小时值班.甚至当时还流传

庖丁解监控系统(四)

这一篇我们来聊聊监控系统的架构.欢迎大家加入运维开发讨论交流群来交流,群号 365534424,本文仅授权51reboot.51cto上发布. 架构这个词太大了,这里我们缩小一下,只来谈谈宏观的监控系统整体架构.在这个范围里面,web由于负责统一的系统管理和操作功能,缩减为一个模块. 最简单的架构如下图 这是监控系统第一层的架构.比照百度地图的话,我们可以认为这个是全国地图.最粗粒度的几个模块就是这三个.web.数据采集.数据处理. PUSH  PULL 我们先来关注数据采集模块到数据处理和报警

Zabbix监控系统深度实践

Zabbix监控系统深度实践(企业级分布式系统自动化运维必选利器,大规模Zabbix集群实战经验技巧总结,由浅入深全面讲解配置.设计.案例和内部原理) 姚仁捷 著  ISBN 978-7-121-24013-3 2014年8月出版 定价:69.00元 364页 16开 编辑推荐 国内最大规模Zabbix集群负责人力作 全面讲解Zabbix配置应用,深入剖析Zabbix内部原理 用真实工作需求驱动,以独家实践案例指引,助您监控利器出鞘 Zabbix是目前最流行的分布式图形化开源监控系统解决方案,它

天兔(Lepus)数据库监控系统V3.0正式发布

Lepus是一个由Python+PHP开发的数据库企业级监控系统,是作者继MYSQLMTOP开源监控系统(www.mtop.cc)之后,进行了代码重构,重新开发的一套企业系统.目前已支持监控MySQL和Mongodb.该系统目前可以免费监控5台MySQL和不限主机数量的MongoDB.监控系统由Python实现多进程数据采集和告警,PHP实现WEB展示和管理.数据库服务器无需安装任何Agent,只需在监控WEB界面配置相关数据库信息,启动监控进程后,即可对数据库的健康状态和性能状态进行时时监控.