JRuby 调用 maxmind-java 测试

22 Jan 2015 Posted in  logstash

GeoIP 是一个非常有用的信息,也是使用 ELKstack 时一般都会加上的过滤器插件。不过 geoip 插件的性能,有些时候却会成为整个系统的瓶颈。另一个问题,则是 GeoIP 数据文件的准确度,在国内比较头疼。即使你有一个自己处理出来的准确度较高的 IP 库,GeoIP 也没有提供现成的修改数据文件内容的工具。这个时候,MaxMind 公司的 GeoIP2 就进入我的视线了。 继续阅读……


扩展 Zabbix Web 页面功能

21 Jan 2015 Posted in  monitor

zabbix 是目前非常流行的一个开源监控系统。虽然核心代码是 C 的,却通过 PHP 的 web 端提供了非常方便的界面和 RPC 接口。可以看到很多讲如何通过 RPC 接口自动化 zabbix 操作的文章。不过,如果你想做的事情正好没有现成的接口或者界面,怎么办呢?这时候就感谢 zabbix 的后端是用的 MySQL 数据库了,这意味着我们可以很方便的扩展 Zabbix 页面和接口的功能。 继续阅读……


给 Kibana3 添加脚本化字段支持

06 Jan 2015 Posted in  logstash

Kibana4 中确实有不少让人眼前一亮的新特性,但是整体框架和使用思路上的重构实在让人较难上手。所以,把一些有需要的特性,port 回目前更稳定的 Kibana3 就有必要了。好在去年在自己 fork 中已经做了很多铺垫,包括一些基础库的版本更新。这些特性基本都只需要几行代码的变动就可以实现。 继续阅读……


2014 年度个人总结

26 Dec 2014 Posted in 

又到一年底,总结个人业绩和得失的时候了。于我个人而言,2014 年真是精彩纷呈。 继续阅读……



Kibana 中几个不同的 filtering

08 Dec 2014 Posted in  logstash

用过 kibana 的都知道,kibana 的图表上,可以直接点击某个值,就能自动添加这个过滤条件到 filtering 里,然后整个 dashboard 上所有的图表都会刷新成在这个过滤条件下的新状态。但是如果你要想自己手动添加 filtering 的时候,就会发现,自己添加的,写法好像跟自动生成的长得不太一样。 继续阅读……


利用脚本灵活定制 Elasticsearch 中的聚合效果

27 Nov 2014 Posted in  logstash

这几天阅读 Splunk 书,发现 Splunk 作为一个不需要提前结构化数据的处理工具,在自动发现的 “interesting fields” 以外,也提供了在页面通过正则临时产生新字段的能力。类似下面这样: 继续阅读……


利用动态仪表板实现kibana单图表导出功能

23 Nov 2014 Posted in  logstash

昨天和朋友聊天,说监控报表的话题,他们认为 kibana 的仪表板形式,还是偏重技术人员做监控的 screen 思路,对 erp 之类的报表不是很友好。要想跟其他系统结合,或者说嵌入到其他系统中,就必须得有单个图表的导出,或者 URL 引用方式。当时我直觉上的反应,就是这个没问题,可以通过 javascript 动态仪表板这个高级功能完成。回来试了一下,比我想的稍微复杂一点点,还是可以很轻松完成的。 继续阅读……


用 phantomjs 截图

20 Nov 2014 Posted in 

昨儿给 kibana 加上了 table 面板数据导出成 CSV 的功能。朋友们就问了,那其他面板的图表怎么导出保存呢?其实直接截图就好了嘛…… 继续阅读……


在 kibana 里实现去重计数

19 Nov 2014 Posted in  logstash

如何在 elk 里统计或者展示去重计数,是一个持续很久的需求了。几乎每个月都会有新手提问题说:“我怎么在 kibana 里统计网站 UV 啊?”可惜这个问题的回答总是:做不到…… 继续阅读……



用 perl6-bench 做 perl6 性能对比

28 Oct 2014 Posted in  perl

Perl6 成员上周在奥地利大会上做了一次大聚集,写了不少博客讲过去几个月的优化以及未来几个月的优化。但是我发现似乎从8月以来就一直没有正式的 perl6-bench 的图表报告了。于是想:干脆自己跑一把吧。 继续阅读……


ESCC 参会笔记

27 Oct 2014 Posted in  elasticsearch

10 月 25 号举办了 ESCC(ElasticSearch China Conference)。作为个人习惯,稍作记录。 继续阅读……


在终端命令行上调试 grok 表达式

19 Oct 2014 Posted in  logstash

用 logstash 的人都知道在 http://grokdebug.herokuapp.com 上面调试 grok 正则表达式。现在问题来了:翻墙技术哪家强? 页面中用到了来自 google 域名的 js 文件,所以访问经常性失败。所以,在终端上通过命令行方式快速调试成了必需品。 继续阅读……


Rsyslog 性能数据 impstats 直接写入 Elasticsearch

19 Oct 2014 Posted in  logstash

Rsyslog 的性能数据,可以通过自带的 impstats 插件输出。但是在用的比较复杂的场景下,每次输出都会有好几十个 action 的各种状态,肉眼观察变得比较困难,这时候,我们可以直接输出给 Elasticsearch ,然后利用 Kibana 做快速搜索和分析。 继续阅读……


LogStash::Inputs::Syslog 性能测试与优化

18 Oct 2014 Posted in  logstash

最近因为项目需要,必须想办法提高 logstash indexer 接收 rsyslog 转发数据的性能。首先,就是要了解 logstash 到底能收多快? 继续阅读……


在 JRuby 上用 netty 模拟 eventmachine

17 Oct 2014 Posted in  ruby

上一篇说到在 JRuby 上利用 netty 库实现事件驱动。事实上,为了让 Ruby 程序员更习惯,foxbat 模块是把 netty 库封装成 eventmachine 的接口来提供给用户使用的。所以,我们可以把程序写得更通用一些: 继续阅读……


PerlAPI 里的 Magic 简介

11 Oct 2014 Posted in  perl

前几天看到 cindylinz 发了一个新 CPAN 模块叫 Scalar::Watcher,有朋友问我这个是怎么实现的,在无限循环啊,多线程啊,IO 阻塞啊等情况下,还能被触发么? 继续阅读……


从源代码运行 Kibana 4

10 Oct 2014 Posted in  logstash

Kibana 4 发布了,出人意料的是提供的居然是一个 jar 包的运行方式。好在有源码可看,根据源码可以分析得知,v4 版其实是一个 angularjs 写的 kibana 配上一个 sinatra 写的 proxyserver。这么一来,我们也就知道怎么来从源代码运行 Kibana 4,而不是用 Java 启动了。 继续阅读……





Mojolicious 应用的自定义子命令

01 Oct 2014 Posted in  perl

Mojolicious 框架开发应用的时候,可以跟 RoR 一样通过一系列子命令简化很多复杂操作。最简单的来说,就是快速生成整个 web 项目目录:mojo generate youapp。更多子命令见:http://cpan.php-oa.com/perldoc/Mojolicious/Commands 继续阅读……


在 logstash 里使用其他 RubyGems 模块

24 Sep 2014 Posted in  logstash

在开发和使用一些 logstash 自定义插件的时候,几乎不可避免会导入其他 RubyGems 模块 —— 因为都用不上模块的小型处理,直接写在 filters/ruby 插件配置里就够了 —— 这时候,运行 logstash 命令可能会发现一个问题:这个 gem 模块一直是 “no found” 状态。 继续阅读……


Kibana 认证鉴权方案

23 Sep 2014 Posted in  logstash

Kibana 作为一个纯 JS 项目,一直都没有提供完整的权限控制方面的功能。只是附带了一个 nginx.conf 做基本的 Basic Auth。社区另外有在 nodejs 上实现的方案,则使用了 CAS 方式做认证。 继续阅读……