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

У меня есть результаты теста, которые хранятся в файлах json.Затем я должен найти файл logstash и попытаться отправить все строки вasticsearch.Лишь около половины строк отправляется и не может понять, почему некоторые строки пропущены.Например, будет 34 строки, но отправлено только 14.

input {
    file {
        path => "/data/*.json"
        start_position => "beginning"
    }
}

# ----------------------------------------------------------------------

filter {

    # Parse fields out of JSON message, then remove the raw JSON. 
    json {
        source => "message"
    }

}

# ----------------------------------------------------------------------

output {
    elasticsearch {
        hosts => ["host:9200", "localhost:9200"]
        index => "ct-%{+YYYY.MM.dd}"
    }
    stdout { codec => rubydebug }

Я не уверен, есть ли внутри самого json что-то, что заставляет logstash просто пропустить его, или что-то не так с моим файлом logstash.conf, который я разместил выше.

1 Ответ

0 голосов
/ 19 апреля 2019

Logstash вычисляет файлы разных типов, чтобы отправить их вasticsearch в формате Json.В вашем случае агента Filebeat с выводом эластичного поиска было бы достаточно, чтобы отправить файл json в ES и проиндексировать его.

Это выглядело бы так при использовании Filebeat 6.x:

#=========================== Filebeat inputs =============================

filebeat.inputs:

- type: log
  # Paths to the logs
  paths:
    - "/your/path/to/your/logs/file.json"
  # tags to identify the logs source, .gz files excluded from the prospector
  tags: ["beats","yourtag"]
  exclude_files: ['\.gz$']

#================================ Outputs =====================================
#----------------------------- Elasticsearch output --------------------------------
output.elasticsearch:
  # The ES host & index name
  hosts: ["yourEShost:9200"]
  index: "ct-%{+YYYY.MM.dd}"
...