Как составить список всех полей вasticsearch6 - PullRequest
0 голосов
/ 08 мая 2018

Мы обновили ELK2 до ELK6, в ELK2 мы рассматриваем все типы журналов как тип, например, журнал nginx, журнал mysql, каждый тип журнала имеет свое сопоставление полей. Легко перечислить все поля типа, например GET /logstash-2018.05.08/_mapping/mysql

Как мы знаем, Elasticsearch6 имеет концепцию удаления типа, в индексе у наших данных журнала есть только один тип с именем doc. Если я использую GET /logstash-2018.05.08/_mapping/doc, он вернет все сопоставления полей, включая все типы журналов, трудно определить, какое поле принадлежит mysql или nginx.

И я все еще хочу перечислить все сопоставления полей определенного типа. Как это сделать?

1 Ответ

0 голосов
/ 08 мая 2018

У меня есть одна идея по этому поводу, но я не уверен, будет ли это полезно для вас.

Ребята из Elastic предлагают индекс для каждого типа документа в качестве одной из альтернатив типам сопоставления. Может быть, вы сможете перейти к отдельным индексам и иметь:

/logstash-2018.05.08-mysql
/logstash-2018.05.08-nginx

тогда вы сможете получить поля, похожие на ранее:

/logstash-2018.05.08-mysql/_mapping/doc
/logstash-2018.05.08-nginx/_mapping/doc

и позже вы можете добавить псевдоним ко всем этим индексам для поиска по всем из них, если вам нужно:

POST /_aliases
{
  "actions" : [
    { "add" : { "index" : "logstash-2018.05.08-*", "alias" : "logstash-2018.05.08" } }
  ]
}

Таким образом, с точки зрения поиска вы все равно можете искать в /logstash-2018.05.08, но у вас будут отдельные индексы и сопоставления для каждого источника, как и раньше.

...