【ELK】正则、L的Grok过滤

前言:
之前的博客中写了通过正则配置filebeat的多行文本,正则在logstash的gork中也起了至关重要的作用,下面就让我们来了解一下正则吧,今天上午看了菜鸟教程关于正则的知识点,对正则有了些许了解,通过这些了解把filebeat中的正则复制一把吧;

正则表达式(regular expression)一种文本模式,描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

Regular expression support

[xyz]匹配[]中的任意一个字符。如 ‘[abc]’ 可以匹配 “plain” 中的 ‘a’,[^xyz]正好相反
[[:alpha:]] 代表 字母,[[:^alpha:]]取反
[[:alnum:]] 代表 字母与数字字符

\p{Greek}希腊字母表(Unicode字母表) \P{Greek}取反
[:alnum:] 代表英文大小写字节及数字,亦即 0-9,A-Z,a-z
[:alpha:] 代表任何英文大小写字节,亦即 A-Z,a-z

[:blank:] 代表空白键与 [Tab] 按键两者
[:cntrl:] 代表键盘上面的控制按键,亦即包括 CR,LF,Tab,Del.. 等等
[:digit:] 代表数字而已,亦即 0-9

[:graph:] 除了空白字节 (空白键与 [Tab] 按键) 外的其他所有按键
[:lower:] 代表小写字节,亦即 a-z
[:print:] 代表任何可以被列印出来的字节

[:punct:] 代表标点符号 (punctuation symbol),亦即:” ’ ? ! ; : # $…
[:upper:] 代表大写字节,亦即 A-Z
[:space:] 任何会产生空白的字节,包括空白键,[Tab],CR 等等
[:xdigit:] 代表 16 进位的数字类型,因此包括: 0-9,A-F,a-f 的数字与字节

复制过来的图片:下面有链接

中括号表达式:
普通字符在中括号内表示其本身,即,它在输入文本中匹配一次其本身。

filebeat中的正则
菜鸟教程菜鸟不菜,很好的教程
正则表达式图片就是从这里抄过来滴

logstash中的Grok过滤:

%{Syntax:SEMANTIC}:
    `Syntax`代表匹配值的类型,例如,`0.11`可以`NUMBER`类型所匹配,`10.222.22.25`可以使用`IP`匹配。

    `SEMANTIC`表示存储该值的一个变量声明,它会存储在`elasticsearch`当中方便`kibana`做字段搜索统计
        你可以将一个`IP`定义为客户端IP地址`client_ip_address`,eg:`%{IP:client_ip_address}`
            所匹配到的值就会存储到`client_ip_address`这个字段里边,类似数据库的列名,
        也可以把event log中的数字当成数字类型存储在一个指定的变量当中,比如响应时间`http_response_time`,
日志:
    %{LOGLEVEL:level} %{WORD:logLevel}

相关文章

一、校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^d{n}$ 3 至少n位的数字:^d{n,}$ 4 m-n位的数字...
正则表达式非常有用,查找、匹配、处理字符串、替换和转换字符串,输入输出等。下面整理一些常用的正则...
0. 注: 不同语言中的正则表达式实现都会有一些不同。下文中的代码示例除特别说明的外,都是使用JS中的...
 正则表达式是从信息中搜索特定的模式的一把瑞士军刀。它们是一个巨大的工具库,其中的一些功能经常...
一、校验数字的表达式 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数...
\ 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,“n”匹配字符“n”。“\n...