[Riemann]再聊监控

再聊监控 - Jerry's Blog
http://jerrypeng.me/2015/05/26/talk-about-monitoring-again/?utm_source=tuicool&utm_medium=referral

去年我曾写过一个系列文章 介绍在上一家公司搭建的监控系统,那个方案基于 Ganglia 和 Nagios,效果很不错,对我们监控性能状况,及时发现问题起了不小的作用。
不巧的是,在新公司入职不久,我又开始和同事一起研究起监控系统来。作为技术上比较『追新』的公司,我们也把视线放到了比较新的一些方案上了。目前我们的监控系统已经上线运行了一些时间,效果也很不错。在此对用到的主要子系统做一个介绍,希望能对有兴趣或者正在研究监控方案的朋友们带来一些帮助。
绝对的核心 Riemann
Riemann 是一个分布式监控系统,但它做的事情其实非常简单,就是接收事件,按照配置的 stream
对事件进行处理并转发到 InfluxDB、Graphite 或者产生告警、发邮件等。官网的一张架构图很好地解释了这一点:


Riemann 是用 Clojure 实现的,作为一个 Clojure 拥趸,这一点极大地吸引了我。
Riemann 的配置文件用的也是 Clojure,你需要使用其提供的 DSL 来编写 stream
来实现想要的告警等逻辑。Riemann 中的stream
是指以 event 为参数的函数,stream
可以组合形成一个树形结构,事件就在 stream
中流动,触发处理逻辑。例如下面的片段:

1234

(streams (where (and (service #"^jvm") (state "critical")) (email "foo@bar.com")))

匹配状态是 critical
,服务名以 jvm 开头的事件,然后发送邮件。
Riemann 提供了大量的函数帮助编写 stream
,例如按时间窗口聚合,事件映射等等,详细可以参考其 API 文档
Riemann 还有个 index
的概念,可以用于在内存中短暂存储事件并提供一个查询机制,配合 Riemann Dash 可以用来实现一个能实时查看系统状态的 Dashboard。


Riemann 使用 protocol buffer 作为接口,有不同语言的 Client Library 可供使用。对于 JVM 的监控,我们还是扰不开 JMX:riemann-jmx 可以从 JMX MBean 收集数据并发送到 Riemann。
不得不说 Riemann 是有一定的学习曲线的,需要了解 Clojure,并不像 Ganglia 那样配置好就可以使用。但显然它更加灵活,用它作为一个 Middleman 可以很容易实现各种复杂需求。
InfluxDB 和 Graphana
前面提到了 Riemann 只有一个 in-memory 的 index
存储,但我们往往需要持久化一部分监控数据,方便日后查询和比对。这时我们就需要一个存储机制了。目前比较流行的方案有下面这些:
Graphite
InfluxDB
OpenTSDB

Riemann 对他们都有支持,可以很简单地将事件转发过去。
我们使用了 InfluxDB,一个分布式 time series 数据库。它提供了一个类似 SQL 的语言来查询数据和一个简单的界面来展现数据。但想绘制比较强大的图表,还需要其他工具,比如 Graphana
Graphana 同样支持不同的数据后端,前面提到的三个系统它都支持,可以很容易集成到一起。
其他
虽然和监控关系不是特别大,我们还使用了 Logstash 来收集和存储日志,而 Logstash 也是可以和 Riemann 集成的,可以用 Logstash 来从日志中提取感兴趣的指标,然后发到 Riemann 中作进一步处理。通过它可以实现监控日志中出现的异常,并基于异常作告警处理等。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,029评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,395评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,570评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,535评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,650评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,850评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,006评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,747评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,207评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,536评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,683评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,342评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,964评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,772评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,004评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,401评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,566评论 2 349

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,633评论 18 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,932评论 6 13
  • 前言介绍 监控是整个运维乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供详实的数据用于追查定位问...
    oldxu_linux阅读 5,233评论 1 76
  • Zabbix简介 Zabbix官方网站Zabbix中文文档 本文系统环境是CentOS7x86_64, Zabbi...
    Zhang21阅读 7,968评论 0 37
  • 精进 在不违反原则的事态里 与人方便就是与己方便,在严格要求别人墨守成规的时候自己就要遵守规则。 感受 通过合理的...
    若兰ZHOU阅读 185评论 0 1