Вывод метаданных документа из ElasticSearch с использованием выходного плагина Logstash csv - PullRequest
0 голосов
/ 02 октября 2018

Я пытаюсь вывести поле метаданных _id из ES в файл CSV с помощью Logstash.

{
  "_index": "data",
  "_type": "default",
  "_id": "vANfNGYB9XD0VZRJUFfy",
  "_version": 1,
  "_score": null,
  "_source": {
    "vulnid": "CVE-2018-1000060",
    "product": [],
    "year": "2018",
    "month": "02",
    "day": "09",
    "hour": "23",
    "minute": "29",
    "published": "2018-02-09T18:29:02.213-05:00",
  },
  "sort": [
    1538424651203
  ]
}

Мой фильтр вывода logstash:

output { csv {  fields => [ "_id", "vulnid", "published"]  path =>
"/tmp/export.%{+YYYY-MM-dd-hh-mm}.csv" } }

Я получаю вывод:

,CVE-2018-1000060,2018-02-09T18:29:02.213-05:00

Но я хотел бы получить:

vANfNGYB9XD0VZRJUFfy,CVE-2018-1000060,2018-02-09T18:29:02.213-05:00

Как вывести метаданные _id в файл csv?Неважно, если я укажу поле типа "_id" или "@_id" или "@id".

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Что ж, logstash не может получить поле "_id" из вашего ввода, потому что вы не должны устанавливать опцию docinfo в true.

docinfo помогает включать информацию документоввестипоисковой информации, такую ​​какв качестве индекса, введите _id и т. д. Пожалуйста, посмотрите здесь для получения дополнительной информации https://www.elastic.co/guide/en/logstash/current/plugins-inputs-elasticsearch.html#plugins-inputs-elasticsearch-docinfo

используйте ваш входной плагин как

input {
  elasticsearch {
    hosts => "hostname"
    index => "yourIndex"
    query => '{ "query": { "query_string": { "query": "*" } } }' //optional
    size => 500 //optional
    scroll => "5m" //optional
    docinfo => true
  }
}
0 голосов
/ 02 октября 2018

Когда мы запрашиваем ES, мы должны включить docinfo => true.По умолчанию это false.

input {
 elasticsearch {
  hosts => [ your hosts ]
  index => "ti"
  query => '{your query}'
  size => 1000
  scroll => "1s"
  docinfo => true
  schedule => "14 * * * *"
 }
}
...