Может ли filebeat преобразовать выходные строки журнала в json без logstash в конвейере? - PullRequest
1 голос
/ 12 июня 2019

У нас есть стандартные строки журнала в наших веб-приложениях Spring Boot (не json). Нам нужно централизовать нашу регистрацию и отправить их для упругого поиска как json.

(я слышал, что более поздние версии могут выполнять некоторые преобразования)

Может ли Filebeat читать строки журнала и переносить их как json? Я думаю, это может добавить некоторые метаданные. нет необходимости разбирать строку журнала.

ожидаемый результат: {timestamp : "", beat: "", message: "the log line..."}

К сожалению, у меня нет кода для показа.

Ответы [ 3 ]

0 голосов
/ 12 июня 2019

Нет, это невозможно.

Это именно та работа, для которой был создан Logstash.

0 голосов
/ 12 июня 2019

Ну, похоже, по умолчанию.Это мой результат, когда я пытался локально читать строки журнала.он оборачивается так, как я хотел.

{  
   "@timestamp":"2019-06-12T11:11:49.094Z",
   "@metadata":{  
      "beat":"filebeat",
      "type":"doc",
      "version":"6.2.4"
   },
   "message":"the log line...",
   "source":"/Users/myusername/tmp/hej.log",
   "offset":721,
   "prospector":{  
      "type":"log"
   },
   "beat":{  
      "name":"my-macbook.local",
      "hostname":"my-macbook.local",
      "version":"6.2.4"
   }
}
0 голосов
/ 12 июня 2019

filebeat поддерживает несколько выходов , включая Elastic Search .

Файл конфигурации filebeat.yml может выглядеть так:

# filebeat options: https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-reference-yml.html

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/../file.err.log

processors:
   - drop_fields:
      # Prevent fail of Logstash (https://www.elastic.co/guide/en/beats/libbeat/current/breaking-changes-6.3.html#custom-template-non-versioned-indices)
      fields: ["host"]
   - dissect:
      # tokenizer syntax: https://www.elastic.co/guide/en/logstash/current/plugins-filters-dissect.html.
      tokenizer: "%{} %{} [%{}] {%{}} <%{level}> %{message}"
      field: "message"
      target_prefix: "spring boot"

fields:
  log_type: spring_boot

output.elasticsearch:
  hosts: ["https://localhost:9200"]
  username: "filebeat_internal"
  password: "YOUR_PASSWORD"
...