Как импортировать визуализацию Kibana 6 в эластичный поиск 6 без использования пользовательского интерфейса Kibana? - PullRequest
0 голосов
/ 22 мая 2018

Я пытаюсь импортировать визуализацию Kibana 6 в Elasticsearch 6 для просмотра в Kibana.Я пытаюсь сделать это с помощью команды curl или, по сути, сценария, не проходя пользовательский интерфейс Kibana.Это команда, которую я использую:

curl -XPUT http://localhost:9200/.kibana/doc/visualization:vis1 -H 
'Content-Type: application/json' -d @visual1.json

И это visual1.json:

{
"type": "visualization",
"visualization": {
"title": "Logins",
"visState": "{\"title\":\"Logins\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"principal.keyword\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
"uiStateJSON": "{}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
  "searchSourceJSON": "{\"index\":\"def097e0-550f-11e8-9266-93ce640e5839\”,\”filter\":[{\"meta\":{\"index\":\"def097e0-550f-11e8-9266-93ce640e5839\”,\”negate\":false,\"disabled\":false,\"alias\":null,\"type\":\"phrase\",\"key\":\"requestType.keyword\",\"value\":\"ALOG\”,\”params\":{\"query\":\"AUTH_LOGIN\",\"type\":\"phrase\"}},\"query\":{\"match\":{\"requestType.keyword\":{\"query\":\"AUTH_LOGIN\",\"type\":\"phrase\"}}},\"$state\":{\"store\":\"appState\"}}],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
}
}
}

Теперь пара замечаний по поводу команды curl и этого файла json.Индекс, к которому я добавляю визуализацию, - это .kibana.Я обнаружил, что когда я помещаю их в другие индексы, такие как «тест», мои данные не отображаются в виде сохраненного объекта в Kibana и, следовательно, не отображаются на вкладке визуализации.Когда я помещаю в .kibana с этим синтаксисом '.kibana / doc / visualization: vis1', мой объект отображается на вкладке визуализации.

Теперь о файле json.Обратите внимание, что при экспорте визуализации из Kibana 6 она выглядит не так.Это выглядит так:

{
"_id": "vis1",
"_type": "visualization",
"_source": {
  "title": "Logins",
  "visState": "{\"title\":\"Logins\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"principal.keyword\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
  "uiStateJSON": "{}",
  "description": "",
  "version": 1,
  "kibanaSavedObjectMeta": {
    "searchSourceJSON": "{\"index\":\"def097e0-550f-11e8-9266-93ce640e5839\",\"filter\":[{\"meta\":{\"index\":\"def097e0-550f-11e8-9266-93ce640e5839\",\"negate\":false,\"disabled\":false,\"alias\":null,\"type\":\"phrase\",\"key\":\"requestType.keyword\",\"value\":\"LOG\",\"params\":{\"query\":\"LOG\",\"type\":\"phrase\"}},\"query\":{\"match\":{\"requestType.keyword\":{\"query\":\"LOG\",\"type\":\"phrase\"}}},\"$state\":{\"store\":\"appState\"}}],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
  }
}
}

Обратите внимание на первые несколько строк.По этой ссылке я обнаружил Невозможно создать визуализацию с помощью команды curl в elaticearch , что вам нужно изменить экспорт json, чтобы импортировать его.Кажется странным, верно?

В любом случае, тогда у меня было две ошибки в реальном объекте визуализации один раз в Кибане.Первым было то, что «шаблон индекса, связанный с этим объектом, больше не существует». Я смог обойти это, создав шаблон индекса с идентификатором, указанным в searchSourceJson моей визуализации.Я должен был сделать это в пользовательском интерфейсе Kibana, поэтому технически это решение не сработало бы для меня.В любом случае я создал индекс с документом, вызвав его

curl -X PUT "localhost:9200/test57/_doc/1" -H 'Content-Type: application/json' -d'
{
"user" : "kimchy",
"post_date" : "2009-11-15T14:12:12",
"message" : "trying out Elasticsearch"
}
'

, а затем в пользовательском интерфейсе Kibana создал шаблон индекса и присвоил ему собственный идентификатор шаблона индекса def097e0-550f-11e8-9266.-93ce640e5839.

Теперь, когда я пытаюсь просмотреть мою визуализацию, я получаю новую ошибку.«Поле, связанное с этим объектом, больше не существует в шаблоне индекса».
Я предполагаю, что это как-то связано с тем, что я толкаю случайный объект в индекс, но даже с настройками отладки для упругости и кибаны, я полагаю,действительно недостаточно информации для решения этой проблемы.

Если бы кто-нибудь мог указать мне правильное направление, это было бы здорово!Заранее спасибо.

1 Ответ

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

Необходимо убедиться, что поля, на которые вы ссылаетесь в определении визуализации, также присутствуют в шаблоне индекса Kibana (главный экран Kibana> Управление> Шаблоны индекса).Самый простой способ сделать это - включить указанные поля в созданный вами фиктивный индекс, а затем «обновить список полей» на экране «Шаблоны индексов Kibana».

Это можно сделать с помощью интерфейса командной строки, создав документ _type.шаблон индекса в индексе .kibana.

...