2016 年度个人总结

30 Dec 2016 Posted in 

老习惯,一年年底给自己做一个总结。 继续阅读……


日志分析中 6 个常见但没啥用的功能

15 Nov 2016 Posted in 

日志分析是 IT 运维领域非常重要的一部分工作。甚至可以说,在平台化、模块化、服务化盛行的今天,这部分工作的重要性已经逼近传统的设备监控。不过日志由于来源、使用者、管理者都比设备指标要复杂,导致日志分析的功能需求,也庞大很多。在这些庞大的,或者说『泥沙俱下』的功能需求中,有那么一些然并卵的,或许因为听起来很炫酷,或许因为想延续过去的使用习惯,今天因为出差到外地,难得有空放松下,决定吐槽几个这种然并卵的功能。 继续阅读……


Elastic 官方压测工具 rally 试用

19 Aug 2016 Posted in  testing

rally 工具是 Elastic 官方开源的针对性性能压测工具。目前 Elasticsearch 的 nightly performance report 就是由 rally 产生的。对自己在做 ES 源码修改,或者ES 应用调优的人来说,通过 rally 验证自己的修改效果,是一件很需要且容易的事情。 继续阅读……


elasticsearch 的 sampler 聚合

21 Jul 2016 Posted in  elasticsearch

在上一篇文章的基础上,其实 Elasticsearch 从 2.0 以后,还新增了另一种聚合方式,叫 sampler。这个聚合的作用,是在每个分片上,只采样部分文档出来继续后续统计。 继续阅读……


山寨一个 Splunk 的事件模式功能

18 Jul 2016 Posted in  logstash

之前我曾经讲过一个简单的在 ELK 中山寨 Splunk 的『显示来源』功能的办法。这次我们玩个更有难度的、当然依然只是山寨式功能的新东西:『事件模式』功能。 继续阅读……


hapi.js 框架的认证授权插件示例

07 Jul 2016 Posted in  logstash

Kibana 4.x 在服务器端采用了 hapi.js 框架开发。虽然目前依然没有认证和授权的插件出来(官方 Kibana 的 shield 插件应该只是做了一个认证,授权部分是由 ES 本身的 shield 插件完成的)。不过既然叫框架嘛,自然就是有不少扩展可用。本文简要介绍一下 hapi.js 框架的认证授权插件的用法。有兴趣的读者可以自己稍微改造一下,就能让 Kibana 也有认证授权功能了。 继续阅读……


Lucene 查询中的距离查询(proximity query)

04 Apr 2016 Posted in  elasticsearch

我们在使用 ELK 的时候,使用 Lucene querystring 语法的机会,远超过使用 Elasticsearch 的 query DSL。毕竟在搜索框里写语法比自己拼 JSON 简单多了。 继续阅读……


用火焰图看 elasticsearch 的资源占用

01 Apr 2016 Posted in  monitor

我们都很习惯在压测 nginx 等服务的时候,利用 systemtap 完成 flamegraph 火焰图来看具体哪个函数占用 CPU 资源过多了。那么,对 Java 实现的 elasticsearch,有没有类似办法呢? 继续阅读……


机器战胜人类了,伺候机器的运维呢?

19 Mar 2016 Posted in  monitor

2016 年 3 月最火爆的新闻,莫过于谷歌的 alphago 机器 4:1 大胜李世乭了。一时间各界议论纷纷,我的前同事,运维界非著名段子手 @orroz 在自己微博上写了两段话: 继续阅读……


juttle 可视化界面介绍

16 Mar 2016 Posted in  logstash

上篇介绍了一下怎么用 juttle 交互式命令行查看表格式输出。juttle 事实上还提供了一个 web 服务器,做数据可视化效果,这个同样是用 juttle 语言描述配置。 继续阅读……


juttle 介绍

16 Mar 2016 Posted in  logstash

juttle 是一个 nodejs 项目,专注于数据处理和可视化。它自定义了一套自己的 DSL,提供交互式命令行、程序运行、界面访问三种运行方式。 继续阅读……


Kibana4 服务器端插件开发

27 Jan 2016 Posted in  logstash

我在 ELK Stack 中文指南的 visualize 解析一节介绍了如何给 Kibana4 开发浏览器端的可视化插件。Kibana4 跟 Kibana3 比,最大的一个变化是有了独立的 node.js 服务器端。那么同样的,也就有了服务器端的 Kibana4 插件。最明显的一个场景:我们可以在 node.js 里跑定时器做 Elasticsearch 的告警逻辑了! 继续阅读……


2015 年度个人总结

27 Dec 2015 Posted in 

又一年过去了。2015 年在博客上发表文章的时间大幅度减少,全年只写了 23 篇博客,其实还有一小半是翻译。但是个人总结还是要写的,写在博客上,因为别的平台肯定不适合发这个…… 继续阅读……


Rsyslog 的 mmnormalize 模块用法

25 Nov 2015 Posted in  rsyslog

mmnormalize 是 Rsyslog 内置的一种数据解析的方案,甚至有自己的官网:http://www.liblognorm.com可以阅读相关用法细节。它既不像 Rsyslog 的 rainerscript 那样采用 ERE 类型的简单正则,也不像 Logstash的 Grok 那样采用 PCRE 类型的复杂正则(一度通过添加 regex parser 引入过 PCRE,后来又删了),而是自己设计了一套方式,其最核心的匹配语法就是 %char-to: 这种“向后匹配直到*为止”。下面是一段解析 nginx 访问日志的 mmnormalize 配置,相信大家第一眼看上去都会晕: 继续阅读……


SIREn 插件试用

29 Oct 2015 Posted in  elasticsearch

SIREn 是一个基于 Lucene 做的,专门针对 nested object 数据做优化的方案。其官网地址:http://siren.solutions。SIREn 自己并不提供完整的软件,而是以 Solr 或者 Elasticsearch 插件的形式存在。在 SIREn 官网首页写着,自己是 trush schemaless,high performance nested query。而我之前已经写博客说过,Elasticsearch 的 schemaless 是有限制的,同一个 index 下,field 的 mapping 是必须唯一一致的。否则,或者写入失败,或者搜索异常。 继续阅读……


ESCC 参会笔记

25 Oct 2015 Posted in  elasticsearch

2015 年 10 月 25 日,ESCC 2015 上海站召开,感谢携程的大力支持,让我得以参与,参会笔记如下: 继续阅读……


ESCC 参会笔记

20 Oct 2015 Posted in  elasticsearch

10 月 17 号举办了第四届 ESCC(ElasticSearch China Conference) 北京站。作为个人习惯,稍作记录。 继续阅读……


rsyslog 中 if 条件判断的限制

24 Sep 2015 Posted in  logstash

Rsyslog 从 v6 以后,实现了全新的 rainerscript 语法,数据处理灵活度大大提高。我最近一直在把 logstash 的解析配置迁移到 rsyslog 中完成。结果今天碰到一个非常好玩的地方。由此也说明了,一切 DSL,都不要想当然的觉得它会有跟编程语言完全一样的行为。 继续阅读……



Elasticsearch 同一索引不同类型下同名字段的映射冲突实例

03 Apr 2015 Posted in  logstash

这个标题肯定绕晕很多人吧。具体说明一下场景就明白了:Nginx 和 Apache 的访问日志,因为都属于网站访问,所以写入到同一个索引的不同类型下,比方 logstash-accesslog-2015.04.03/nginxlogstash-accesslog-2015.04.03/apache。既然都是访问日志,肯定很多字段的内容含义是雷同的,比如 clientip, domain, urlpath 等等。其中 nginx 有一个变量叫 $request_time,apache 有一个变量叫 %T,乍看上去也是同义的,我就统一命名为 “requestTime” 了。这就是”同一索引(logstash-accesslog-YYYY.MM.DD)下不同类型(nginx,apache)的同名字段(requestTime)”。 继续阅读……


spark streaming 接收 kafka 数据示例

14 Mar 2015 Posted in  monitor

上个月曾经试过了用 spark streaming 读取 logstash 启动的 TCP Server 的数据。不过如果你有多台 logstash 的时候,这种方式就比较难办了 —— 即使你给 logstash 集群申请一个 VIP,也很难确定说转发完全符合。所以一般来说,更多的选择是采用 kafka 等队列方式由 spark streaming 去作为订阅者获取数据。 继续阅读……


Kibana 3 源码解析

14 Mar 2015 Posted in  logstash

本文之前已经拆分成章节发布在我的 《Kibana 权威指南》电子书上。欢迎移步观看全书其他章节。 继续阅读……


用 Kibana4 实现 PHP 慢日志函数堆栈分析

06 Mar 2015 Posted in  logstash

标题说是 PHP 的慢日志,其实所有函数堆栈的调试日志都可以做,比如 Java 的调试日志等等。要用 Kibana ,首先得把日志数据解析并输入到 Elasticsearch 里。所以,本文分为几个部分:多行合并,堆栈解析,Nested Aggs 处理,Kibana4 的可视化效果。 继续阅读……