grok 正则解析日志例子<1>
<pre name="code" class="html">下面是日志的样子
55.3.244.1 GET /index.html 15824 0.043 正则的例子
%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration} 配置文件里是怎么写得? input {
file {
path => “/var/log/http.log”
}
}
filter {
grok {
match => [ "message", "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}" ]
}
} 解析后,是个什么样子? client: 55.3.244.1
method: GET
request: /index.html
bytes: 15824
duration: 0.043 /*********1 zjtest7-frontend:/usr/local/logstash-2.3.4/config# cat log01.conf
input {
file {
path => "/var/log/http.log"
}
} output {
stdout {
codec=>rubydebug{}
}
}
此时的输出
Pipeline main started
{
"message" => "55.3.244.1 GET /index.html 15824 0.043",
"@version" => "1",
"@timestamp" => "2016-08-27T15:03:23.554Z",
"path" => "/var/log/http.log",
"host" => "0.0.0.0"
} /***换成json呢? zjtest7-frontend:/usr/local/logstash-2.3.4/config# ../bin/logstash -f log01.conf
Settings: Default pipeline workers: 1
Pipeline main started
{"message":"55.3.244.1 GET /index.html 15824 0.043","@version":"1","@timestamp":"2016-08-27T15:05:07.945Z","path":"/var/log/http.log","host":"0.0.0.0"} /***分别发送到elasticsearch看下: zjtest7-frontend:/usr/local/logstash-2.3.4/config# cat log01.conf
input {
file {
path => "/var/log/http.log"
}
} output {
elasticsearch {
hosts => "192.168.32.80:9200"
index => "logstash-zjzc-test"
}
stdout {
codec => rubydebug
}
} 输出:
Settings: Default pipeline workers: 1
Pipeline main started
{
"message" => "55.3.244.1 GET /index.html 15824 0.043",
"@version" => "1",
"@timestamp" => "2016-08-27T15:08:00.336Z",
"path" => "/var/log/http.log",
"host" => "0.0.0.0"
} elasticsearch:
{ "_index": "logstash-zjzc-test",
"_type": "logs",
"_id": "AVbMiuMLEY-onx06xWo-",
"_version": 1,
"_score": 1,
"_source": {
"message": "55.3.244.1 GET /index.html 15824 0.043",
"@version": "1",
"@timestamp": "2016-08-27T15:08:00.336Z",
"path": "/var/log/http.log",
"host": "0.0.0.0"
} } /*******使用grok 正则解析日志
zjtest7-frontend:/usr/local/logstash-2.3.4/config# cat log01.conf
input {
file {
path => "/var/log/http.log"
}
}
filter {
grok {
match => [ "message", "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}" ]
}
} output {
elasticsearch {
hosts => "192.168.32.80:9200"
index => "logstash-zjzc-test"
}
stdout {
codec => rubydebug
}
} 输出:
zjtest7-frontend:/usr/local/logstash-2.3.4/config# ../bin/logstash -f log01.conf
Settings: Default pipeline workers: 1
Pipeline main started
{
"message" => "55.3.244.1 GET /index.html 15824 0.043",
"@version" => "1",
"@timestamp" => "2016-08-27T15:09:59.173Z",
"path" => "/var/log/http.log",
"host" => "0.0.0.0",
"client" => "55.3.244.1",
"method" => "GET",
"request" => "/index.html",
"bytes" => "15824",
"duration" => "0.043"
} elasticsearch:
{ "_index": "logstash-zjzc-test",
"_type": "logs",
"_id": "AVbMjLJeEY-onx06xWpC",
"_version": 1,
"_score": 1,
"_source": {
"message": "55.3.244.1 GET /index.html 15824 0.043",
"@version": "1",
"@timestamp": "2016-08-27T15:09:59.173Z",
"path": "/var/log/http.log",
"host": "0.0.0.0",
"client": "55.3.244.1",
"method": "GET",
"request": "/index.html",
"bytes": "15824",
"duration": "0.043"
} }
grok 正则解析日志例子<1>的更多相关文章
- logstash 使用grok正则解析日志
http://xiaorui.cc/2015/01/27/logstash%E4%BD%BF%E7%94%A8grok%E6%AD%A3%E5%88%99%E8%A7%A3%E6%9E%90%E6%9 ...
- Logstash使用grok插件解析Nginx日志
grok表达式的打印复制格式的完整语法是下面这样的: %{PATTERN_NAME:capture_name:data_type}data_type 目前只支持两个值:int 和 float. 在线g ...
- 使用logstash的grok插件解析springboot日志
使用logstash的grok插件解析springboot日志 一.背景 二.解决思路 三.前置知识 四.实现步骤 1.准备测试数据 2.编写`grok`表达式 3.编写 logstash pipel ...
- 使用Hive的正则解析器RegexSerDe分析nginx日志
1.环境: hadoop-2.6.0 + apache-hive-1.2.0-bin 2.使用Hive分析nginx日志,站点的訪问日志部分内容为: cat /home/hadoop/hivetest ...
- Logstash使用grok过滤nginx日志(二)
在生产环境中,nginx日志格式往往使用的是自定义的格式,我们需要把logstash中的message结构化后再存储,方便kibana的搜索和统计,因此需要对message进行解析. 本文采用grok ...
- python高效解析日志入库
python脚本解析日志文件入库一般有三个重要的步骤:读文件.解析文件.入库.在这三个方面下功夫,可确保我们获得最优的性能(这里不讨论并发) 1 读文件:一次读一行,磁盘IO太多,效率低下:一次性读如 ...
- elk系列7之通过grok分析apache日志【转】
preface 说道分析日志,我们知道的采集方式有2种: 通过grok在logstash的filter里面过滤匹配. logstash --> redis --> python(py脚本过 ...
- C语言解析日志,存储数据到伯克利DB
编译命令 gcc -o dbwriter dbwriter.c -ldb dbwriter.c #include <assert.h> #include <stdlib.h> ...
- Grok 正则捕获
Grok 正则捕获: \s+(?<request_time>\d+(?:\.\d+)?)\s+ 回顾下: (?:pattern) 匹 配 pattern 但不获取匹配结果,也就是说这是一个 ...
随机推荐
- Code First 创建数据库
最近在对以前学的知识做一个总结,EF 这块,Code First 是很重要的一部分,方便快捷创建模型. Code First有两种配置方式: DataAnnatation: [Table(&quo ...
- 完全跨站点跨域名单点(SSO)同步登录和注销
先来说说什么是单点登录(SSO).来自百科的介绍:SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次主 ...
- #include<math.h>
1.sin(a)类:a是弧度值: 2.abs(b):结果是b的绝对值: 3.exp(c):exp()用来计算以e为底的x次方值,即ex值,然后将结果返回.返回值: 返回e的x次方计算结果. 4.log ...
- Unity屏幕射线碰撞
Layers层: 从Layers设置看来,最多支持32层. 图层的值开始依次 0^2,1^2, 2^2, 3^3 依次增加. 当摄像机Culling Mask属性 Nothing= –1 Eveni ...
- Maven 工程下 Spring MVC 站点配置 (一)
最近,查找一些具体资料时,虽然会有很多,但是系统的却很少,尤其是对maven 下 spring mvc 站点搭建的配置,总是说的很多但让新手一目了然的步骤却少之又少. 对此闲暇时整理了一下,做了一套较 ...
- 初入 Spring.net
IOC:Inversion Of Control 控制翻转:就是创建对象的权利由开发人员自己控制,转换到了由容器来控制 我用的是winform里的一个按键来触发的 首先要引入两个Spring.net的 ...
- 转:说说JSON和JSONP,也许你会豁然开朗,含jQuery用例
说到AJAX就会不可避免的面临两个问题,第一个是AJAX以何种格式来交换数据?第二个是跨域的需求如何解决?这两个问题目前都有不同的解决方案,比如数据可以用自定义字符串或者用XML来描述,跨域可以通过服 ...
- 使用FindControl("id")查找控件 返回值都是Null的问题
做了一个通过字符串ID查找页面控件并且给页面控件赋值的功能,过程中遇到了this.FindControl("id")返回值都是Null的问题,记录一下解决办法. 问题的原因是我所要 ...
- Mongoose的使用
最近想做一个练手的App小项目.考虑到数据接口的问题,因为关系型数据库用的比较多,也有一定经验了,所以打算使用比较火的MongoDB作为数据库,下面就介绍一下Mongoose的使用方法吧. 概念:Mo ...
- Sql Server相关的性能计数器
OS Memory and Paging 性能计数器: 1.Memory\Availability Mbytes 未使用的物理内存(非页面文件),通常情况下它应该大于100MB 2.Memory\ ...