elasticsearch 如何在logstash中创建自定义文档_id?
这是logstash输出过滤器示例
elasticsearch 如何在logstash中创建自定义文档_id?,
elasticsearch,logstash,
elasticsearch,Logstash,这是logstash输出过滤器示例 output { elasticsearch { hosts => ["localhost"] sniffing => true manage_template => false index => "mqtt-index-%{+YYYY.MM.dd}" document_id => "%{pars
output
{
elasticsearch
{
hosts => ["localhost"]
sniffing => true
manage_template => false
index => "mqtt-index-%{+YYYY.MM.dd}"
document_id => "%{parsedMessage.device_id}"
document_type => "iot_data"
}
}
此代码将现有的_id更改为%{parsedMessage.device_id}。如何通过另一个字段更改_id?符号不正确,您需要这样做
document_id => "%{[parsedMessage][device_id]}"
已从筛选器中删除目标选项
过滤器
{
json
{
source=>“消息”
}
}
并使用以下输出创建自定义文档id
output
{
elasticsearch
{
hosts => ["localhost:9200"]
sniffing => true
manage_template => false
index => "mqtt-index-%{+YYYY.MM.dd}"
document_id => "%{device_id}"
document_type => "iot_data"
}
}
你能展示一个活动吗?将此添加到输出部分:
stdout{codec=>rubydebug}
谢谢。但这不是嵌套字段,字段名本身就是parsedMessage.device_idAh!在字段名中添加点不是一个好主意:-)事实上message={“value”:27.6,“datastream_name”:“pressure”,“context”:{“latitude”:19.4,“elevation”:35.9,“longitude”:11.1},“device_id”:9}这是我的消息字段,我已经从这个字段中分离了所有字段,这些字段创建的新字段被解析为message.device.id,parsedMessage.value类似于此请显示从stdout
输出中获得的内容(用它更新您的问题)是的,我已从json筛选器中删除目标,现在它正在工作