logging - 无法使用 Filebeat 在 Grok 中解析没有 IP 地址的 haproxy 日志
问题描述
当 Haproxy 给出var/log/haproxy.log
类似以下的日志时,Grok 解析成功:
May 21 08:25:56 ha haproxy[5089]: 12.3.45.67:89012 [21/May/2021:08:25:56.055] www-https~ wss/wssnode website.domain.com 1/1/1/1/111 111 111 - - ---- 11111/11111/11111/111/0 0/0 "GET /ws/site/V3L235F/d88r3567pssllp/ HTTP/1.1"
但是当而不是ip_address:port
有一个-:port
时,例如:
May 21 08:25:56 ha haproxy[5089]: -:89012 [21/May/2021:08:25:56.055] www-https~ wss/wssnode website.domain.com 1/1/1/1/111 111 111 - - ---- 11111/11111/11111/111/0 0/0 "GET /ws/site/V3L235F/d88r3567pssllp/ HTTP/1.1"
我有一个错误:
前提是 Grok 表达式与字段值不匹配:5 月 21 日 08:25:56 ha haproxy[5089]: -:89012 [21/May/2021:08:25:56.055] www-https~ wss/wssnode website.domain.com 1/1/1/1/111 111 111 - - ---- 11111/11111/11111/111/0 0/0 "GET /ws/site/V3L235F/d88r3567pssllp/HTTP/1.1
这是我的/usr/share/filebeat/module/haproxy/log/pipline.json
我试图通过向grok
withmessage
字段添加新模式并通过使用字段编辑grok
模式来解决此问题,source.address
但没有成功。
解决方案
我看了你的管道 grok 模式。从中得到启发,我稍微修改了 IP 部分。
(%{IP:source.address}|-):%{NUMBER:port}
你可以使用这样的东西,我已经为变量提供了测试名称。您可以进行相应的更改。
以下内容的输出如下:
示例 1 =>12.34.56.78:89012
{
"source": [
[
"12.34.56.78"
]
],
"port": [
[
"89012"
]
]
}
示例 2 =>-:89012
{
"source": [
[
null
]
],
"port": [
[
"89012"
]
]
}
推荐阅读
- botframework - 如何添加多个 ComponentDialogs?
- asp.net - 使用嵌套布局时,是否可以将使用 Razor 引擎的部分渲染委托给父布局?
- vba - 我试图在找到字符串后删除(用户确定的)数量的段落
- xcode - 使用 Xcode Memory Graph Debugger 时出现“Memory Graph Debugger: no serialized memory graph received from LeakAgent”错误
- spring-integration - Java DSL中spring IP集成中的日志拦截器
- python - Tmux,cron 不适用于我在谷歌云上的 python 脚本
- c# - 3 个问题,每个相关……是否可以循环函数声明、调用系统对象和从字符串加载程序集?
- html - 在一行中对齐内部项目
- git - Composer 使用存储库的私有分支
- javascript - React Native Redux 中的不可变 action.payload