ELK logstash的grok 自带的正则匹配、自定义正则 使用
ELK logstash的grok 自带的正则匹配、自定义正则 使用
ELK logstash的grok 自带的正则匹配、自定义正则 使用- 一、使用
- 1、查看 grok 自带的正则
- 2、语法
- 3、使用
- 1)、Sample Data
- 2)、Grok Pattern
- 3)、Custom Patterns
- 4)、结果
- 5)、正则讲解
- 二、在线测试
- 1、在线Grok Debug工具,Grok校验|调试
- 2、Kibana中调试
- 三、logstash配置文件
- 1、配置文件输入
- 2、自定义正则生效
一、使用
- ELK logstash的grok 自带的正则匹配
需要提取出字段名
%{官方定义的正则名或者自定义的正则名:从日志中提取出来的字段名}
不需要提取出字段名
%{官方定义的正则名或者自定义的正则名}
1)、Sample Data
Sample Data
(原数据)
[2020-09-26 13:07:54] GET http://www.test.com/index/index/test 0.118220
2)、Grok Pattern
Grok Pattern
(grok 正则)
\[%{TIMESTAMP_ISO8601:timestamp}\] %{USERNAME:method}[T ]%{URL:url} %{NUMBER:exec_time}
3)、Custom Patterns
Custom Patterns
(自定义正则)
- 由于grok自带的网址匹配每页匹配
http://
,https://
。所以我们自定义一个名为URL
的正则,如下所示
URL (http(s)?:\/\/)?%{URIHOST:domain_name}%{URIPATH}
4)、结果
Kibana -> Console -> Grok Debugger 中执行的结果
{ "domain_name": "www.test.com", "method": "GET", "exec_time": "0.118220", "url": "http://www.test.com/index/index/test", "timestamp": "2020-09-26 13:07:54" }
5)、正则讲解
\[
:匹配字符 [%{TIMESTAMP_ISO8601:timestamp}
:把符合TIMESTAMP_ISO8601正则的内容匹配出来,作为timestamp字段存入es:匹配空格
%{USERNAME:method}
:把符合USERNAME(USERNAME其实就是个字符串匹配)正则的内容匹配出来,作为method字段存入es[T ]
:匹配空格%{URL:url}
:把符合自定义的 URL正则的内容匹配出来,作为url字段存入es- 自定义的
URL
中有自己写的正则,也用到了grok的正则
; %{URIHOST:domain_name}
提取了字段名domain_name
到es;%{URIPATH}
没有提取出字段名
- 自定义的
:匹配空格
%{NUMBER:exec_time}
:把符合NUMBER正则的内容匹配出来,作为exec_time字段存入es
二、在线测试
- 在线Grok Debug工具,Grok校验|调试
效果图如下所示:
- Kibana -> Console -> Grok Debugger 中执行的结果
效果图如下所示:
三、logstash配置文件
input { file { ... } } filter { grok { match => { "message"=>"\[%{TIMESTAMP_ISO8601:timestamp}\] %{USERNAME:method}[T ]%{URL:url} %{NUMBER:exec_time}" } } } output { ... }
如何使我们自定义的正则生效呢,找到 logstash 中的文件
grok-patterns
,在文件末尾追加自定义的内容(名字不能与已有的名字重复),重启服务生效。
正则配置文件路径:logstash/vendor/bundle/jruby/2.5.0/gems/logstash-patterns-core-4.1.2/patterns/grok-patterns
... # Log formats SYSLOGBASE %{SYSLOGTIMESTAMP:timestamp} (?:%{SYSLOGFACILITY} )?%{SYSLOGHOST:logsource} %{SYSLOGPROG}: # Log Levels LOGLEVEL ([Aa]lert|ALERT|[Tt]race|TRACE|[Dd]ebug|DEBUG|[Nn]otice|NOTICE|[Ii]nfo|INFO|[Ww]arn?(?:ing)?|WARN?(?:ING)?|[Ee]rr?(?:or)?|ERR?(?:OR)?|[Cc]rit?(?:ical)?|CRIT?(?:ICAL)?|[Ff]atal|FATAL|[Ss]evere|SEVERE|EMERG(?:ENCY)?|[Ee]merg(?:ency)?) # 用户自定义正则 URL (http(s)?:\/\/)?%{URIHOST:domain_name}%{URIPATH}
ELK logstash的grok 自带的正则匹配、自定义正则 使用相关教程
-
ELK安装及使用(一)
ELK安装及使用(一) 今天开始分享ELK分布式日志管理系统: 1、下载elasticsearch-7.9.0 解压: 到bin目录下双击elasticsearch.bat 启动成功,访问 :http://127.0.0.1:9200/ 2、下载解压安装kibana-7.9.0-windows-x86_64 到kibana-7.9.0-windows-x86_64\conf
-
ELK+Spring Cloud搭建分布式日志中心
ELK+Spring Cloud搭建分布式日志中心 ELK+Spring Cloud搭建分布式日志中心 1.ELK简介 2.资源包下载 3.Elasticsearch安装 4.ElasticSearch-head插件安装 5.Logstash安装 6.Kibana安装 1.ELK简介 ELK 是 Elasticsearch、Logstash、Kibana 的简称。 Elasticsearc
-
ELK分布式日志解决方案
ELK分布式日志解决方案 一、简介 ELK,包含三款产品,Elasticsearch、Logstash、Kibana,可在项目中作为日志框架使用。 项目中框架整合所需技术: 在整个方案中,各组件的作用如下: 应用服务 生产日志,通过Logger产生日志并输出。 Logstash 收集日志,通过h
-
ELK搭建
ELK搭建 前言 在前篇文章简单介绍ELK和相关的组件ELK架构介绍,在写这篇文章之后本来是不打算搭建ELK的,过了几天吧,公司测试小哥说要看项目日志,而我们后端开发是按模块开发的,所以日志不集中,也没有统一部署到测试服务器上,那么正好找个借口帮公司搭
-
渗透测试-Ngrok内网映射与穿透
渗透测试-Ngrok内网映射与穿透 文章目录 前言 Python建站 Ngrok内网映射 总结 前言 有的时候希望把本地内网系统映射到公网方便跨局域网访问,Sunny-Ngrok提供国内免费的内网映射服务器,可以满足我们这个需求。 为什么使用Sunny-Ngrok? 提供免费内网穿透服务
-
logstash的基本使用
logstash的基本使用 文章目录 logstash概述 logstash安装运行 logstash配置详解 输入 过滤 输出 案例 举例1:使用Logstash展示标准输入、输出 举例2:使用Logstash收集日志文件并输出到控制台 举例3:使用Logstash收集日志文件并输出到es 举例4:使用logstash
-
SpringBoot2 默认的Logback日志整合ELK
SpringBoot2 默认的Logback日志整合ELK 前提:当前SpringBoot版本2.2.2 关闭ELK节点centos7防火墙 systemctl stop firewalld 一、首先安装ELK,具体步骤参考博文:ELK单节点安装 二、SpringBoot集成Logstash !--集成logstash--dependency groupIdnet.logstash
-
ELK原理与介绍。
ELK原理与介绍。 一:ELK的原理与使用 。 一般我们需要进行日志分析场景:直接在日志文件中 grep、awk 就可以获得自己想要的信息。但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。需要集中化的