【发布时间】:2015-06-18 08:41:30
【问题描述】:
我从 RabbitMQ 收到以下消息,我认为从 RabbitMQ 收到的 JSON 有 BOM
{"ID":"811b7858-a926-479f-939a-2b0ab17de855","Name":"Johnson","Age": "30", "Work":"Engineer","Timestamp":"4/13/2015 10:53:29 AM"}
当我将其保存到 Elastic 搜索中时,如下所示:
{
"_index": "logstash-2015.04.13",
"_type": "logs",
"_id": "AUyxO4R8g98unoWRM4eU",
"_version": 1,
"_score": 1,
"_source": {
"message": "{"ID":"811b7858-a926-479f-939a-2b0ab17de855",","Name":"Johnson","Age": "30", "Work":"Engineer","Timestamp":"4/13/2015 10:53:29 AM"}",
"@version": "1",
"@timestamp": "2015-04-13T05:23:29.935Z",
"type": "Employees"
}
}
但我希望它们被存储为
{
"_index": "logstash-2015.04.13",
"_type": "logs",
"_id": "AUyxO4R8g98unoWRM4eU",
"_version": 1,
"_score": 1,
"_source": {
"ID":"811b7858-a926-479f-939a-2b0ab17de855",
"Name":"Johnson",
"Age": "30",
"Work":"Engineer",
"Timestamp":"4/13/2015 10:53:29 AM"
"@version": "1",
"@timestamp": "2015-04-13T05:23:29.935Z",
"type": "Employees"
}
}
我尝试了 json 过滤器。但它不起作用。
【问题讨论】:
-
消息字段的开头真的有问号吗?
-
不,我认为它是在我复制粘贴时添加的。更新了帖子
-
json 过滤器应该可以正常工作。你的过滤器是什么样子的?发生什么了?日志中有什么有趣的东西(您可能需要使用
--verbose或--debug调高日志级别)? json codec 也应该可以正常工作。 -
我认为 JSON 有 BOM,当我将它复制粘贴到 notepad++ 中时,它显示问号,有没有办法在 logstash 中删除 BOM?
-
是的,您应该可以使用mutate filter。那么又是什么问题呢? BOM 实际上是您从 RabbitMQ 获得的消息的一部分吗?请相应地调整问题。
标签: json parsing elasticsearch logstash