logstash数据处理及格式化功能详解

Grok正则提取日志

环境延续我上一篇ELK单机版的filebeat-->redis-->logstash-->elasticsearch-->kibana环境,详情请参考:

 Elasticsearch + Logstash + Kibana +Redis +Filebeat 单机版日志收集环境搭建

正则表达式

普通正则表达式

. 任意一个字符

* 前面一个字符出现0次或者多次

[abc] 中括号内任意一个字符

[^abc] 非中括号内的字符

[0-9] 表示一个数字

[a-z]   小写字母

[A-Z] 大写字母

[a-zA-Z] 所有字母

[a-zA-Z0-9] 所有字母+数字

[^0-9] 非数字

^xx xx开头

xx$ xx结尾

\d 任何一个数字

\s 任何一个空白字符

扩展正则表达式,在普通正则符号再进行了扩展

? 前面字符出现0或者1

+ 前面字符出现1或者多次

{n} 前面字符匹配n

{a,b} 前面字符匹配ab

{,b} 前面字符匹配0次到b

{a,} 前面字符匹配aa+

(string1|string2) string1string2

 

在Kibana的grokdebugger上进行测试

在编写grok提取正则配置前可以在Kibana的grokdebugger上进行测试:

比如我想提取一个如下的Nginx日志:

 192.168.237.1 - - [24/Feb/2019:17:48:47 +0800] "GET /shijiange HTTP/1.1" 404 571 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"

那么可以按照正则表达式和grok语法在grokdebugger进行如下测试:

可以看到我的Grok成功提取了我想要的内容,我的Grok匹配规则如下:

(?<clientip>[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}) - - \[(?<requesttime>[^ ]+ \+[0-9]+)\] "(?<requesttype>[A-Z]+) (?<requesturl>[^ ]+) HTTP/\d.\d" (?<status>[0-9]+) (?<bodysize>[0-9]+) "[^"]+" "(?<ua>[^"]+)"

(?<字段名>正则)表示将匹配的内容提取为字段,其他不用提取为字段的地方原样写上或者用正则匹配即可。

 

在配置文件中引入Grok提取规则

vim ./logstash_grok.conf
# logstash_grok.conf内容
input {
    
   redis {
        host => '192.168.1.4'
        port => 6379
        key => "queue"
        data_type => "list"
  }
}
filter {
    grok {
        match => {
            "message" => '(?<clientip>[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}) - - \[(?<requesttime>[^ ]+ \+[0-9]+)\] "(?<requesttype>[A-Z]+) (?<requesturl>[^ ]+) HTTP/\d.\d" (?<status>[0-9]+) (?<bodysize>[0-9]+) "[^"]+" "(?<ua>[^"]+)"'
        }
    }
}
output {
  elasticsearch {
    hosts => ["ht
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值