open-falcon是小米开源的监控工具。open-falcon有三种安装方式,一种是单机安装(分后端和前端安装,建议各一台服务器)、一种是Docker安装、最后一种是在多台机器上分布式安装。

重点:本案介绍第一种,单机安装(其实是分两台服务器,一台安装后端服务、一台是安装前端服务)。

分布式安装也很简单,就是把open-falcon二进制包git下来,每台服务器只留需要的模块文件夹和open-falcon执行脚本,然后更改模块文件夹下配置文件,最后启动即可。生成环境环境一般建议分布式部署,参考链接:https://book.open-falcon.org/zh_0_2/distributed_install/

open-falcon监控一般是用各种插件。

架构图:

open-falcon官网架构图

互联网上图

组件描述表:组件名称用途服务端口备注

Transfer数据接收端,转发数据到后端的Graph和Judgehttp: 6060

rpc: 8433

socket: 4444

Graph操作rrd文件存储监控数据http: 6071

rpc:6070

Query查询各个Graph数据,提供统一http查询接口http: 9966

Dashboard查询监控历史趋势图的webhttp: 8081需要python环境,需要连接数据库dashborad实例、graph组件

Task负载一些定时任务,索引全量更新、垃圾索引清理、自身组件监控等http: 8082需要连接数据库graph实例

Aggregator集群聚合模块http: 6055

Alarm告警http: 9912

ApiAPIhttp: 8080

GatewayGatewayhttp: 16060

Hbs心跳服务器6030

Judge告警判断http: 6081

rpc: 6080

Nodata告警异常处理http: 6090

Mysql数据库3306

Redis缓存服务器6379

工作原理:

Falcon-agent(客户端):

每台服务器,都有安装falcon-agent,falcon-agent是一个golang开发的daemon程序,用于自发现的采集单机的各种数据和指标,这些指标包括不限于以下几个方面,共计200多项指标。

CPU相关

磁盘相关

IO

Load

内存相关

网络相关

端口存活、进程存活

ntp offset(插件)

某个进程资源消耗(插件)

netstat、ss 等相关统计项采集

机器内核配置参数

只要安装了falcon-agent的机器,就会自动开始采集各项指标,主动上报,不需要用户在server做任何配置(这和zabbix有很大的不同),这样做的好处,就是用户维护方便,覆盖率高。当然这样做也会server端造成较大的压力,不过open-falcon的服务端组件单机性能足够高,同时都可以水平扩展,所以自动多采集足够多的数据,反而是一件好事情,对于SRE和DEV来讲,事后追查问题,不再是难题。

另外,falcon-agent提供了一个proxy-gateway,用户可以方便的通过http接口,push数据到本机的gateway,gateway会帮忙高效率的转发到server端。

Transfer(传输者):

falcon-agent将数据上报给transfer,它们之间建立的长链接。

transfer,接收客户端发送的数据,做一些数据规整,检查之后,转发到多个后端系统去处理。在转发到每个后端业务系统的时候,transfer会根据一致性hash算法,进行数据分片,来达到后端业务系统的水平扩展。

transfer 提供jsonRpc接口和telnet接口两种方式,transfer自身是无状态的,挂掉一台或者多台不会有任何影响,同时transfer性能很高,每分钟可以转发超过500万条数据。

transfer目前支持的业务后端,有三种,judge、graph、opentsdb。judge是我们开发的高性能告警判定组件,graph是我们开发的高性能数据存储、归档、查询组件,opentsdb是开源的时间序列数据存储服务。可以通过transfer的配置文件来开启。

transfer的数据来源,一般有三种:

falcon-agent采集的基础监控数据

falcon-agent执行用户自定义的插件返回的数据

client library:线上的业务系统,都嵌入使用了统一的perfcounter.jar,对于业务系统中每个RPC接口的qps、latency都会主动采集并上报

说明:上面这三种数据,都会先发送给本机的proxy-gateway,再由gateway转发给transfer。

Judge集群(告警判断):

falcon-agent将数据上报给transfer后,transfer转发给Judge集群,使用一致性hash做数据分片。一个实例只处理一部分数据。

Graph集群(数据存储、规定、查询接口):

falcon-agent将数据上报给transfer后,transfer转发给Graph集群,使用一致性hash做数据分片。一个实例只处理一部分数据。rrdtool的数据归档方式存储,同时提供RPC接口。

Alarm(告警):

Judge判断后,放到redis队列。alarm从redis队列读取报警事件做处理,该发短信发短信、该发邮件发邮件,该回调接口就回调。告警合并也在alarm里面做的,专门发送报警的sender模块,告警合并依赖的links模块。

Query:

因为Graph做过分片处理,query要采用和transfer一致的一致性hash数据分片。对外提供一个http接口。query是go写的后端模块。

Dashborad:

在dashborad里面查询监控数据,是python做的web。

Portal:

portal是python做的web,配置监控策略,然后写入数据库。

Heartbeat server:

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

数据存储:

对于监控系统来讲,历史数据的存储和高效率查询,永远是个很难的问题!

数据量大:目前我们的监控系统,每个周期,大概有2000万次数据上报(上报周期为1分钟和5分钟两种,各占50%),一天24小时里,从来不会有业务低峰,不管是白天和黑夜,每个周期,总会有那么多的数据要更新。

写操作多:一般的业务系统,通常都是读多写少,可以方便的使用各种缓存技术,再者各类数据库,对于查询操作的处理效率远远高于写操作。而监控系统恰恰相反,写操作远远高于读。每个周期几千万次的更新操作,对于常用数据库(MySQL、postgresql、mongodb)都是无法完成的。

高效率的查:我们说监控系统读操作少,是说相对写入来讲。监控系统本身对于读的要求很高,用户经常会有查询上百个meitric,在过去一天、一周、一月、一年的数据。如何在1秒内返回给用户并绘图,这是一个不小的挑战。

open-falcon在这块,投入了较大的精力。我们把数据按照用途分成两类,一类是用来绘图的,一类是用户做数据挖掘的。

对于绘图的数据来讲,查询要快是关键,同时不能丢失信息量。对于用户要查询100个metric,在过去一年里的数据时,数据量本身就在那里了,很难1秒之类能返回,另外就算返回了,前端也无法渲染这么多的数据,还得采样,造成很多无谓的消耗和浪费。我们参考rrdtool的理念,在数据每次存入的时候,会自动进行采样、归档。我们的归档策略如下,历史数据保存5年。同时为了不丢失信息量,数据归档的时候,会按照平均值采样、最大值采样、最小值采样存三份。// 1分钟一个点存 12小时

c.RRA("AVERAGE", 0.5, 1, 720)

// 5m一个点存2d

c.RRA("AVERAGE", 0.5, 5, 576)

c.RRA("MAX", 0.5, 5, 576)

c.RRA("MIN", 0.5, 5, 576)

// 20m一个点存7d

c.RRA("AVERAGE", 0.5, 20, 504)

c.RRA("MAX", 0.5, 20, 504)

c.RRA("MIN", 0.5, 20, 504)

// 3小时一个点存3个月

c.RRA("AVERAGE", 0.5, 180, 766)

c.RRA("MAX", 0.5, 180, 766)

c.RRA("MIN", 0.5, 180, 766)

// 1天一个点存1year

c.RRA("AVERAGE", 0.5, 720, 730)

c.RRA("MAX", 0.5, 720, 730)

c.RRA("MIN", 0.5, 720, 730)

对于原始数据,transfer会打一份到hbase,也可以直接使用opentsdb,transfer支持往opentsdb写入数据。

open falcon mysql参数_Open-falcon原理介绍相关推荐

  1. open falcon mysql参数_open-falcon 监控MySQL及自定义监控指标

    1. open-falcon安装 2. 监控MySQL MySQL的监控完全可以自己写程序采集,然后调用open-falcon agent提供的上报接口进行上报.然而网上已经有开源的MySQL监控脚本 ...

  2. 水质七参数传感器的原理介绍与安装选点

    一.产品概述 1.水质pH传感器CK-PH-A1 pH传感器用于环境水质监测.酸/碱/盐溶液.化学反应过程中.工业生产过程中,能够满足大多数工业应用对在线pH测量的要求. 采用双高阻抗差动放大器,抗干 ...

  3. 海思Hi3511芯片参数和工作原理介绍

    Hi3511芯片参数 处理器系统: Hi3511/Hi3512处理器系统是基于高性能的ARM926EJ-S处理器平台搭建,处理器系统主要包含以下几个部分: ARM926 处理器:Hi3511/Hi35 ...

  4. 水质便携式常规五参数测定分析仪原理介绍

    水质检测中的常规五参数,包括:温度.pH.溶解氧.电导率.浊度.是水质污染检测的基本指标,在中国生态环境部发布的<环境监测仪器发展指南>中提出,"水质自动监测项目分为水质常规五参 ...

  5. FALCON组装参数学习

    FALCON组装参数学习 (2017-06-27 13:15:32) 转载▼   分类: 三代 ############################################ pa_DBsp ...

  6. LVS原理介绍及安装过程

    一.ARP技术概念介绍 为什么讲ARP技术,因为平常工作中有接触.还有就是LVS的dr模式是用到arp的技术和数据. 1.什么是ARP协议 ARP协议全程地址解析协议(AddressResolutio ...

  7. 《深入理解分布式事务》第二章 MySQL 事务的实现原理

    shua# <深入理解分布式事务>第二章 MySQL 事务的实现原理 文章目录 一.Redo Log 1.Redo Log 基本概念 2.Redo Log 基本原理 3.Redo Log ...

  8. online-DDL详细原理介绍及gh-ost讲解

    文章目录 1. MySQL online DDL 各版本介绍 1.1 online DDL in mysql 5.5 1.2 online DDL in mysql5.6 1.3 online DDL ...

  9. mysql的备份恢复原理_MySQL备份恢复-mysqldump原理

    +++++++++++++++++++++++++++++++++++++++++++ 标题:mysqldump对MySQL数据库备份恢复原理 时间:2019年2月23日 内容:mysqldump工具 ...

最新文章

  1. Oracle 数据库EM访问多个Instance
  2. DuiC 统一配置管理 2
  3. Vuex 2.0 源码分析
  4. java迭代器的原理_小学生之Java中迭代器实现的原理
  5. Spring Cloud 版本支持
  6. tab enter键出现
  7. C语言 判断一个数是否为素数
  8. 固件升级_洛达1562a固件升级支持空间音频
  9. shell初级-----更多结构化命令
  10. vue的自定义指令的坑
  11. 计算机科学导论的学习
  12. 最全勒索病毒解密工具
  13. 海龟交易法的“道”和“术”
  14. JVM3-类文件结构
  15. 计算机蓝屏了 怎么维修,电脑蓝屏怎么解决
  16. js中的_poto_和prototype的问题
  17. 智能手环的软硬件与产业
  18. 野火学习笔记(8) —— RCC —— 使用 HSE/HSI 配置时钟
  19. 【网络编程开发系列】好端端的MQTT-broker重新部署后居然出现TLS握手失败了
  20. 《算法图解》学习笔记(五):哈希表,小名散列表(附代码)

热门文章

  1. 网页抓取--3(定时器)
  2. 【蓝桥杯08】——工厂灯光控制系统
  3. 【20211106】在技术上是如何实现分布式事务_V3(TCC)
  4. codevs——T3111 CYD啃骨头
  5. PHOTOSHOP 500典例特制 EXE电子书[转载]
  6. ibmt60驱动安装
  7. Thinkpad T60
  8. C++ vector之删除元素
  9. 听说你连这个简单的SU建模都不会?!
  10. 简诉android源代码编译过程,Android源码编译过程及原理(二)