当前位置: 首页 > news >正文

filebeat收集不规则多行日志

现环境有多行日志输出内容和格式不确定,合并后使用grok默认正则无法收集,需要自己编写正则
日志内容如下:

ERROR|2023-04-06 14:27:52|helper|test|http|/api/ad/listBanner|1d60fff861bqwe4b0397be554141eb 127.0.0.1|1b4429-5adb-44d4-acfe-0tee65eec19d|gw|Error: Class "HttpEncodingException" not found in /var/www/html/helper/59_20230406135132/app/Api/Controller/AdController.php:22
Stack trace:
#0 /var/www/html/helper/59_20230406135132/vendor/workerman/webman-framework/src/App.php(387): App\Api\Controller\AdController->listBanner()
#1 /var/www/html/helper/59_20230406135132/vendor/workerman/webman-framework/src/App.php(348): Webman\App::Webman\{closure}()
#2 /var/www/html/helper/59_20230406135132/common/Library/LogAccess/LogAccessMiddleware.php(40): Webman\App::Webman\{closure}()
#3 /var/www/html/helper/59_20230406135132/vendor/workerman/webman-framework/src/App.php(340): Common\Library\LogAccess\LogAccessMiddleware->process()
#4 /var/www/html/helper/59_20230406135132/vendor/workerman/webman-framework/src/App.php(167): Webman\App::Webman\{closure}()
#5 /var/www/html/helper/59_20230406135132/vendor/workerman/workerman/Connection/TcpConnection.php(646): Webman\App->onMessage()
#6 [internal function]: Workerman\Connection\TcpConnection->baseRead()
#7 /var/www/html/helper/59_20230406135132/vendor/workerman/workerman/Events/Event.php(193): EventBase->loop()
#8 /var/www/html/helper/59_20230406135132/vendor/workerman/workerman/Worker.php(1629): Workerman\Events\Event->loop()
#9 /var/www/html/helper/59_20230406135132/vendor/workerman/workerman/Worker.php(1423): Workerman\Worker::forkOneWorkerForLinux()
#10 /var/www/html/helper/59_20230406135132/vendor/workerman/workerman/Worker.php(1397): Workerman\Worker::forkWorkersForLinux()
#11 /var/www/html/helper/59_20230406135132/vendor/workerman/workerman/Worker.php(560): Workerman\Worker::forkWorkers()
#12 /var/www/html/helper/59_20230406135132/vendor/workerman/webman-framework/src/support/App.php(131): Workerman\Worker::runAll()
#13 /var/www/html/helper/59_20230406135132/start.php(4): support\App::run()
#14 {main}|[]

原先pipeline中grok的写法如下,并且已经在filebeat.yml将日志合并为单个事件,也无法在message中使用官方提供的GREEDYDATA匹配到多行日志,个人认为是日志中有大量的反斜杠'\'造成,反斜杠可能会被转义导致报错丢掉该条日志

        "grok" : {"field" : "message","patterns" : ["""%{DATA:level}\|%{DATA:logdate}\|%{DATA:app}\|%{DATA:env}\|%{DATA:type}\|%{DATA:site}\|%{DATA:device_id}\|%{DATA:request_id}\|%{DATA:from}\|%{GREEDYDATA:message}\|%{GREEDYDATA:context}"""]}

最后将message字段修改成如下内容可以进行正确匹配

%{DATA:level}\|%{DATA:logdate}\|%{DATA:app}\|%{DATA:env}\|%{DATA:type}\|%{DATA:site}\|%{DATA:device_id}\|%{DATA:request_id}\|%{DATA:from}\|(?<message>[^\|]+)\|%{GREEDYDATA:context}
http://www.lryc.cn/news/58133.html

相关文章:

  • Token Contrast for Weakly-Supervised Semantic Segmentation
  • Jenkins运行在docker中使用Maven构建Java应用程序
  • 将excel导入到sqlite的方法代码
  • Redis主从复制、哨兵和集群部署
  • protobuf序列化
  • 更新时无冲突的情况(阁瑞钛伦特软件-九耶实训)
  • 3.4 函数的单调性和曲线的凹凸性
  • LeetCode 404. 左叶子之和 | C++语言版
  • arm架构安装Rancher并导入k8s集群解决Error: no objects passed to apply
  • 安装PaddleSpeech
  • UE “体积”的简单介绍
  • 微信 JAVA SDK 封装
  • 上海智慧校园视频智能分析算法 yolov7
  • 【树】你真的会二叉树了嘛? --二叉树LeetCode专题
  • 《LeetCode 热题 HOT 100》——寻找两个正序数组的中位数
  • Unity- 游戏结束以及重启游戏
  • NGK BeCu8·11铜合金板材
  • 电脑突然死机怎么办?正确做法在这!
  • 基于cell数组的MATLAB仿真(附上完整仿真源码)
  • 电脑蓝屏问题排查
  • SpringBoot配置slf4j + logback
  • JAVA——网络编程基本概念
  • [JavaEE]----Spring02
  • 笔记本可自行更换CPU、独显了,老外用它手搓了台“PS5”
  • Linux uart驱动框架
  • 第一个禁止ChatGPT的西方国家
  • Web 攻防之业务安全:Session会话注销测试.
  • 4月最新编程排行出炉,第一名ChatGPT都在用~
  • 生成不保存在服务器的附件,并以附件形式发送邮件
  • Golang Gin框架HTTP上传文件