为调试 Logstash Grok表达式,安装 GrokDebuger 环境

 

内容

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

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

用 logstash 收集 IIS、tomcat日志,或是其他,不找个调试 grok 的工具,每次重新加载文件,然后还得把 sincedb 文件删了,否则 logstash 不会重复处理文件,很麻烦。

本文主要介绍如何安装 GrokDebuger 环境。安装有先后顺序。

安装 RVM

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

参见:http://rvm.io/

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

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

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

RVM 安装位置自己 FIND 一下。

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

rvm group add rvm "$USER"
 
rvm fix-permissions“$USER”

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


安装 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

[[email protected] myruby]$ ruby grokdebug.rb -m ‘10.1.1.1‘ -p ‘%{IP:client}‘ 

{ 
  "client": [ 
    "10.1.1.1" 
  ], 
  "IPV6": [ 
    null 
  ], 
  "IPV4": [ 
    "10.1.1.1" 
  ] 
}
 
[[email protected] 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" 
  ] 
} 
[[email protected] myruby]$

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

时间: 2024-07-29 09:44:20

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

python解释器安装与环境变量调试

Python解释器安装与环境变量调试 Python解释器安装(3.6): www.python.org这个是python解释器的官网,一定要牢记. 鉴于市场上有两种python版本(2和3),今天两种版本都装一下,互相学习,如有错误还请各位评论指正. ![img](https://img2018.cnblogs.com/blog/1730011/201907/1730011-20190702152252778-1968035960.png) windows系统![](https://img201

ELK统一日志管理平台第三篇-logstash grok插件的使用

1. ELK统一日志管理平台第三篇-logstash grok插件的使用   在本篇博文中,主要讲解如下几个知识点和实践经验,供大家参考:   1. 关于JAVA应用程序的日志内容标准规范:   2. 如何使用logstash的grok插件来完成message字段的拆分:   3. 定时删除Es的索引: 1. 关于JAVA应用程序的日志内容标准规范:   最近公司一直在主推ELK这个项目,而我是ELK这个项目的运维人员.所以针对ELK项目会有很多经验输出:由于我们公司的业务系统以JAVA语言开发

logstash grok使用案例

Grok 是 Logstash 最重要的插件.你可以在 grok 里预定义好命名正则表达式,在稍后(grok参数或者其他正则表达式里)引用它.它非常适用于syslog logs,apache和一些其他的webserver logs,以及mysql logs.grok有很多定义好pattern,当然也可以自己定义. grok的语法: %{SYNTAX:SEMANTIC} SYNTAX表示grok定义好的pattern,SEMANTIC表示自定义的字段. 例如192.168.0.100 用%{IP:

Python学习(一)安装、环境配置以及IDE推荐

Python的安装.环境配置以及IDE推荐 官网:https://www.python.org/ 版本:2.x 和 3.x 差别较大:python3是不向下兼容,建议未学过2.x版本的就直接学习3.x版本:版本区别可参考网官网介绍 WINDOWS下安装 Python 可在多系统下安装运行,先介绍 WINDOWS 下 Python 的安装及环境配置,(图示参考:百度经验 )安装步骤如下: 官网下载安装程序:https://www.python.org/downloads/ 下载好后双击打开,选择使

php集成环境和自己配置的区别,php集成环境、php绿色集成环境、php独立安装版环境这三者的区别

最近有学生问我,直接使用PHP集成环境和我们自己独立安装的php环境有什么不一样吗? 答:PHP集成环境,和自己安装的php环境实际上没啥区别的,只不过大部分的集成环境进行了一些绿化操作,本质上没啥区别. 下面我们先来介绍一下集成环境的基本概念.常见的php集成环境以及集成环境的选择,然后再详细说明PHP集成环境与安装版的具体区别. 你们应该会经常听到WAMP这词吧,那么WAMP是什么意思? Windows下的Apache+Mysql+PHP,称为WAMP. 而Linux系统下的Apache+M

jdk安装和环境变量配置

jdk的安装和环境变量配置每次换新环境都在做,但是每次都没有认真去想是怎么做的,反正每次打开百度搜索照做就是.这次整理一下,也顺便理清一下其中的原理. 1.第一步当然就是下载jdk,我这边下载的是jdk1.7. 以jdk1.7为例,至于下载不用多说,随处可下.直接安装,一路点默认下去,很简单就完成了. 2.安装完成以后,则在c盘的program files下会出现一个Java的文件夹. 其下层的文件夹如下 3.第三步就是设置系统的环境变量 计算机--属性--高级设置--环境变量---系统环境变量

如何为一个eclipse安装android环境

据说android已经不再支持android adt-bundle的开发环境了,所以如果继续使用的话,会不再更新 使用eclipse来安装android环境或者使用android studio 但是以前很多项目都是eclipse环境下面的,如果换到android studio很难 使用eclipse+adt+sdk+jdk就可以轻松部署好android的开发环境,教程 转载别人的,自己修改了一点 引言 在windows安装Android的开发环境不简单也说不上算复杂,本文写给第一次想在自己Win

Kibana+Logstash+Elasticsearch+Redis安装部署

最近做日志分析,发现logstash较符合自己的需求, Logstash:做系统log收集,转载的工具.同时集成各类日志插件,对日志查询和分析的效率有很大的帮助.一般使用shipper作为log收集.indexer作为log转载. Logstash shipper收集log 并将log转发给redis 存储 Logstash indexer从redis中读取数据并转发给elasticsearch redis:是一个db,logstash shipper将log转发到redis数据库中存储.Log

window平台下MongoDB安装和环境搭建

首先,介绍下MongoDB的优点: · 高可扩展性 · 分布式存储 · 低成本 · 结构灵活 window平台下MongoDB安装和环境搭建: 1.下载安装包或压缩包   官网下载:https://www.mongodb.com/download-center 下载好之后直接安装,安装过程中选择customr 2.添加db存储和日志存储文件夹 在你喜欢的地方新建一个文件夹用于存放数据库的文件,在这个文件夹下还需要新建三个文件夹(我的是在D盘下),一个data,一个logs,一个etc(配置),名