IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    直接从 elasticsearch 获取数据进入 skyline 异常检测

    陈子 (rao.chenlin@gmail.com)发表于 2014-06-04 00:00:00
    love 0

    这几天搭建 elasticsearch 集群做日志分析,终于有机会可以实际跑一下 skyline 的效果。不过比较麻烦的事情是,skyline 是一个比较完备的系统而不是插件,要求我们把数据通过 msgpack 发过去存到 redis 里。这是个很没有道理的做法,早在去年刚看到这个项目的时候我就在博客里写下了愿景是应该用 elasticsearch 替换掉 redis。等了这么久没等到,干脆就自己动手实现。修改后,skyline 其余的程序完全可以直接扔掉,只留下这一个脚本定时运行就够了:

    其实改动的地方很少~这让我愈发不理解 etsy 原来那样做的理由了。

    这里面主要就是拼了一下 elasticsearch 的 date_histogram 类型的 facet 请求,获取最近 1 个小时的每 5 分钟统计值构成的时间序列数据。然后发给前面那些检验算法。

    之前用过 js 和 perl 的 elasticsearch 客户端,对象封装的都蛮细的,而 python 的这个客户端写起来就非常像 curl 命令了。

    如果要推广用,把里面这个 code.504 提出来做一个可配置项就行了。



沪ICP备19023445号-2号
友情链接