在上一篇文章的基础上,其实 Elasticsearch 从 2.0 以后,还新增了另一种聚合方式,叫 sampler。这个聚合的作用,是在每个分片上,只采样部分文档出来继续后续统计。 继续阅读……
21 Jul 2016 Posted in elasticsearch
在上一篇文章的基础上,其实 Elasticsearch 从 2.0 以后,还新增了另一种聚合方式,叫 sampler。这个聚合的作用,是在每个分片上,只采样部分文档出来继续后续统计。 继续阅读……
18 Jul 2016 Posted in logstash
之前我曾经讲过一个简单的在 ELK 中山寨 Splunk 的『显示来源』功能的办法。这次我们玩个更有难度的、当然依然只是山寨式功能的新东西:『事件模式』功能。 继续阅读……
07 Jul 2016 Posted in logstash
Kibana 4.x 在服务器端采用了 hapi.js 框架开发。虽然目前依然没有认证和授权的插件出来(官方 Kibana 的 shield 插件应该只是做了一个认证,授权部分是由 ES 本身的 shield 插件完成的)。不过既然叫框架嘛,自然就是有不少扩展可用。本文简要介绍一下 hapi.js 框架的认证授权插件的用法。有兴趣的读者可以自己稍微改造一下,就能让 Kibana 也有认证授权功能了。 继续阅读……
04 Apr 2016 Posted in elasticsearch
我们在使用 ELK 的时候,使用 Lucene querystring 语法的机会,远超过使用 Elasticsearch 的 query DSL。毕竟在搜索框里写语法比自己拼 JSON 简单多了。 继续阅读……
01 Apr 2016 Posted in monitor
我们都很习惯在压测 nginx 等服务的时候,利用 systemtap 完成 flamegraph 火焰图来看具体哪个函数占用 CPU 资源过多了。那么,对 Java 实现的 elasticsearch,有没有类似办法呢? 继续阅读……
19 Mar 2016 Posted in monitor
16 Mar 2016 Posted in logstash
上篇介绍了一下怎么用 juttle 交互式命令行查看表格式输出。juttle 事实上还提供了一个 web 服务器,做数据可视化效果,这个同样是用 juttle 语言描述配置。 继续阅读……
16 Mar 2016 Posted in logstash
juttle 是一个 nodejs 项目,专注于数据处理和可视化。它自定义了一套自己的 DSL,提供交互式命令行、程序运行、界面访问三种运行方式。 继续阅读……
27 Jan 2016 Posted in logstash
我在 ELK Stack 中文指南的 visualize 解析一节介绍了如何给 Kibana4 开发浏览器端的可视化插件。Kibana4 跟 Kibana3 比,最大的一个变化是有了独立的 node.js 服务器端。那么同样的,也就有了服务器端的 Kibana4 插件。最明显的一个场景:我们可以在 node.js 里跑定时器做 Elasticsearch 的告警逻辑了! 继续阅读……
27 Dec 2015 Posted in
又一年过去了。2015 年在博客上发表文章的时间大幅度减少,全年只写了 23 篇博客,其实还有一小半是翻译。但是个人总结还是要写的,写在博客上,因为别的平台肯定不适合发这个…… 继续阅读……
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 配置,相信大家第一眼看上去都会晕:
继续阅读……
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 是必须唯一一致的。否则,或者写入失败,或者搜索异常。 继续阅读……
25 Oct 2015 Posted in elasticsearch
2015 年 10 月 25 日,ESCC 2015 上海站召开,感谢携程的大力支持,让我得以参与,参会笔记如下: 继续阅读……
20 Oct 2015 Posted in elasticsearch
10 月 17 号举办了第四届 ESCC(ElasticSearch China Conference) 北京站。作为个人习惯,稍作记录。 继续阅读……
24 Sep 2015 Posted in logstash
Rsyslog 从 v6 以后,实现了全新的 rainerscript 语法,数据处理灵活度大大提高。我最近一直在把 logstash 的解析配置迁移到 rsyslog 中完成。结果今天碰到一个非常好玩的地方。由此也说明了,一切 DSL,都不要想当然的觉得它会有跟编程语言完全一样的行为。 继续阅读……
25 Aug 2015 Posted in logstash
03 Apr 2015 Posted in logstash
这个标题肯定绕晕很多人吧。具体说明一下场景就明白了:Nginx 和 Apache 的访问日志,因为都属于网站访问,所以写入到同一个索引的不同类型下,比方 logstash-accesslog-2015.04.03/nginx
和 logstash-accesslog-2015.04.03/apache
。既然都是访问日志,肯定很多字段的内容含义是雷同的,比如 clientip, domain, urlpath 等等。其中 nginx 有一个变量叫 $request_time
,apache 有一个变量叫 %T
,乍看上去也是同义的,我就统一命名为 “requestTime” 了。这就是”同一索引(logstash-accesslog-YYYY.MM.DD)下不同类型(nginx,apache)的同名字段(requestTime)”。
继续阅读……
14 Mar 2015 Posted in monitor
上个月曾经试过了用 spark streaming 读取 logstash 启动的 TCP Server 的数据。不过如果你有多台 logstash 的时候,这种方式就比较难办了 —— 即使你给 logstash 集群申请一个 VIP,也很难确定说转发完全符合。所以一般来说,更多的选择是采用 kafka 等队列方式由 spark streaming 去作为订阅者获取数据。 继续阅读……
14 Mar 2015 Posted in logstash
本文之前已经拆分成章节发布在我的 《Kibana 权威指南》电子书上。欢迎移步观看全书其他章节。 继续阅读……
06 Mar 2015 Posted in logstash
标题说是 PHP 的慢日志,其实所有函数堆栈的调试日志都可以做,比如 Java 的调试日志等等。要用 Kibana ,首先得把日志数据解析并输入到 Elasticsearch 里。所以,本文分为几个部分:多行合并,堆栈解析,Nested Aggs 处理,Kibana4 的可视化效果。 继续阅读……
25 Feb 2015 Posted in logstash
25 Feb 2015 Posted in logstash
25 Feb 2015 Posted in logstash
25 Feb 2015 Posted in logstash
14 Feb 2015 Posted in monitor
前两篇,一篇说在 spark 里用 SQL 方便,一篇说 updatestateByKey 可以保留状态做推算。那么怎么综合起来呢?目前看到的 spark streaming 和 spark SQL 的示例全都是在 output 阶段的 foreachRDD
里才调用 SQL。实际在 output 之前,也是可以对 DStream 里的 RDD 做复杂的转换操作的,这就是 transform
方法。
继续阅读……