grok语法定义
grok默认表达式
Logstash 内置了120种默认表达式,可以查看patterns,里面对表达式做了分组,每个文件为一组,文件内部有对应的表达式模式。下面只是部分常用的。
常用表达式
|
表达式标识 |
名称 |
详情 |
匹配例子 |
|---|---|---|---|
|
USERNAME 或 USER |
用户名 |
由数字、大小写及特殊字符(._-)组成的字符串 |
1234、Bob、Alex.Wong |
|
EMAILLOCALPART |
用户名 |
首位由大小写字母组成,其他位由数字、大小写及特殊字符(_.+-=:)组成的字符串。注意,国内的QQ纯数字邮箱账号是无法匹配的,需要修改正则 |
windcoder、windcoder_com、abc-123 |
|
EMAILADDRESS |
电子邮件 |
windcoder@abc.com、windcoder_com@gmail.com、abc-123@163.com |
|
|
HTTPDUSER |
Apache服务器的用户 |
可以是EMAILADDRESS或USERNAME |
|
|
INT |
整数 |
包括0和正负整数 |
0、-123、43987 |
|
BASE10NUM 或 NUMBER |
十进制数字 |
包括整数和小数 |
0、18、5.23 |
|
BASE16NUM |
十六进制数字 |
整数 |
0x0045fa2d、-0x3F8709 |
|
WORD |
字符串 |
包括数字和大小写字母 |
String、3529345、ILoveYou |
|
NOTSPACE |
不带任何空格的字符串 |
||
|
SPACE |
空格字符串 |
||
|
QUOTEDSTRING 或 QS |
带引号的字符串 |
"This is an apple"、'What is your name?' |
|
|
UUID |
标准UUID |
550E8400-E29B-11D4-A716-446655440000 |
|
|
MAC |
MAC地址 |
可以是Cisco设备里的MAC地址,也可以是通用或者Windows系统的MAC地址 |
|
|
IP |
IP地址 |
IPv4或IPv6地址 |
127.0.0.1、FE80:0000:0000:0000:AAAA:0000:00C2:0002 |
|
HOSTNAME |
IP或者主机名称 |
||
|
HOSTPORT |
主机名(IP)+端口 |
127.0.0.1:3306、api.windcoder.com:8000 |
|
|
PATH |
路径 |
Unix系统或者Windows系统里的路径格式 |
/usr/local/nginx/sbin/nginx、c:\windows\system32\clr.exe |
|
URIPROTO |
URI协议 |
http、ftp |
|
|
URIHOST |
URI主机 |
windcoder.com、10.0.0.1:22 |
|
|
URIPATH |
URI路径 |
//windcoder.com/abc/、/api.php |
|
|
URIPARAM |
URI里的GET参数 |
?a=1&b=2&c=3 |
|
|
URIPATHPARAM |
URI路径+GET参数 |
/windcoder.com/abc/api.php?a=1&b=2&c=3 |
|
|
URI |
完整的URI |
https://windcoder.com/abc/api.php?a=1&b=2&c=3 |
|
|
LOGLEVEL |
Log表达式 |
Log表达式 |
Alert、alert、ALERT、Error |
日期时间表达式
|
表达式标识 |
名称 |
匹配例子 |
|---|---|---|
|
MONTH |
月份名称 |
Jan、January |
|
MONTHNUM |
月份数字 |
03、9、12 |
|
MONTHDAY |
日期数字 |
03、9、31 |
|
DAY |
星期几名称 |
Mon、Monday |
|
YEAR |
年份数字 |
|
|
HOUR |
小时数字 |
|
|
MINUTE |
分钟数字 |
|
|
SECOND |
秒数字 |
|
|
TIME |
时间 |
00:01:23 |
|
DATE_US |
美国时间 |
10-01-1892、10/01/1892/ |
|
DATE_EU |
欧洲日期格式 |
01-10-1892、01/10/1882、01.10.1892 |
|
ISO8601_TIMEZONE |
ISO8601时间格式 |
+10:23、-1023 |
|
TIMESTAMP_ISO8601 |
ISO8601时间戳格式 |
2016-07-03T00:34:06+08:00 |
|
DATE |
日期 |
美国日期%{DATE_US}或者欧洲日期%{DATE_EU} | |
|
DATESTAMP |
完整日期+时间 |
07-03-2016 00:34:06 |
|
HTTPDATE |
http默认日期格式 |
03/Jul/2016:00:36:53 +0800 |
自定义grok表达式
语法解释:
%{HOSTNAME},匹配请求的主机名
%{TIMESTAMP_ISO8601:time},代表时间戳
%{LOGLEVEL},代表日志级别
%{URIPATHPARAM},代表请求路径
%{INT},代表字符串整数数字大小
%{NUMBER}, 可以匹配整数或者小数
%{UUID},匹配类似091ece39-5444-44a1-9f1e-019a17286b48
%{IP}, 匹配ip
%{WORD}, 匹配请求的方式
%{GREEDYDATA},匹配所有剩余的数据
(?([\S+]*)),自定义正则
\s*或者\s+,代表多个空格
\S+或者\S*,代表多个字符
大括号里面:xxx,相当于起别名
(?<class_info>([\S+]*)), 自定义正则匹配多个字符
举例操作如下:
列1:
[2019-08-22 12:25:51.441] [TSC_IHU] [ERROR] [c.e.c.t.i.t.s.IhuTsaUplinkServiceImpl] Activation/Bind uplink, query UserSession by Token failure!
grok调试如下:
\[%{TIMESTAMP_ISO8601:time}\]\s*%{DATA:thread}\s*\[%{LOGLEVEL:level}\]\s*%{GREEDYDATA:data}

列2:
2019-09-12 14:16:36.320+08:00 INFO 930856f7-c78f-4f12-a0f1-83a2610b2dfc DispatcherConnector ip-192-168-114-244 [Mqtt-Device-1883-worker-18-1] com.ericsson.sep.dispatcher.api.transformer.v1.MessageTransformer {"TraceID":"930856f7-c78f-4f12-a0f1-83a2610b2dfc","clientId":"5120916600003466K4GA1059","username":"LB37622Z3KX609880"}
%{TIMESTAMP_ISO8601:access_time}\s*%{LOGLEVEL:level}\s*%{UUID:uuid}\s*%{WORD:word}\s*%{HOSTNAME:hostname}\s*\[%{DATA:work}\]\s*(?<api>([\S+]*))\s*(?<TraceID>([\S+]*))\s*%{GREEDYDATA:message_data}

列3:
192.168.125.138 - - [12/Sep/2019:14:10:58 +0800] "GET /backend/services/ticketRemind/query?cid=&msgType=1&pageSize=100&pageIndex=1&langCode=zh HTTP/1.1" 200 91
grok调试如下:
%{IP:ip}\s*%{DATA:a}\s*\[%{HTTPDATE:access_time}\]\s*%{DATA:b}%{WORD:method}\s*%{URIPATH:url}%{URIPARAM:param}\s*%{URIPROTO:uri}%{DATA:c}%{NUMBER:treaty}%{DATA:d}\s*%{NUMBER:status}\s*%{NUMBER:latency_millis}

列4:
[08/Nov/2019:11:40:24 +0800] tc-com.g-netlink.net - - 192.168.122.58 192.168.122.58 192.168.125.135 80 GET 200 /geelyTCAccess/tcservices/capability/L6T7944Z0JN427155 ?pageIndex=1&pageSize=2000&vehicleType=0 21067 17
grok调试如下:
\[%{HTTPDATE:access_time}\] %{DATA:hostname} %{DATA:username} %{DATA:fwd_for} %{DATA:remote_hostname} %{IP:remote_ip} %{IP:local_ip} %{NUMBER:local_port} %{DATA:method} %{DATA:status} %{DATA:uri} %{DATA:query} %{NUMBER:bytes} %{NUMBER:latency_ms}

grok语法定义的更多相关文章
- Spring Aspectj切入点语法定义
在使用spring框架配置AOP的时候,pointcut"切入点" 例如定义切入点表达式 execution(* com.sample.service.impl..*.*(..)) ...
- 【SqlServer系列】语法定义符号解析
1 概述 在数据库函数定义中,经常用到这些符号:<>,::=,[],{},|,..,(),!! .这篇文章简要概述这些符号. 2 具体内容 2.1 <> < ...
- Aspectj切入点语法定义
例如定义切入点表达式 execution (* com.sample.service.impl..*.*(..)) execution()是最常用的切点函数,其语法如下所示: 整个表达式可以分为五个 ...
- 【软件技巧】Sublime Text为不同语法定义不同高亮
Sublime Text默认的语法高亮已经非常美丽了,可是对于个别语言还是有些不爽. 默认高亮规则叫Monokai,能够从Preferences->Settings - Default中看到: ...
- oracle中的function的简单语法定义
1. create or replace 函数名 (参数名 in 类型) return 返回值类型 as 定义变量 begin 函数体 end;
- Java基础-语法定义
Java三个体系 Java SE(Java Platform,Standard Edition).Java SE 以前称为 J2SE.它允许开发和部署在桌面.服务器.嵌入式环境和实时环境中使用的 Ja ...
- Logstash使用grok过滤nginx日志(二)
在生产环境中,nginx日志格式往往使用的是自定义的格式,我们需要把logstash中的message结构化后再存储,方便kibana的搜索和统计,因此需要对message进行解析. 本文采用grok ...
- filebeat 提取获取massage字段 利用pipeline grok 7.12
嘴巴会说(情商)比技术有时候更重要! 水平有限,希望你看完有所收获! 背景 1,filebeat直连Elasticsearch,需要对massage提取一些特定的字段. 2,如果你对数据需要处理的比较 ...
- 使用logstash的grok插件解析springboot日志
使用logstash的grok插件解析springboot日志 一.背景 二.解决思路 三.前置知识 四.实现步骤 1.准备测试数据 2.编写`grok`表达式 3.编写 logstash pipel ...
随机推荐
- modbus-poll和modbus-slave工具的学习使用——modbus协议功能码1的解析
一.数据解析 上一文介绍了modbus工具的基本使用情况,但是还没用说明modbus中的协议的具体意义, 1.左边是slave,id=1,说明地址是1,f=01说明是功能码01,功能码是一个字节,说明 ...
- 《vue》实现动态显示与隐藏底部导航方法!
在日常项目中,总有几个页面是要用到底部导航的,总有那么些个页面,是不需要底部导航的,这里列举一下页面底部导航的显示与隐藏的两种方式: 其实很简单,我们在路由里面带上参数,这个参数就用来区分那个页面显示 ...
- [ARIA] Create an Accessible Tooltip on a Text Input
Here we use HTML and CSS to create a stylish yet semantic tooltip on a form input. I am using aria-d ...
- [Go] Slices vs Array
It is recommended to use 'slice' over 'Array'. An array variable denotes the entire array; it is not ...
- CSP2019 J组 游记
结果 分数出来了.100+100+10+35=245. 一等线230,擦着边进一等. (点击图片放大) 期待明年s组的表现. 第一轮 不就是初赛吗?擦边轻松水过去! 第二轮 Day -14 停两周晚自 ...
- vue基本使用及脚手架使用
一.基本使用: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- windows系统的快速失败机制---fastfail
windows系统的快速失败机制---fastfail,是一种用于“快速失败”请求的机制 — 一种潜在破坏进程请求立即终止进程的方法. 无法使用常规异常处理设施处理可能已破坏程序状态和堆栈至无法恢复的 ...
- jaeger使用yugabyte作为后端存储的尝试以及几个问题
前边写过使用scylladb 做为jaeger 的后端存储,还是一个不错选择的包括性能以及 兼容性,对于 yugabyte 当前存在兼容性的问题,需要版本的支持,或者尝试进行一些变动 create 语 ...
- vigil rpm 包制作
vigil 可以方便的进行服务的监控,以下尝试制作一个rpm 包,方便使用 安装依赖 ruby yum -y install ruby rubygems ruby-devel 修改gem 源 可选, ...
- 【JZOJ6217】【20190614】最大面积
题意 平面上有\(n\)个点\(A_i\),\(q\)次询问,每次给出一个点\(P\),求: \[ \sum_{i=L}^{R} 2S_{\triangle OPA_i} \] 最大值,其中$S_{\ ...