使用 Vector Remap 采集文本字段 - 实践指南
把文本内容保存到一个字符串变量中,然后使用 vector remap 对其进行采集。采集过程中需要指定分隔符和字段的名称,例如:
input {
string => '71.197.150.35 - - [17/Mar/2023:09:58:08] 'GET /rush/signals.zip?JSESSIONID=CA7MO8AZ5USANA34726 HTTP 1.1' 404 2957 'http://www.MyGizmoStore.com/category.screen?categoryId=PURPLE_DOOHICKEYS' 'Opera/9.20 (Windows NT 6.0; U; en)' 425'
}
filter {
csv {
separator => ' '
columns => ['ip', 'dash1', 'dash2', 'timestamp', 'request', 'status', 'size', 'referrer', 'user_agent', 'dash3']
}
}
output {
stdout { codec => rubydebug }
}
上面的采集器指定了空格作为分隔符,然后把不同的字段用数组的形式指定了名称。最后把结果输出到标准输出,可以看到采集到的结果:
{
'referrer' => ''http://www.MyGizmoStore.com/category.screen?categoryId=PURPLE_DOOHICKEYS'',
'status' => '404',
'user_agent' => ''Opera/9.20 (Windows NT 6.0; U; en)'',
'timestamp' => '[17/Mar/2023:09:58:08]',
'size' => '2957',
'dash1' => '-',
'ip' => '71.197.150.35',
'request' => ''GET /rush/signals.zip?JSESSIONID=CA7MO8AZ5USANA34726 HTTP 1.1'',
'dash2' => '-',
'dash3' => '425'
}
可以看到,通过 vector remap 采集到了文本中的所有字段,并且把它们转换成了一个 JSON 格式的数据结构,方便后续的处理。
原文地址: https://www.cveoy.top/t/topic/lGL1 著作权归作者所有。请勿转载和采集!