>

红米运转—互联网集团级监督系统实行(1)

- 编辑:乐百家599手机首页 -

红米运转—互联网集团级监督系统实行(1)

Samsung运营—互连网厂家级监督系统实施(1)

Introduction

监督检查连串是任何运行环节,以至整个产品生命周期中最器重的一环,事前即时预警开掘故障,事后提供可信赖的数据用于追查定位难题。监察和控制系统作为多少个早熟的运转产品,产业界有过多开源的完成可供选取。当公司刚好运转,业务规模相当的小,运转团队也恰恰确立的最初,采用一款开源的监察系统,是一个省时省力,功能最高的方案。之后,随着事情范围的不停快捷增进,监察和控制的对象也愈发多,越来越复杂,监控体系的接纳对象也从刚开始阶段少数的多少个SRE,增添为越多的DEVS,SRE。那时候,监察和控制系统的容积和用户的“使用频率”成了最佳杰出的难点。

监督体系产业界有广大头名的开源监察和控制系统。我们在早先时期,平昔在用zabbix,可是随着职业的快速腾飞,以及互联网商家故意的一些急需,现存的开源的监察和控制连串在性质、扩充性、和用户的使用频率方面,已经江淹梦笔支撑了。

因此,大家在过去的一年里,从互连网公司的部分必要出发,从各位SRE、SA、DEVS的应用经验和陈诉出发,结合产业界的有的大的网络公司做监察和控制,用监督的局地图谋出发,设计开辟了诺基亚的监督种类:open-falcon。

open-falcon的目的是做最开放、最佳用的互连网集团级监督产品。

Highlights and features

无敌灵活的多寡搜罗:自动开掘,援助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编写。

Architecture

图片 1

open-falcon architecture

备注:虚线所在的aggregator组件还在设计开垦阶段。

每台服务器,都有安装falcon-agent,falcon-agent是三个golang开辟的daemon程序,用于自开掘的募集单机的各样数码和目标,这几个目标包蕴不限于以下几个地方,共计400多项指标。

● 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端。

falcon-agent,能够在大家的github上找到 :

Data model

Data Model是不是强大,是或不是灵活,对于监察和控制种类用户的“使用频率”至关心注重要。举例以zabbix为例,上报的数量为hostname(也许ip)、metric,那么用户增进告警计谋、管理告警计策的时候,就只可以以那五个维度举行。举二个最普遍的现象:

hostA的磁盘空间,小于5%,就报告警察方。一般的服务器上,都会有多个第一的分区,根分区和home分区,在zabbix里面,就得加两条法规;即使是hadoop的机械,一般还应该有十几块的数据盘,还得再加10多条法规,那样就能够优伤,不幸福,不便利自动化(当然zabbix能够通过配备部分自行开掘战术来化解那几个,不过比较麻烦)。

open-falcon,选用和opentsdb同样的数目格式:metric、endpoint增多组key value tags,举七个例证:

{     metric: load.1min,     endpoint: open-falcon-host,     tags: srv=falcon,idc=aws-sgp,group=az1,     value: 1.5,     timestamp: `date  %s`,     counterType: GAUGE,     step: 60 } {     metric: net.port.listen,     endpoint: open-falcon-host,     tags: port=3306,     value: 1,     timestamp: `date  %s`,     counterType: GAUGE,     step: 60 } 

经过那样的数据结构,我们就足以从八个维度来布置告警,配置dashboard等等。

备考:endpoint是三个出奇的tag。


图片 2


) Introduction 监察和控制体系是成套运行环节,以致整个产品生命周期中最重大的一环,事前即刻预先警告开掘...

Dashboard


dashboard首页,用户可以以四个维度来搜索endpoint列表,即能够根据举报的tags来探索关联的endpoint。

open-falcon dashboard homepage

用户能够自定义多个metric,加多到某些screen中,那样天天晚上只必要开拓screen看一眼,服务的周转情况便尽在调整了。

open-falcon dashboard screen

理当如此,也足以查看清晰大图,横坐标上zoom in/out,快捷筛选反选。总来讲之用户的“使用作用”是率先要务。

open-falcon big graph

支付语言: 整个系列的后端,全体golang编写,portal和dashboard使用python编写。

2、水平扩张能力:帮助种种周期上亿次的多寡搜罗、告警判定、历史数据存款和储蓄和询问

Introduction


监督系统是全部运行环节,以致整个产品生命周期中最重要的一环,事前随即预先警告开采故障,事后提供可信赖的数额用于追查定位难题。监察和控制系统作为三个老谋深算的运营产品,产业界有广大开源的落到实处可供采用。当公司正好起步,业务规模十分的小,运行团队也恰好创建的前期,采纳一款开源的监察系统,是一个省时省力,功能最高的方案。之后,随着职业范围的持续飞快增进,监察和控制的目的也更多,越来越复杂,监察和控制类别的应用对象也之前期少数的多少个SRE,扩充为更加多的DEVS,SRE。那时候,监控类别的体量和用户的“使用频率”成了极其突出的主题材料。

督察系统产业界有相当多卓越的开源监控系列。大家在早期,向来在用zabbix,不过随着专门的工作的敏捷腾飞,以及互连网商家有意的部分供给,现成的开源的监察体系在质量、扩充性、和用户的应用频率方面,已经无计可施支撑了。

进而,大家在过去的一年里,从互连网公司的有些须要出发,从各位SRE、SA、DEVS的利用经验和陈说出发,结合产业界的局地大的互连网厂商做监察和控制,用监督的片段心想出发,设计开辟了HTC的监督检查种类:open-falcon。

open-falcon的指标是做最开放、最佳用的网络公司级监督产品。

Data collection

2、falcon-agent施行用户自定义的插件重临的数量

Storage


对此监察和控制体系来说,历史数据的仓储和高功能查询,恒久是个很难的主题材料!

  1. 数据量大:近期我们的监督系统,各样周期,大致有两千万次数据反馈(上报周期为1分钟和5分钟三种,各占百分之五十),一天24时辰里,一向不会有作业低峰,不管是大庭广众和黑夜,种种周期,总会有那么多的数码要创新。
  2. 写操作多:一般的作业系统,经常都是读多写少,能够平价的接纳各样缓存技术,再者各种数据库,对于查询操作的拍卖功能远远超乎写操作。而监察和控制系列恰恰相反,写操作远远出乎读。每一个周期几千万次的换代操作,对于常用数据库(MySQL、postgresql、mongodb)都以无能为力成功的。
  3. 高功效的查:大家说监察和控制系统读操作少,是说相对写入来说。监察和控制连串本人对于读的需求异常高,用户时时会有询问上百个meitric,在过去一天、一周、6月、一年的多少。如何在1秒内回到给用户并绘制,那是一个比极大的挑衅。

open-falcon在那块,投入了一点都不小的肥力。我们把数量依据用途分为两类,一类是用来绘图的,一类是用户做多少开采的。

对此绘图的数量来说,查询要快是非同小可,同不平时候不能够遗失消息量。对于用户要询问九14个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天一个点存5year
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写入数据。

● ntp offset(插件)

对此监察和控制系统来说,历史数据的储存和高功用查询,永世是个很难的主题材料!

Contributors


  • 前不久大家会把绝大数的零部件整理到 http://github.com/open-falcon , 期待我们齐声进献,拉动,做最开放、最佳用的店堂级监督系统。

证明:上边那三种多少,都会首发送给本机的proxy-gateway,再由gateway转载给transfer。

hostA的磁盘空间,小于5%,就报告警察方。一般的服务器上,都会有多个尤为重要的分区,根分区和home分区,在zabbix里面,就得加两条法则;若是是hadoop的机械,一般还应该有十几块的数据盘,还得再加10多条准绳,那样就会痛楚,不幸福,不便于自动化(当然zabbix能够通过配备部分活动开掘计策来消除这一个,可是比较费心)。

TODO


  • metric的聚合
  • 环比、同期相比较报警推断
  • 流量的突升突降剖断 (done)

● Load

Data Model是还是不是壮大,是还是不是灵活,对于监察和控制种类用户的“使用频率”至关心器重要。比方以zabbix为例,上报的数目为hostname(可能ip)、metric,那么用户增进告警计谋、管理告警计谋的时候,就只好以那多少个维度实行。举一个最普及的情景:

Architecture


open-falcon architecture

备注:虚线所在的aggregator组件还在设计开辟阶段。

每台服务器,都有安装falcon-agent,falcon-agent是一个golang开荒的daemon程序,用于自开采的采摘单机的种种数码和目标,这个目的满含不防止以下几个地点,共计400多项指标。

  • 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端。

falcon-agent,能够在大家的github上找到 : https://github.com/open-falcon/agent

图片 3

heartbeat sever不止是单独的加载MySQL中的内容,遵照模板继承、模板项覆盖、报警动作覆盖、模板和hostGroup绑定,总计出终极关联到每一个endpoint的报告警察方计谋,提要求judge组件来行使。

Highlights and features


  • 强劲灵活的多寡搜罗:自动开掘,帮助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编写。
{     metric: load.1min,     endpoint: open-falcon-host,     tags: srv=falcon,idc=aws-sgp,group=az1,     value: 1.5,     timestamp: `date  %s`,     counterType: GAUGE,     step: 60 } {     metric: net.port.listen,     endpoint: open-falcon-host,     tags: port=3306,     value: 1,     timestamp: `date  %s`,     counterType: GAUGE,     step: 60 } 

九、 存储

Data model


Data Model是或不是壮大,是还是不是灵活,对于监察和控制体系用户的“使用效能”至关心器重要。比方以zabbix为例,上报的数码为hostname(恐怕ip)、metric,那么用户增加告警计谋、管理告警计谋的时候,就只能以那三个维度举办。举一个最遍布的气象:

hostA的磁盘空间,小于5%,就报告警察方。一般的服务器上,都会有多个第一的分区,根分区和home分区,在zabbix里面,就得加两条法则;假如是hadoop的机器,一般还应该有十几块的数据盘,还得再加10多条法规,那样就能够痛楚,不幸福,不便利自动化(当然zabbix可以经过安插部分自动开采战术来化解那个,可是相比费力)。

open-falcon,选取和opentsdb相同的多少格式:metric、endpoint扩大组key value tags,举多少个例子:

{
    metric: load.1min,
    endpoint: open-falcon-host,
    tags: srv=falcon,idc=aws-sgp,group=az1,
    value: 1.5,
    timestamp: `date  %s`,
    counterType: GAUGE,
    step: 60
}
{
    metric: net.port.listen,
    endpoint: open-falcon-host,
    tags: port=3306,
    value: 1,
    timestamp: `date  %s`,
    counterType: GAUGE,
    step: 60
}

因此如此的数据结构,我们就足以从多个维度来安插告警,配置dashboard等等。
备考:endpoint是叁个非凡的tag。

TODO

IO

Committers


  • laiwei: https://github.com/laiwei 来炜没睡醒@腾讯网 / hellolaiwei@微信
  • 秦晓辉: https://github.com/ulricqin Ulricqin@微博 cnperl@微信

马上的野史数据query组件:选取rrdtool的多寡归档计策,秒级重临上百个metric一年的野史数据

transfer,接收客户端发送的数额,做一些数码整理,检查之后,转载到多个后端系统去处理。在转会到各种后端业务类其他时候,transfer会依据一致性hash算法,实行数量分片,来达到后端业务体系的品位扩张。

Data collection


transfer,接收客户端发送的数量,做一些数量整理,检查过后,转载到五个后端系统去处理。在转载到种种后端业务种类的时候,transfer会依照一致性hash算法,进行数量分片,来达到后端业务系统的档案的次序扩充。

transfer 提供json奥德赛pc接口和telnet接口二种格局,transfer自个儿是无状态的,挂掉一台可能多台不会有其余影响,同临时候transfer质量相当高,每分钟能够转化抢先500万条数据。

transfer这两天支撑的事情后端,有二种,judge、graph、opentsdb。judge是我们开辟的高质量告警推断组件,graph是咱们付出的高性能数据存储、归档、查询组件,opentsdb是开源的时间序列数据存款和储蓄服务。能够经过transfer的布置文件来张开。

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

  1. falcon-agent收罗的根基监察和控制数据
  2. falcon-agent施行用户自定义的插件再次来到的多少
  3. client library:线上的作业系统,都置于使用了合併的perfcounter.jar,对于事情类别中各类RPC接口的qps、latency都会积极收罗并申报

表达:下边那三种多少,都会头阵送给本机的proxy-gateway,再由gateway转载给transfer。

近些日子大家会把绝大数的零部件整理到 , 期待我们一块贡献,拉动,做最开放、最佳用的小卖部级监督系统。

某些过程财富消耗(插件)

Alerting


报告警察方剖断,是由judge组件来完毕。用户在web portal来陈设相关的告警战略,存款和储蓄在MySQL中。heartbeat server 会按时加载MySQL中的内容。judge也会按时和heartbeat server保持联络,来获取相关的报告警察方计谋。

heartbeat sever不止是仅仅的加载MySQL中的内容,依据模板承接、模板项覆盖、报告警察方动作覆盖、模板和hostGroup绑定,总括出终极关联到种种endpoint的告警计谋,提要求judge组件来采用。

transfer转载到judge的每条数据,都会接触相关政策的决断,来支配是或不是满意报告警察方条件,假如满意条件,则会发送给alarm,alarm再以邮件、短信、米聊等花样通告有关用户,也能够进行用户优先安排好的callback地址。

用户能够很灵活的来布局告警判别战略,譬如总是n次都满意条件、一连n次的最大值满意条件、差异的年月段不相同的阈值、要是处在保证周期内则忽略 等等。

除此以外也支撑突升突降类的决断和报告警察方。

每台服务器,都有安装falcon-agent,falcon-agent是八个golang开辟的daemon程序,用于自开掘的访问单机的各类数码和目标,这一个目的包含不压制以下多少个地点,共计400多项指标。

API面向终端用户,收到查询乞求后,会去多个graph里面,查询不一样metric的多寡,汇总后统一重临给用户。

License


Copyright 2014-2015 Xiaomi, Inc.
Licensed under the Apache License,
Version 2.0:
http://www.apache.org/licenses/LICENSE-2.0

高效能的graph组件:单机支撑200万metric的申报、归档、存款和储蓄(周期为1分钟)

ntp offset(插件)

Query


到此处,数据已经成功的积攒在了graph里。如何连忙的读出来呢,读过去1钟头的,过去1天的,过去三月的,过去一年的,都亟待在1秒之内再次来到。

这几个都以靠graph和query组件来兑现的,transfer会将数据往graph组件转载一份,graph收到数额今后,会以rrdtool的多寡归档方式来存款和储蓄,同期提供查询RPC接口。

query面向终端用户,收到查询供给后,会去八个graph里面,查询不一致metric的多少,汇中国人民解放军总后勤部联合重回给用户。

那一个都以靠graph和query组件来达成的,transfer会将数据往graph组件转载一份,graph收到多少之后,会以rrdtool的多寡归档格局来储存,同一时候提供查询RPC接口。

7、dashboard:多维度的数码显示,用户自定义Screen

Web portal


一个快速的portal,对于升高用户的“使用功效”,加成非常的大,平常我们都这么忙,能给诸位SRE、Devs缓慢解决部分承担,那是再好但是了。

那是host group的保管页面,能够和服务树结合,机器进出服务树节点,相关的模版会自动关联可能免除。那样服务上下线,都不须求手动来改造监察和控制,大大进步作用,裁减遗漏和误报警。

open-falcon portal HostGroup

多少个最简易的沙盘的例子,模板辅助承继和宗旨覆盖,模板和host group绑定后,host group下的机械会自动应用该模板的具备战略。

open-falcon template

道理当然是那样的,也得以写一个简易的表明式,就能够到达监控的指标,那对于那贰个endpoint不是机器名的风貌拾叁分方便。

open-falcon expression

累加多少个表达式也是很简短的。

open-falcon add an expression

流量的突升突降判断

● 内存相关

摘要:督察系列是全部运转环节,以致整个产品生命周期中最关键的一环,事前即时预先警告开掘故障,事后提供翔实的多少用于追查定位难点。监察和控制类别作为多个老于世故的运营产品,产业界有许多开源的贯彻可供选拔。当集团正好起步,业务规模十分小,运转团队也刚刚创立的开始的一段时代,接纳一款开源的监察和控制体系,是三个省时省力,功用最高的方案。

transfer转载到judge的每条数据,都会接触相关政策的判断,来决定是不是餍足报告警察方条件,若是满意条件,则会发送给alarm,alarm再以邮件、短信、米聊等花样通告有关用户,也得以进行用户优先安顿好的callback地址。

Load

● 磁盘相关

监督检查体系是全体运行环节,以至整个产品生命周期中最入眼的一环,事前随即预先警告开掘故障,事后提供翔实的数据用于追查定位难题。监察和控制体系作为贰个足智多谋的运转产品,产业界有那多少个开源的达成可供选用。当集团正好起步,业务规模一点都不大,运维团队也刚刚创建的早期,采取一款开源的监察和控制种类,是一个省时省力,功能最高的方案。之后,随着专门的职业范围的继续不停火速增进,监察和控制的目的也愈扩张,越来越复杂,监控系统的行使对象也从最初少数的多少个SRE,扩张为越多的DEVS,SRE。那时候,监察和控制系统的容积和用户的“使用成效”成了特别优异的主题素材。

open-falcon,选用和opentsdb同样的多少格式:metric、endpoint扩展组key value tags,举多个例子:

一、 介绍

open-falcon dashboard homepage

七、 API

Query

6、高效的野史数据query组件:选拔rrdtool的数目归档战略,秒级重回上百个metric一年的历史数据

open-falcon在那块,投入了比较大的生机。大家把数据遵照用途分为两类,一类是用来绘图的,一类是用户做多少开掘的。

六、 报警

备注:endpoint是贰个出奇的tag。

1、庞大灵活的数码采摘:自动开掘,援救falcon-agent、snmp、援助用户主动push、用户自定义插件帮忙、opentsdb data model like(timestamp、endpoint、metric、key-value tags)

● 机器内核配置参数

基础监察和控制是指若是是个机械(或容器)就能够加的监督检查,譬如cpu mem net io disk等,这么些监督收罗的法门固定,无需计划,也没有要求用户提供额外参数钦点,只要agent跑起来就足以平素访谈上报上去; 非基础监察和控制则相反,比如端口监察和控制,你不给本人端口号就那么些,否则作者报告全部655三二十一个端口的监听状态你也用持续,那类监察和控制须求用户配置后才会初步搜集上报的监督(包含类似于端口监察和控制的布局触发类监察和控制,以及近似于mysql的插件脚本类监察和控制),一般就不算基础监察和控制的框框了。

Contributors

CPU相关

监察和控制连串业界有大多优异的开源监察和控制系统。大家在早先时期,一贯在用zabbix,但是随着工作的长足前进,以及网络集团有意的一些急需,现成的开源的督察系统在性质、扩充性、和用户的应用成效方面,已经江淹梦笔支撑了。

transfer转载到judge的每条数据,都会触发相关政策的剖断,来决定是或不是满意报告警察方条件,如果满意条件,则会发送给alarm,alarm再以邮件、短信、米聊等形式公告相关用户,也得以施行用户优先安排好的callback地址。

用户能够自定义七个metric,加多到有些screen中,这样每日早上只需求开采screen看一眼,服务的运作状态便尽在左右了。

评释:上边这两种多少,都会首发送给本机的proxy-gateway,再由gateway转载给transfer。

本文由乐百家服务器发布,转载请注明来源:红米运转—互联网集团级监督系统实行(1)