内容

  • 安装 RVM
  • 安装 Ruby 和 Gems
  • 安装 Rails
  • 安装 jls-grok
  • Ruby grok 解析
  • 调试 grok

迁移到:http://www.bdata-cap.com/newsinfo/1712686.html

注意:不要用 root 执行以下操作。

用 logstash 收集 IIS、tomcat 日志,或是其他时,你需要调试 grok 表达式,每次都需要重新加载文件,然后再把 sincedb 文件全部删除,否则 logstash 不会重复处理文件,很麻烦。

本文主要介绍如何安装 GrokDebuger 环境,再在命令行调试 Grok 表达式。Logstash 是用 Ruby 编写的,而 Ruby 有专门的处理 grok 表达式的 gem。

下面过程有先后顺序。

安装 RVM

rvm(Ruby Version Manager),是一个非常好用的ruby版本管理以及安装工具。

curl -sSL https://get.rvm.io | sudo bash -s stable

参见:http://rvm.io/

参见:https://github.com/rvm/rvm

这步可能要多试几次,不是你的问题,是它们的网络问题。

若不能 sudo ,就自己设置下你用户的权限。

RVM 安装位置自己 FIND 一下。

安装 rvm 后,需要用 rvm 把你当前用户添加到 rvm 组。rvm 会自己创建 rvm 组。

rvm group add rvm "$USER"

 

rvm fix-permissions“$USER”

表示你当前用户,然后重新登录。

在 RVM 下安装 Ruby。


安装 Ruby 和 Gems

rvm install ruby

 

ruby -v

 

gem –v

这步很简单~如果能看到版本信息,就说明成功了~


安装 Rails

gem install rails

若不能访问,则添加淘宝镜像 https://ruby.taobao.org/


安装 jls-grok

gem install jls-grok

这步也很简单~基本不会出问题~


Ruby grok 解析

编写一个 Ruby 脚本,用来调试 Grok 表达式。

require 'rubygems'

 

gem 'jls-grok', '=0.11.2'

 

require 'grok-pure'

 

require 'optparse'

 

require 'json'

 

options = {}

 

ARGV.push('-h') if ARGV.size === 0

 

OptionParser.new do |opts|

 

  opts.banner = 'Run grokdebug at your terminal.'

 

  options[:dirs] = %w(patterns)

 

  options[:named] = false

 

  opts.on('-d DIR1,DIR2', '--dirs DIR1,DIR2', Array, 'Set grok patterns directories. Default: "./patterns"') do |value|

 

    options[:dirs] = value

 

  end

 

  opts.on('-m MESSAGE', '--msg MESSAGE', 'Your raw message to be matched') do |value|

 

    options[:message] = value

 

  end

 

  opts.on('-p PATTERN', '--pattern PATTERN', 'Your grok pattern to be compiled') do |value|

 

    options[:pattern] = value

 

  end

 

  opts.on('-n', '--named', 'Named captures only') do

 

  end

 

end.parse!

 

grok = Grok.new

 

options[:dirs].each do |dir|

 

  if File.directory?(dir)

 

    dir = File.join(dir, "*")

 

  end

 

  Dir.glob(dir).each do |file|

 

    grok.add_patterns_from_file(file)

 

  end

 

end

 

grok.compile(options[:pattern], options[:named])

 

puts JSON.pretty_generate(grok.match(options[:message]).captures())

 


调试 grok

[ln@vcyber myruby]$ ruby grokdebug.rb -m '10.1.1.1' -p '%{IP:client}' 

{ 

  "client": [ 

    "10.1.1.1" 

  ], 

  "IPV6": [ 

    null 

  ], 

  "IPV4": [ 

    "10.1.1.1" 

  ] 

}

 

[ln@vcyber myruby]$ ruby  grokdebug.rb -m '10.1.8.166:8000' -p '%{HOSTPORT:test}' 

{ 

  "test": [ 

    "10.1.8.166:8000" 

  ], 

  "IPORHOST": [ 

    "10.1.8.166" 

  ], 

  "IP": [ 

    "10.1.8.166" 

  ], 

  "IPV6": [ 

    null 

  ], 

  "IPV4": [ 

    "10.1.8.166" 

  ], 

  "HOSTNAME": [ 

    null 

  ], 

  "POSINT": [ 

    "8000" 

  ] 

} 

[ln@vcyber myruby]$

若提示找不到“pattern”,你可以将 logstash 目录底下的复制过来拿来用~

ELK——为调试 Logstash Grok 表达式,安装 GrokDebuger 环境的更多相关文章

  1. ELK 架构之 Logstash 和 Filebeat 安装配置

    上一篇:ELK 架构之 Elasticsearch 和 Kibana 安装配置 阅读目录: 1. 环境准备 2. 安装 Logstash 3. 配置 Logstash 4. Logstash 采集的日 ...

  2. ELK 架构之 Elasticsearch、Kibana、Logstash 和 Filebeat 安装配置汇总(6.2.4 版本)

    相关文章: ELK 架构之 Elasticsearch 和 Kibana 安装配置 ELK 架构之 Logstash 和 Filebeat 安装配置 ELK 架构之 Logstash 和 Filebe ...

  3. ELK 架构之 Logstash 和 Filebeat 配置使用(采集过滤)

    相关文章: ELK 架构之 Elasticsearch 和 Kibana 安装配置 ELK 架构之 Logstash 和 Filebeat 安装配置 ELK 使用步骤:Spring Boot 日志输出 ...

  4. 安装logstash5.4.1,并使用grok表达式收集nginx日志

    关于收集日志的方式,最简单性能最好的应该是修改nginx的日志存储格式为json,然后直接采集就可以了. 但是实际上会有一个问题,就是如果你之前有很多旧的日志需要全部导入elk上查看,这时就有两个问题 ...

  5. ELk(Elasticsearch, Logstash, Kibana)的安装配置

    目录 ELk(Elasticsearch, Logstash, Kibana)的安装配置 1. Elasticsearch的安装-官网 2. Kibana的安装配置-官网 3. Logstash的安装 ...

  6. [elk]logstash grok原理

    logstash语法 http://www.ttlsa.com/elk/elk-logstash-configuration-syntax/ https://www.elastic.co/guide/ ...

  7. ELK系列(一):安装(elasticsearch + logstash + kibana)

    因为公司使用ELK的缘故,这两天尝试在阿里云上安装了下ELK,这里做个笔记,有兴趣的同学可以看下. 先大致介绍下ELK,ELK是三个组件的缩写,分别是elasticsearch.logstash.ki ...

  8. Grok Debugger安装配置

    前言:由于使用ELK对日志进行集中管理,grok表达式无法验证是否正确,所以使用Grok Debugger进行调试,但是由于国外网站上不去(http://grokdebug.herokuapp.com ...

  9. logstash -grok插件语法介绍

      介绍 logstash拥有丰富的filter插件,它们扩展了进入过滤器的原始数据,进行复杂的逻辑处理,甚至可以无中生有的添加新的 logstash 事件到后续的流程中去!Grok 是 Logsta ...

随机推荐

  1. CSS中父元素高度没有随子元素高度的改变而改变,应该如何解决?

    如果子元素没有设置浮动(float),父元素实际上会根据内容,自动宽高进行适应的. 当子元素增加了浮动后,最简单的处理方法是给父元素添加overflow:hidden属性,此时父元素的高度会随子元素的 ...

  2. 在Linux中让打印带颜色的字

    echo显示带颜色,需要使用参数-e 格式如下: echo -e "\033[字背景颜色;文字颜色m字符串\033[0m" 例如: echo -e "\033[41;37 ...

  3. Yaf零基础学习总结3-Hello Yaf

    Yaf零基础学习总结3-Hello Yaf 上一次我们已经学习了如何安装yaf了,准备工作做好了之后我们来开始实际的编码了,码农都知道一个经典的语句就是“Hello World”了,今天我们开始入手Y ...

  4. 20+ 个很有用的 jQuery 的 Google 地图插件

    转自:http://www.oschina.net/translate/20-useful-jquery-google-maps-plugins Google 地图在寻找我们想要了解的商店或者其它有趣 ...

  5. 入门级:怎么使用C#进行套接字编程(二)

    入门级:怎么使用C#进行套接字编程(一) 原文地址如下: C# Server Socket program C# Client Socket program 代码环境:VS2010+Win8.1企业评 ...

  6. 在express站点中使用ejs模板引擎

    在express站点中使用ejs模板引擎 文/玄魂 目录 在express站点中使用ejs模板引擎 前言 1.1         安装 1.2修改app.js 1.3创建测试页面 前言 使用 vs创建 ...

  7. 新手容易混乱的String+和StringBuffer,以及Java的方法参数传递方式。

    之前在交流群里和猿友们讨论string+和stringbuffer哪个速度快以及Java的方法参数传递的问题,引起了群里猿友的小讨论.最终LZ得出的结果是string+没有stringbuffer快, ...

  8. 安卓-PC-Arduino3方通信实现

    请仔细理解相关参数,如端口设置.IP设置.COM口设置......等等.....不要盲目COPY.....这涉及手机.电脑和一个单片机,其中一台电脑作为服务器并与单片机相连,负责通过网络与客户端通信( ...

  9. Mathematica修改默认字体

    1. 打开Option Inspector 2. 第一个下拉框选择Global Preference, 搜索stylehints 3. 修改字体为想要换的字体FamilyName, 比如换成苹果黑体 ...

  10. ASP.NET MVC中三方登录: 微软、谷歌、Office365

    创建一个MVC的工程,在Startup.Auth.cs文件中,我们能看到这样的一些代码: 这其实是微软已经帮我们实现好的三方登录的接口,我们只需要创建相应的开发者账号,并在其中配置好跟我们应用程序相关 ...