Я использую Кафка как мой вход и поставить его в elasticsearch (выход)(logstash) индекс только конкретные данные в elasticsearch от входа Кафка
input {
kafka {
topics =>["maxwell"]
codec => json
}
}
filter {
}
output {
stdout { codec => rubydebug }
elasticsearch {
index => 'test_kafka'
document_type => "%{table}"
hosts => 'localhost:9200'
}
}
Когда это работает, он выводит следующие JSON
{
"database": "my_db",
"xid": 88935,
"@timestamp": "2016-11-14T12:00:13.763Z",
"data": {
"contact_country_code": null,
"contact_type_id": 1,
"created": "2014-10-03 12:24:36",
"modified_by": null,
"modified": "2014-10-03 12:24:36",
"contact_id": 1,
"is_default": 0,
"created_by": null,
"contact_number": "1241222232"
},
"old": {
"contact_number": "1241222"
},
"commit": true,
"@version": "1",
"type": "update",
"table": "contact",
"ts": 1479124813
}
Мой вопрос, как я могу только извлечь ключ данных с помощью динамического document_type в elasticsearch для достижения этой одной
{
"_index": "test_kafka",
"_type": "contact",
"_id": "AVhitY804rvpX8qdVt9d",
"_score": 1,
"_source": {
"contact_country_code": null,
"contact_type_id": 1,
"created": "2014-10-03 12:24:36",
"modified_by": null,
"modified": "2014-10-03 12:24:36",
"contact_id": 1,
"is_default": 0,
"created_by": null,
"contact_number": "1241222232"
}
}
Параметр 'event' не мутировал, кстати, я использую logstash 5,0 – scireon
Я также попытался заменить событие с этим кодом ' '' события = event.get («данные») '' ' , но не работал должным образом – scireon
Хорошо, это рубиновый код для Logstash 2.x. Позвольте мне исправить это для Logstash 5. – Val