无法使用 Filebeat 在 Grok 中解析没有 IP 地址的 haproxy 日志
Can't parse haproxy logs without IP address in Grok using Filebeat
当 Haproxy 给出日志时,Grok 解析成功 - 来自 var/log/haproxy.log
- 类似于:
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"
我有一个错误:
Provided Grok expressions do not match field value: 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
这是我的 /usr/share/filebeat/module/haproxy/log/pipline.json
我试图通过向带有 message
字段的 grok
添加新模式并通过使用 source.address
字段编辑 grok
模式来解决此问题,但没有成功。
我查看了您的管道 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"
]
]
}
当 Haproxy 给出日志时,Grok 解析成功 - 来自 var/log/haproxy.log
- 类似于:
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"
我有一个错误:
Provided Grok expressions do not match field value: 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
这是我的 /usr/share/filebeat/module/haproxy/log/pipline.json
我试图通过向带有 message
字段的 grok
添加新模式并通过使用 source.address
字段编辑 grok
模式来解决此问题,但没有成功。
我查看了您的管道 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"
]
]
}