使用BASE16FLOAT,Grok能够使用单个数字(如1.2)解析浮点值
但在解析像12.5这样的双位数时会抛出[0] "_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
使用了Logstash过滤器
"消息" => "%{TIME:time} CPU Util%:%{BASE16FLOAT:MIN_CPU} /%{BASE16FLOAT:AVG_CPU} /%{BASE16FLOAT:MAX_CPU} Disk Util%:%{BASE16FLOAT:MIN_DISK} /%{BASE16FLOAT:AVG_DISK } /%{BASE16FLOAT:MAX_DISK}"
我不明白为什么它适用于单个数字浮点值,但不适用于双位数值。
答案 0 :(得分:0)
您可以使用%{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}"