Logstash-grok未分析两位数浮点值

Logstash-grok未分析两位数浮点值,logstash,logstash-grok,Logstash,Logstash Grok,Grok能够使用BASE16FLOAT解析具有单个数字的浮点值,如1.2 但在解析两位数(如12.5)时抛出“\u grokparsefailure” 例如: 适用于日志事件 02:10:28 CPU Util %: 0.1 / 0.2 / 0.6 Disk Util %: 0.0 / 0.0 / 0.0 但不是为了 02:09:46 CPU Util %: 1.3 / 2.3 / 4.2 Disk Util %: 5.6

Grok能够使用BASE16FLOAT解析具有单个数字的浮点值,如1.2 但在解析两位数(如12.5)时抛出“\u grokparsefailure”

例如:

适用于日志事件

02:10:28     CPU Util %:   0.1 /   0.2 /   0.6     Disk Util %:   0.0 /   0.0 /   0.0
但不是为了

02:09:46     CPU Util %:   1.3 /   2.3 /   4.2     Disk Util %:   5.6 /  12.5 /  40.9
使用对数存储过滤器

“消息”=>“%{TIME:TIME}CPU Util%:%{BASE16FLOAT:MIN_CPU}/%{BASE16FLOAT:AVG_CPU}/%{BASE16FLOAT:MAX_CPU}磁盘Util%:%{BASE16FLOAT:MIN_Disk}/%{BASE16FLOAT:AVG_Disk}/%{BASE16FLOAT:MAX_Disk}”


我不明白为什么它适用于一位数的浮点值,而不适用于两位数的值。

您可以使用%{NUMBER}和${SPACE}

"message" => "%{TIME:time}%{SPACE}CPU Util %:%{SPACE}%{NUMBER:MIN_CPU} /%{SPACE}%{NUMBER:AVG_CPU} /%{SPACE}%{NUMBER:MAX_CPU}%{SPACE}Disk Util %:%{SPACE}%{NUMBER:MIN_DISK} /%{SPACE}%{NUMBER:AVG_DISK} /%{SPACE}%{NUMBER:MAX_DISK}"

要确定这一点,您必须对BASE16FLOAT进行反向工程,即“\b(?不过,我可以想象,您的磁盘利用率百分比实际上是base10,因此您可以尝试使用%{NUMBER}。