ELK logstash的grok 自定义正则匹配日志

一、logstash 配置 grok

1、配置单个规则

这里的流程是直接用logstash分析input源日志文件,然后处理日志数据flitergrok,最后把数据输出inputelasticsearch

匹配下面内容中的 client_ipmethodurlduration

[2020-09-26 08:34:41] 127.0.0.1 GET local.test.com:8010/index/index/test?name=张三&id=9 0.412191
[ info ] 信息异常

grok内容可以这么写:

input {
 file {
    ...
  }
}
filter {  
    grok {  
		match => {
			"message"=>"[\s\S]*\]\s(?<client_ip>[0-9\.]+)\s(?<method>[A-Za-z]+)\s(?<url>[^\s]+)\s(?<duration>[0-9\.]+)[\s\S]*"
		}
   }  
} 
output {
    ...
}

2、配置多个规则

由于这里没做日志分割,所以写进es的记录是每一行一条记录,所以我们要匹配多种不同格式的日志。关于日志拆分,这个我用filebeat结合logstash来实现。

我们既要匹配 1 中的信息,又要匹配下面内容中的sqlsql_duration

[ SQL ] SHOW COLUMNS FROM `user` [ RunTime:0.074797s ]

grok 可以这么写

input {
    file {
        ...
    }
}
filter {  
    grok {  
		match => {
			"message" => [
				"[\s\S]*\]\s(?<client_ip>[0-9\.]+)\s(?<method>[A-Za-z]+)\s(?<url>[^\s]+)\s(?<duration>[0-9\.]+)[\s\S]*",
				"\[\sSQL\s\]\s(?<sql>[\s\S]*)\[\sRunTime:(?<sql_duration>[0-9\.]+)"
			]
		}
   }  
} 
output {
    elasticsearch {
	    ...
	}
}

3、windows启动logstash

cd D:\ProgramFiles\ELK\logstash-7.2.0\bin
logstash.bat -f ../logstash_test.conf
  • 配置文件 logstash_test.conf写哪都可以,只要你能够正确指定。我的配置文件写在logstash-7.2.0 根目录,也是bin 的同级目录

二、grok 在线调试

1、在线调试

[2020-09-26 08:34:41] 127.0.0.1 GET local.test.com:8010/index/index/test?name=张三&id=9 0.412191
[ info ] 信息异常
  • 正则
[\s\S]*\]\s(?<client_ip>[0-9\.]+)\s(?<method>[A-Za-z]+)\s(?<url>[^\s]+)\s(?<duration>[0-9\.]+)[\s\S]*
  • 结果
{
  "client_ip": [
    [
      "127.0.0.1"
    ]
  ],
  "method": [
    [
      "GET"
    ]
  ],
  "url": [
    [
      "local.test.com:8010/index/index/test?name=张三&id=9"
    ]
  ],
  "duration": [
    [
      "0.412191"
    ]
  ]
}
  • 截图
    在这里插入图片描述

2、kibana 中调试

如果你安装了 kibana,也可以在 kibana 中调试

  • kibana首页 -> Console
    在这里插入图片描述

  • 选择 Grok Debugger
    在这里插入图片描述

三、相关文章

[ 文档 ]

[ 博客 ]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值