Как получить входной файл системного журнала Filebeat json, декодированный до верхнего уровня вasticsearch - PullRequest
0 голосов
/ 05 июня 2019

У меня есть 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
        }
      }
    ]
}
...