ELK——为调试 Logstash Grok 表达式,安装 GrokDebuger 环境
内容
- 安装 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
这步可能要多试几次,不是你的问题,是它们的网络问题。
若不能 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 环境的更多相关文章
- ELK 架构之 Logstash 和 Filebeat 安装配置
上一篇:ELK 架构之 Elasticsearch 和 Kibana 安装配置 阅读目录: 1. 环境准备 2. 安装 Logstash 3. 配置 Logstash 4. Logstash 采集的日 ...
- ELK 架构之 Elasticsearch、Kibana、Logstash 和 Filebeat 安装配置汇总(6.2.4 版本)
相关文章: ELK 架构之 Elasticsearch 和 Kibana 安装配置 ELK 架构之 Logstash 和 Filebeat 安装配置 ELK 架构之 Logstash 和 Filebe ...
- ELK 架构之 Logstash 和 Filebeat 配置使用(采集过滤)
相关文章: ELK 架构之 Elasticsearch 和 Kibana 安装配置 ELK 架构之 Logstash 和 Filebeat 安装配置 ELK 使用步骤:Spring Boot 日志输出 ...
- 安装logstash5.4.1,并使用grok表达式收集nginx日志
关于收集日志的方式,最简单性能最好的应该是修改nginx的日志存储格式为json,然后直接采集就可以了. 但是实际上会有一个问题,就是如果你之前有很多旧的日志需要全部导入elk上查看,这时就有两个问题 ...
- ELk(Elasticsearch, Logstash, Kibana)的安装配置
目录 ELk(Elasticsearch, Logstash, Kibana)的安装配置 1. Elasticsearch的安装-官网 2. Kibana的安装配置-官网 3. Logstash的安装 ...
- [elk]logstash grok原理
logstash语法 http://www.ttlsa.com/elk/elk-logstash-configuration-syntax/ https://www.elastic.co/guide/ ...
- ELK系列(一):安装(elasticsearch + logstash + kibana)
因为公司使用ELK的缘故,这两天尝试在阿里云上安装了下ELK,这里做个笔记,有兴趣的同学可以看下. 先大致介绍下ELK,ELK是三个组件的缩写,分别是elasticsearch.logstash.ki ...
- Grok Debugger安装配置
前言:由于使用ELK对日志进行集中管理,grok表达式无法验证是否正确,所以使用Grok Debugger进行调试,但是由于国外网站上不去(http://grokdebug.herokuapp.com ...
- logstash -grok插件语法介绍
介绍 logstash拥有丰富的filter插件,它们扩展了进入过滤器的原始数据,进行复杂的逻辑处理,甚至可以无中生有的添加新的 logstash 事件到后续的流程中去!Grok 是 Logsta ...
随机推荐
- Eclipse中出现-访问限制由于对必需的库XX具有一定限制,因此无法访问类型
在项目上点击右键,找到构建路径.然后选择配置配置路径.按如下步骤来配置: 1 点击库选项 2把系统库扩展开来 3点击访问规则 4点击右边的添加按钮 5添加访问规则 6 分辨率设为可访问 7规则模式设为 ...
- java for循环和数组--冒泡排序、二分查找法
//100以内与7相关的数 for(int a=1;a<=100;a++){ if(a%7==0||a%10==7||a/10==7){ System.out.print(a+ ...
- Search in Rotated Sorted Array II leetcode
原题链接,点我 该题解题参考博客 和Search in Rotated Sorted Array唯一的区别是这道题目中元素会有重复的情况出现.不过正是因为这个条件的出现,出现了比较复杂的case,甚至 ...
- ubuntu 14.04 键盘快捷键显示
安装完ubuntu14.04后 第一次登陆,会弹出键盘快捷键的一个大体预览, 也没有一个关闭按钮, 没看完就自动消失了. 让其重现的方法: 按住 super键 ,也就是键盘上的 win键 . 键盘 ...
- Java 第一课
怎么去学习java: 1,课前预习,加深对课上学习的吸收! 2,课后预习,让我们能够对所学内容的掌握! 3.通过画流程图,锻炼逻辑思维能力,学会从程序员的角度去看到问题,摒弃以前的惯性的思维方式!
- 《理解 ES6》阅读整理:函数(Functions)(二)Unnamed Parameters
使用未命名参数(Working with Unnamed Parameters) JavaScript并不限制传递给函数的实参个数,你可以总是传递比形参个数多或者少的实参.在ES6中当向函数传递比形参 ...
- 体验应用程序在Mac/iPhone/iPad之间的Handoff
对于苹果新推出的Handoff功能,之前只体验了接电话的Handoff.一个电话打过来,iPhone/iPad/Mac同时响起,这时如果手上拿着东西在吃,就可以直接在Mac上接电话. 除此之外,还可以 ...
- 学习WPF——元素绑定
概念 从源对象提取一些信息,并用这些信息设置目标对象的属性 示例 在给TextBlock控件的FontSize属性赋值时,我们使用了绑定表达式 数据绑定表达式使用XAML的标记扩展(因此具有花括号)( ...
- [C#] Timer + Graphics To Get Simple Animation (简单的源码例子,适合初学者)
>_<" 这是一个非常简单的利用C#的窗口工程创立的程序,用来做一个简单的动画,涉及Timer和Graphics,适合初学者,高手略过~
- [ACM_模拟][ACM_暴力] Lazier Salesgirl [暴力 懒销售睡觉]
Description Kochiya Sanae is a lazy girl who makes and sells bread. She is an expert at bread making ...