有没有办法使用 grok 使用字符编号分解消息?
Is there a way to use grok to break up a message using the character numbers?
例如,我需要分解的日志是这样的
“01234567895467894ACCP 844”
在哪里
0123456789 是 phone 号码,
5467894授权号,
ACCP 是授权的类型,但例如可能有 6 长,所以它之后有 2 个空格。 844 一些其他号码。我需要做的是根据字符数分隔行。这将永远不变。
所以像 %{CHAR 0-10:Phonenumber)%{CHAR 11-18:Mandate}%{CHAR 19-24:Type}
有什么方法可以使用 groks 做到这一点吗?我试着寻找但没有找到类似的东西。
以下 regular expression based grok expression 让您捕捉到您所期望的:
(?<Phonenumber>\d{10})(?<Mandate>\d{7})(?<Type>[A-Z\s]{4,})(?<Other>\d{3,})
你会得到这个:
{
"Phonenumber": "0123456789",
"Mandate": "5467894",
"Type": "ACCP ",
"Other": "844"
}
例如,我需要分解的日志是这样的
“01234567895467894ACCP 844” 在哪里 0123456789 是 phone 号码, 5467894授权号, ACCP 是授权的类型,但例如可能有 6 长,所以它之后有 2 个空格。 844 一些其他号码。我需要做的是根据字符数分隔行。这将永远不变。
所以像 %{CHAR 0-10:Phonenumber)%{CHAR 11-18:Mandate}%{CHAR 19-24:Type}
有什么方法可以使用 groks 做到这一点吗?我试着寻找但没有找到类似的东西。
以下 regular expression based grok expression 让您捕捉到您所期望的:
(?<Phonenumber>\d{10})(?<Mandate>\d{7})(?<Type>[A-Z\s]{4,})(?<Other>\d{3,})
你会得到这个:
{
"Phonenumber": "0123456789",
"Mandate": "5467894",
"Type": "ACCP ",
"Other": "844"
}