logstash - Grok 用于日志文件 Logstash
问题描述
我需要编写一个 grok 模式来检索“** **”中的内容
-----Start of script for server sitboap1 at **Fri Apr 17 14:24:19** HKT 2020---------
**user11** 87751 1 0 Apr16 ? 00:00:00 sh **job1.sh**
**user11** 877452 89451 0 Apr16 ? 00:00:00 sh **job2.sh** --server-config= full.xml
**user11** 89772 89452 3 Apr16 ? 00:02:35 **/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64/bin/java** -D[stdd] -server -verbose:gc
日志应该从顶部获取日期,从列表中获取用户名和作业名。每个日期下的行数可能会有所不同。
我无法完全找出完全符合我要求的 grok。
它可以是 Grok 和 Logstash 中的过滤器的组合,但我的最终期望是拥有这些列。
解决方案
您可以尝试以下 grok 过滤器。有2个过滤器。
获取标题中的日期和时间。
-----Start of script for server (.*[a-z|A-Z|0-9]) at %{GREEDYDATA:UserDateTime} (.*[a-z|A-Z])
获取内容。
%{GREEDYDATA:User} ([1-9][0-9]{1,10}) (.*) %{GREEDYDATA:execFile}
最后,您可以使用此网站创建 grok 过滤器。
推荐阅读
- javascript - Firebase 云消息传递 sendToDevice 工作正常,但 sendMulticast 对于相同的令牌列表失败
- laravel - 用于 Wordpress 和 Laravel 应用程序的 Nginx 配置
- python - 为什么我的代码没有超过“你想带多少令牌”?尼姆游戏python 3
- docusaurus - 文档插件的用户“/reference”而不是“/docs”
- angular - Angular Google Map 3.0 beta 版禁用缩放控件和街景控件
- python - 为什么我没有得到数据而不是得到数据?我该如何解决?
- javascript - 如何等待装有 Selenium 的画布
- c# - 如何在新游戏开始时使用“Don't Destroy On Load”销毁游戏对象
- flutter - 如何更改 VS CODE 的默认模拟器?
- excel - 如何在 VBA 用户窗体中处理 RefEdit 控件的空白/无效数据或如何检查 Range() 在 VBA 中是否有效/错误