搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(十四) logstash grok 正则解析日志
2017-09-16 10:46
537 查看
摘要
这一节补充一下logstash使用grok正则解析日志
Grok 是 Logstash 最重要的插件。通过在filter中使用grok,可以把日志中的关键字匹配出来。
grok正则主要有两部分:
一是grok自带的grok模式表达式,即是grok预定义好的一些表达式,可以匹配一些常见的字符串,如ipv4、ipv6、mac地址等
二是通过正则表达式来匹配,grok支持约120种正则表达式,详见120种grok正则
1、Grok Debugger在线匹配正则
在我们正式我们一一介绍之前,给大家推荐一款在线匹配正则的网站Grok Debugger,这个网站必须通过https访问,而且需要FQ,至于如何FQ,各位自行百度。
该网站界面如下:
在最上面一个框输入你要匹配的字符串,第二个框输入正则表达式,在最下面就会自动显示匹配结果,真的很方便哦。在接下来的教程里,我也使用它来做示例。
2、grok自定义正则匹配
自定义正则的语法为:
非常简单吧,只要把准备好的正则放进去,再给他取个字段名就行了。
但是写正则确实是个很麻烦的事情,所以grok插件已经预定义好了一些匹配模式。我们接着来看。
3、grok模式表达式
Grok模式的语法是
2) MAC —— MAC地址
3) DATA —— 相当于正则的
4) WORD —— 等价于
5 ) QUOTEDSTRING 或 QS —— 带引号的字符串
6 ) NOTSPACE —— 相当于
7 ) SPACE —— 相当于
8 ) EMAILADDRESS —— 电子邮件地址
9 ) EMAILLOCALPART —— 匹配电子邮件的用户名部分
10 ) USERNAME 或 USER —— 匹配用户名
11) 数字类型格式
12) UUID —— 标准唯一识别码
13) 主机名称格式
14) PATH —— 路径格式的字符串
15) URI地址格式
16) 日期时间表达式
17) LOGLEVEL —— 日志等级
这一节补充一下logstash使用grok正则解析日志
Grok 是 Logstash 最重要的插件。通过在filter中使用grok,可以把日志中的关键字匹配出来。
grok正则主要有两部分:
一是grok自带的grok模式表达式,即是grok预定义好的一些表达式,可以匹配一些常见的字符串,如ipv4、ipv6、mac地址等
二是通过正则表达式来匹配,grok支持约120种正则表达式,详见120种grok正则
1、Grok Debugger在线匹配正则
在我们正式我们一一介绍之前,给大家推荐一款在线匹配正则的网站Grok Debugger,这个网站必须通过https访问,而且需要FQ,至于如何FQ,各位自行百度。
该网站界面如下:
在最上面一个框输入你要匹配的字符串,第二个框输入正则表达式,在最下面就会自动显示匹配结果,真的很方便哦。在接下来的教程里,我也使用它来做示例。
2、grok自定义正则匹配
自定义正则的语法为:
(?<field_name>the pattern here),即是
(?<字段名>正则表达式),示例如下
非常简单吧,只要把准备好的正则放进去,再给他取个字段名就行了。
但是写正则确实是个很麻烦的事情,所以grok插件已经预定义好了一些匹配模式。我们接着来看。
3、grok模式表达式
Grok模式的语法是
%{SYNTAX:SEMANTIC},如
%{ IP :my_ip }将匹配一段IP地址,并且命名为
my_ip,示例如下:
然后我详细介绍一下所有的grok模式表达式——
1) IP —— 匹配IP地址,IPv4和IPv6都可以
[code]//ipv4如:127.0.0.1
//ipv6如:FB21:1233:55B2:AA44:12B8:6761:890F:AB31
2) MAC —— MAC地址
//如:08:00:20:0A:8C:6D
3) DATA —— 相当于正则的
.*?
// . 匹配除\n 以外的任何字符 // * 相当于0-正无穷 // ? 为懒惰模式,匹配到第一个就结束 /** * 也就是说,DATA能在一行里匹配任何不以\n结束的字符,差不多就是一行了... */
4) WORD —— 等价于
\b\w+\b,匹配包含数字和大小写的字符串
//如:hello_world、String、 I_love_code
5 ) QUOTEDSTRING 或 QS —— 带引号的字符串
//如:"Hello husen","hey, girls!"
6 ) NOTSPACE —— 相当于
\S+,不带任何空格的字符串
// \S 是匹配除空格外的任何字符, + 代表 1-正无穷 //如: developments、 china
7 ) SPACE —— 相当于
\s*,只能匹配空格字符串
// \s 匹配空格,包括换行和空格, * 代表0-正无穷 //如: (你猜这里有几个空格)
8 ) EMAILADDRESS —— 电子邮件地址
//如:admin@example.com
9 ) EMAILLOCALPART —— 匹配电子邮件的用户名部分
/* * 首位由大小写字母组成,其他位由数字、大小写及特殊字符(_.+-=\:\)组成的字符串 * 注意,国内的QQ纯数字邮箱账号是无法匹配的 如:admin@example.com 匹配 admin
10 ) USERNAME 或 USER —— 匹配用户名
/* * 由数字、大小写及特殊字符(._-)组成的字符串 */ //如:husen、admin、xiao.ming
11) 数字类型格式
INT //正整数、0、负整数都可,如 -1234、0、12412 BASE10NUM 或 NUMBER //十进制数,包括整数和小数,如: 345、 3.1415926 BASE16NUM //十六进制整数,如:0xa12F、0xDc34 BASE16FLOAT //十六进制数字,包括整数和小数
12) UUID —— 标准唯一识别码
//如: 9584dba3-fe26-418d-8625-2d71a5d78049,9584dba3fe26418d86252d71a5d78049
13) 主机名称格式
//HOSTNAME //主机名,如www.hemingsheng.cn IPORHOST // IP或者主机名称 HOSTPORT //主机名+端口号,127.0.0.1:8080,www.hemingsheng.cn:81
14) PATH —— 路径格式的字符串
//如: /home/husen/test.log, D:\Desktop\elk\elk中文指南
15) URI地址格式
URIPROTO //URI协议,如:https, sftp URIHOST //URI主机,如:www.hemingsheng.cn, 115.159.64.86:8080 URIPATH // URI路径,如:/home.html, /web/login.php URIPARAM //GET形式的URI参数,如:? username=qq_123&goto=homepage URIPATHPARAM //URI路径+GET参数,如: /web/login.phpusername=qq_123&goto=homepage URI //完整的URI,如:www.hemingsheng.cn/web/login.php?username=qq_123&goto=homepage
16) 日期时间表达式
MONTH //月份名称,如:Jan、January MONTHNUM //月份数字,如:06、1、12 MONTHDAY //日期数字,如:15、29、31、09 DAY //星期几,如:Tues、Friday YEAR //年份数字,如:2017、1995 HOUR //小时数字,如:24、13 MINUTE //分钟数字,如:13、59 SECOND //秒钟数字,如:12、54 TIME //时间,如:12:34:12 DATE_US //美国日期格式,如:10-15-1982、10/15/1982 DATE_EU //欧洲日期格式,如:15-10-1982、15.10.1982 DATE //日期,美国日期%{DATE_US}或者欧洲日期%{DATE_EU} DATESTAMP //完整日期+时间,如:07-03-2016 00:34:06 HTTPDATE //http默认日期格式,如:03/Jul/2016:00:36:53 +0800 TIMESTAMP_ISO8601 //ISO8601时间戳格式,如:2016-07-03T00:34:06+08:00
17) LOGLEVEL —— 日志等级
//如:Info、Error、Warning
相关文章推荐
- Ubuntu 14.04搭建ELK日志分析系统(Elasticsearch+Logstash+Kibana)
- ELK(elasticsearch+logstash+kibana)日志分析系统
- 搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(七) elasticsearch.yml配置文件详细说明
- 搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(八) elasticsearch配置外网访问及常见错误处理
- Logstash+ElasticSearch+Kibana日志分析系统
- Linux――ELK(Elasticsearch + Logstash + Kibana)企业日志分析之linux系统history收集展示
- ELK(日志分析系统): Elasticsearch + Logstash + Kibana集群环境部署及应用
- windows下Elasticsearch+Logstash+Kibana日志收集分析系统安装教程
- Logstash+Elasticsearch+Kibana 联合使用搭建日志分析系统(Windows系统)
- 使用kibana+logstash+elasticsearch+redis搭建分布式日志收集、分析、查询系统。
- logstash+elasticsearch+kibana搭建日志收集分析系统
- ElasticSearch + Logstash + Kibana 实时日志收集、查询和分析系统
- 搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(五) 通过redis扩展logstash
- 搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(十三) kibana 界面查询语法
- 搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(十五) logstash将配置写在多个文件
- ELK(elasticsearch+logstash+kibana)实现Java分布式系统日志分析架构
- Logstash+Redis+Elasticsearch+Kibana+Nginx搭建日志分析系统
- ELK(elasticsearch+logstash+kibana)实时日志分析系统搭建
- Logstash+Redis+Elasticsearch+Kibana+Nginx搭建日志分析系统