У меня есть tcp вход системного журнала в filebeat, входящие данные - json. Я хочу декодировать JSON на ключи верхнего уровня вasticsearch. Как я могу это сделать?
Вход системного журнала не имеет возможности декодировать json, так как вход журнала, я подумал, что я должен был использовать Logstash или узел загрузки в упругом поиске. Я создал новый конвейер загрузки вasticsearch. Я использовал функцию «имитация», чтобы проверить, помещаю ли я содержимое своего системного журнала в поле «сообщения» (также поле, предназначенное для декодирования »). Все это работает, и ответ показывает это правильно.
но как только я выбираю идентификатор конвейера в моем filebeat.yml во входных или выходных данных, я получаю эту ошибку из filebeat: ERROR [syslog] syslog/input.go:131 can't parse event as syslog rfc3164
это мой файл filebeat.yml:
filebeat.inputs:
- type: syslog
protocol.tcp:
host: ":9000"
pipeline: "pipeline_name"
cloud.id: ${ELASTIC_CLOUD_ID}
cloud.auth: ${ELASTICSEARCH_USERNAME}:${ELASTICSEARCH_PASSWORD}
Вот конфигурация для конвейера:
"pipeline_name": {
"description": "json decode",
"processors": [
{
"json": {
"field": "message",
"add_to_root": true
}
}
]
}