01:open-falcon入门篇
open-falcon其他篇
目录:
1.1 openfalcon介绍返回顶部
openfalcon官网: https://book.open-falcon.org/zh/
1、openfalcon特点
1. 数据采集免配置: 无需预定义agent自动发现、支持plugin、支持主动push
2. 容量水平扩展: 生产环境每秒20多万此数据收集、告警、存储、绘图
3. 告警策略易于管理: 支持策略模板、模板继承和覆盖、报警接收人为用户组
4. 报警事件自动化处理: 触发阀值之后支持callback,便于嵌入自动化逻辑
5. 人性化告警设置: 支持最大告警次数、告警级别、告警恢复通知、告警暂停、不同时段不同阀值、支持维护周期、支持报警合并
6. 历史数据高效查询: 秒级返回上百个指标一年的历史数据
7. 架构设计高可用: 整个系统同核心单点、易运维、易部署
2、openfalcon与zabbix比优点
1. 模板支持继承的同时支持覆盖策略项
2. 数据采集免配置,节省人力成本
3. 较为强大的数据模型
4. tag化描述告警策略each(metric=qps project=falcon module=jedge)>100
5. 水平扩展,多IDC支持
1.2 open-falcon架构返回顶部
part01:数据采集&上报
1、agent(数据采集组件):golang项目
1. 需要监控的服务器都要安装falcon-agent,falcon-agent是一个golang开发的daemon程序,用于自发现的采集单机的各种数据和指标
2. agent提供了一个http接口/v1/push用于接收用户手工push的一些数据,然后通过长连接迅速转发给Transfer。
3. 部署好agent后,能自动获取到系统的基础监控指标,并上报给transfer,agent与transfer建立了TCP长连接,每隔60秒发送一次数据到transfer。
2、 transfer(数据上报)
1. transfer进程负责分发从agent上送的监控指标数据,并根据哈希分片。
2. 将数据分发给judge进程和graph进程,供告警判定和绘图。
部署说明:
部署完成transfer组件后,请修改agent的配置,使其指向正确的transfer地址。
在安装完graph和judge后,请修改transfer的相应配置、使其能够正确寻址到这两个组件。
part02: 告警
3、judge(告警判断)
1.Judge从Heartbeat server获取所有的报警策略,并判断transfer推送的指标数据是否触发告警。
2. 若触发了告警,judge将会产生告警事件,这些告警事件会写入Redis(使用Redis消息队列)。
3. redis中告警事件,供处理告警事件的Alarm进程转发告警消息,或是Email,或是手机短信等。
部署说明:
Judge监听了一个http端口,提供了一个http接口:/count,访问之,可以得悉当前Judge实例处理了多少数据量。
推荐一个Judge实例处理50万~100万数据,用个5G~10G内存的服务器。
4、Alarm(告警)
https://book.open-falcon.org/zh_0_2/distributed_install/alarm.html
1. Alarm进程监听Redis中的消息队列,并将judge产生的告警事件转发给微信、短信和邮件三种REST接口,REST接口才是具体的发送动作。
2. 另外,关于告警,每条告警策略都会定义不同的优先级,Redis中的消息队列也按优先级划分。
3. Alarm不仅消费告警事件,优先级比较低的报警,其合并逻辑都是在alarm中做,所以目前Alarm进程只能部署一个实例。
4. 已经发送出去的告警事件,Alarm将会负责写入MySQL。
说明:
1)我们在配置报警策略的时候配置了报警级别,比如P0/P1/P2等等,每个及别的报警都会对应不同的redis队列
2)alarm去读取这个数据的时候我们希望先读取P0的数据,再读取P1的数据,最后读取P5的数据,因为我们希望先处理优先级高的。
3)已经发送的告警信息,alarm会写入MySQL中保存,这样用户就可以在dashboard中查阅历史报警。
4)针对同一个策略发出的多条报警,在MySQL存储的时候,会聚类;历史报警保存的周期,是可配置的,默认为7天。
注:alarm是个单点。对于未恢复的告警是放到alarm的内存中的,alarm还需要做报警合并,故而alarm只能部署一个实例。后期需要想办法改进。
part03:归档&绘图
5、graph(数据存储&归档)
1. graph进程接收从transfer推送来的指标数据,操作rrd文件存储监控数据。
2. graph也为API进程提供查询接口,处理query组件的查询请求、返回绘图数据。
6、API(提供统一的restAPI操作接口) :go的后端模块
1. API组件,提供统一的绘图数据查询入口 (提供http接口))。
2. API组件接收查询请求,根据一致性哈希算法去相应的graph实例查询不同metric的数据,然后汇总拿到的数据,最后统一返回给用户。
补充说明:
部署完成api组件后,请修改dashboard组件的配置、使其能够正确寻址到api组件。
请确保api组件的graph列表 与 transfer的配置 一致。
8、dashboard(趋势图web界面):python的web项目
1. dashboard是面向用户的查询界面,在这里,用户可以看到push到graph中的所有数据,并查看其趋势图。
2. dashboard模块配置 报警策略,并把策略同步给:aggregator、nodata、grafana。
9、Aggregator
1. 集群聚合模块,聚合某集群下的所有机器的某个指标的值,提供一种集群视角的监控体验。
10、Nodata
1. nodata用于检测监控数据的上报异常。
2. nodata和实时报警judge模块协同工作,过程为: 配置了nodata的采集项超时未上报数据,nodata生成一条默认的模拟数据;
3. 用户配置相应的报警策略,收到mock数据就产生报警。
4. 采集项上报异常检测,作为judge模块的一个必要补充,能够使judge的实时报警功能更加可靠、完善。
11、grafana(生成更详细图形)
part04:报警策略配置
12、web portal(报警策略配置):最新open-falcon中此模块功能合并到Dashboard模块中
1. web portal是python写的django项目,用户可以在这里配置报警策略,存入mysql
2. Portal的数据库中有一个host表,维护了公司所有机器的信息,比如hostname、ip等等。
3. HBS会将agent发送心跳信息给HBS的时候的hostname、ip等信息告诉HBS,HBS负责更新host表。
13、hbs:Heartbeat server(心跳服务)
1. 功能1: agent发送心跳信息给HBS的时,会把hostname、ip、agent version、plugin version等信息告诉HBS,HBS负责更新web portal 的host表。
2. 功能2: hbs会从从dashboard模块中获取 报警策略配置 并缓存到本地,所有Judge从hbs中获取报警策略
01:open-falcon入门篇的更多相关文章
- Java自动化测试框架-01 - TestNG之入门篇 - 大佬的鸡肋,菜鸟的盛宴(详细教程)
TestNG是什么? TestNG按照官方的定义: TestNG是一个测试框架,其灵感来自JUnit和NUnit,但引入了一些新的功能,使其功能更强大,使用更方便. TestNG是一个开源自动化测试框 ...
- 01 spring security入门篇
1. 环境搭建 使用SpringBoot搭建开发环境,只需在pom.xml添加如下依赖即可. <?xml version="1.0" encoding="UTF-8 ...
- Redis 笔记 01:入门篇
Redis 笔记 01:入门篇 ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
- 1. web前端开发分享-css,js入门篇
关注前端这么多年,没有大的成就,就入门期间积累了不少技巧与心得,跟大家分享一下,不一定都适合每个人,毕竟人与人的教育背景与成长环境心理活动都有差别,但就别人的心得再结合自己的特点,然后探索适合自己的学 ...
- [Maven]Apache Maven 入门篇
作者:George Ma 上 写这个 maven 的入门篇是因为之前在一个开发者会的动手实验中发现挺多人对于 maven 不是那么了解,所以就有了这个想法.这个入门篇分上下两篇.本文着重动手,用 ma ...
- [转]Apache Maven 入门篇 ( 上 )
原文地址:Apache Maven 入门篇 ( 上 ) 作者:George Ma 写这个 maven 的入门篇是因为之前在一个开发者会的动手实验中发现挺多人对于 maven 不是那么了解,所以就有了这 ...
- web前端开发分享-css,js入门篇(转)
转自:http://www.cnblogs.com/jikey/p/3600308.html 关注前端这么多年,没有大的成就,就入门期间积累了不少技巧与心得,跟大家分享一下,不一定都适合每个人,毕竟人 ...
- 【Tools】Apache Maven 入门篇 ( 上 )
作者:George Ma 写这个 maven 的入门篇是因为之前在一个开发者会的动手实验中发现挺多人对于 maven 不是那么了解,所以就有了这个想法.这个入门篇分上下两篇.本文着重动手,用 mave ...
- 腾讯QQ会员技术团队:人人都可以做深度学习应用:入门篇(下)
四.经典入门demo:识别手写数字(MNIST) 常规的编程入门有"Hello world"程序,而深度学习的入门程序则是MNIST,一个识别28*28像素的图片中的手写数字的程序 ...
随机推荐
- git 创建新分支并推送到远程分支
git branch test git checkout test git push origin test:test git branch --set-upstream-to origin/te ...
- 公司中springcloud项目遇到的问题
1.更改maven的.m2下的settings.xml文件,程序就可以运行,是不是很神奇?
- Github Upload Large File 上传超大文件
Github中单个文件的大小限制是100MB,为了能突破这个限制,我们需要使用Git Large File Storage这个工具,参见这个官方帖子,但是按照其给的步骤,博主未能成功上传超大文件,那么 ...
- canvas霓虹雨
在codepen上看到一个Canvas做的下雨效果动画,感觉蛮有意思的.就研究了下,这里来分享下,实现技巧.效果可以见下面的链接. 霓虹雨: http://codepen.io/natewiley/f ...
- vue动态组件切换(选项卡)
vue的动态组件 <template :is='变量'></template> 可以通过改变变量,来改变template的替换内容.达到选项卡的功能 如果想要切换保持不重新创建 ...
- Ubuntu常用操作命令
解压文件: tar -zxvf 文件名 -C 指定目录 从当前环境进入root环境: su,然后输入root密码
- 调用微信定位功能 lat _ lng php方法
{:wx_jssdk_config("false")} //最主要的这一句 没有这一句在微信浏览器里是无法调用的定位功能的.下面有这个方法说明 <script> wx. ...
- dokuwiki 安装配置
dokuwiki如果在用户注册的时候,发生"发送密码邮件时产生错误.请联系管理员!",那么需要配置sendmail. 在linux平台下,参考这个帖子https://www.dok ...
- git的简单玩法
本篇笔记参考廖雪峰的git教程,为方便查看将命令部分提取并记录下来. 无意对原作的版权侵犯,如需要学习请到廖雪峰网站学习git 创建git仓库 # mkdir learngit && ...
- bootstrap 中关于 HTML5 aria-* and role的用法
HTML5 aria-* and role 在bootstrap中看到role和aria-*,不知道干嘛的.google一下,发现aria的意思是Accessible Rich Internet Ap ...