Kibana — как экспортировать результаты поиска

Недавно мы перенесли наше централизованное ведение журнала из Splunk в решение ELK, и нам нужно экспортировать результаты поиска — есть ли способ сделать это в Kibana 4.1? Если и есть, то не совсем очевидно...

Спасибо!


person MachineShedFred    schedule 28.07.2015    source источник


Ответы (7)


Конечно, вы можете экспортировать из Discover Kibana (Kibana 4.x+). 1. На странице обнаружения нажмите «стрелку вверх» здесь: введите здесь описание изображения

  1. Теперь в нижней части страницы у вас будет два варианта экспорта результатов поиска.

введите здесь описание изображения

В logz.io (компания, в которой я работаю) мы будем выпускать отчеты по расписанию, основанные на конкретных поисковых запросах.

person Tomer Levy    schedule 29.07.2015
comment
Это экспортирует количество, но не экспортирует результаты поиска. - person g .; 10.11.2015
comment
Обратите внимание, что это не дает истинного экспорта того, на что вы смотрите, как предполагает экспорт пользовательского интерфейса. - person Du3; 04.01.2016
comment
Эта функция больше не существует (по крайней мере, с Kibana 7.x). - person Tomer Gabel; 22.04.2020

Это очень старый пост. Но я думаю, что все еще кто-то ищет хороший ответ.

Вы можете легко экспортировать результаты поиска из Kibana Discover.

Сначала нажмите Сохранить, затем нажмите Поделиться.

Сначала нажмите **Сохранить**, а затем нажмите **Поделиться**

Нажмите Отчеты в формате CSV.

Нажмите Отчеты в формате CSV

Затем нажмите Создать CSV.

Затем нажмите **Создать CSV**

Через несколько секунд вы увидите вариант загрузки внизу справа.

person rishad2m8    schedule 22.08.2019
comment
Я сохранил, но кнопка по-прежнему серая, позволяя мне сохранить снова.. наконец, когда я сохраняю без пробела в имени, он начинает работать. Спасибо! - person WesternGun; 11.11.2020
comment
Если вы пропустили сообщение «Загрузить» в правом нижнем углу (это временное сообщение, которое исчезает), вы всегда можете найти сохраненные отчеты в Kibana -> Управление -> Управление стеком -> Отчетность. Сохраненные отчеты будут иметь значок загрузки с правой стороны. - person NellieK; 21.01.2021

Если вы хотите экспортировать журналы (а не только отметку времени и счетчики), у вас есть несколько вариантов (tylerjl очень хорошо ответил на этот вопрос на Форумы Kibana):

Если вы действительно хотите экспортировать журналы из Elasticsearch, вы, вероятно, захотите сохранить их где-нибудь, поэтому просмотр их в браузере, вероятно, не лучший способ просмотра сотен или тысяч журналов. Здесь есть несколько вариантов:

  • На вкладке «Обнаружение» вы можете щелкнуть вкладку со стрелкой внизу, чтобы увидеть необработанный запрос и ответ. Вы можете нажать «Запрос» и использовать это как запрос к ES с помощью curl (или чего-то подобного), чтобы запросить у ES нужные вам журналы.

  • Вы можете использовать logstash или stream2es206 для вывода содержимого индекса (с возможными параметрами запроса для получения конкретных нужные документы)

person Sean    schedule 29.01.2016
comment
См. stackoverflow.com/a/60644447/430128 скрипт, который может сделать именно это. - person Raman; 12.03.2020

Это работает с Kibana v 7.2.0 - экспортировать результаты запроса в локальный файл JSON. Здесь я предполагаю, что у вас есть Chrome, аналогичный подход может работать с Firefox.

  1. Chrome: откройте Инструменты разработчика/Сеть.
  2. Кибана - выполните ваш запрос
  3. Chrome: щелкните правой кнопкой мыши сетевой вызов и выберите Копировать/Копировать как cURL.
  4. командная строка - выполнить [cURL from step 3] > query_result.json

Изменить. Чтобы перейти к узлам source в полученном файле JSON, используя jq:

jq '.responses | .[]  | .hits  | .hits | .[]._source ' query_result.json
person David Soroko    schedule 16.01.2020
comment
Это безумие! Но работает. Также вкладка Response будет включать данные в виде строки json. - person Ctrl-Zed; 03.02.2021

Если у вас возникли проблемы с созданием собственного запроса с помощью curl или вам не нужна автоматическая программа для извлечения журналов из Kibana, просто нажмите «Ответить» и получите то, что вам нужно.

После таких проблем, как «отсутствует токен xsrf» при использовании curl, я обнаружил, что этот способ проще и проще!

Как уже говорили другие, кнопка «Запрос» появляется после нажатия на вкладку со стрелкой внизу.

кнопка запроса

person user3792643    schedule 08.09.2017

Экспортируется только метка времени и количество сообщений в это время, а не информация журнала:

Сырой:

1441240200000,1214 1441251000000,1217 1441261800000,1342 1441272600000,1452 1441283400000,1396 1441294200000,1332 1441305000000,1332 1441315800000,1334 1441326600000,1337 1441337400000,1215 1441348200000,12523 1441359000000,61897

Отформатировано:

«3 сентября 2015 г., 06:00:00.000», «1 214» «3 сентября 2015 г., 09:00:00 000», «1 217» «3 сентября 2015 г., 12:00:00 000», «1 342» «3 сентября 2015 г., 15:00:00.000","1,452" "3 сентября 2015, 18:00:00.000","1,396" "3 сентября 2015, 21:00:00.000","1,332" "4 сентября 2015, 00:00:00.000 ","1,332" "4 сентября 2015, 03:00:00.000","1,334" "4 сентября 2015, 06:00:00.000","1,337" "4 сентября 2015, 09:00:00.000","1,215" "4 сентября 2015 г., 12:00:00.000", "12 523" "4 сентября 2015 г., 15:00:00.000", "61 897"

person user5301381    schedule 04.09.2015

@ Ответ Шона правильный, но ему не хватает конкретики.

Вот быстрый и грязный скрипт, который может получить все журналы из ElasticSearch через httpie, разобрать и записать их через jq, а также использовать курсор прокрутки для итерации запроса, чтобы можно было захватить более первых 500 записей (в отличие от другие решения на этой странице).

Этот скрипт реализован с помощью httpie (команда http) и оболочки fish, но его можно легко адаптировать к более стандартным инструментам, таким как bash и curl.

Запрос задан в соответствии с ответом @Sean:

На вкладке «Обнаружение» вы можете щелкнуть вкладку со стрелкой внизу, чтобы увидеть необработанный запрос и ответ. Вы можете нажать «Запрос» и использовать это как запрос к ES с помощью curl (или чего-то подобного), чтобы запросить у ES нужные вам журналы.

set output logs.txt
set query '<paste value from Discover tab here>'
set es_url http://your-es-server:port
set index 'filebeat-*'

function process_page
  # You can do anything with each page of results here
  # but writing to a TSV file isn't a bad example -- note
  # the jq expression here extracts a kubernetes pod name and
  # the message field, but can be modified to suit
  echo $argv | \
    jq -r '.hits.hits[]._source | [.kubernetes.pod.name, .message] | @tsv' \
    >> $output
end

function summarize_string
  echo (echo $argv | string sub -l 10)"..."(echo $argv | string sub -s -10 -l 10)
end

set response (echo $query | http POST $es_url/$index/_search\?scroll=1m)
set scroll_id (echo $response | jq -r ._scroll_id)
set hits_count (echo $response | jq -r '.hits.hits | length')
set hits_so_far $hits_count
echo "Got initial response with $hits_count hits and scroll ID "(summarize_string $scroll_id)

process_page $response

while test "$hits_count" != "0"
  set response (echo "{ \"scroll\": \"1m\", \"scroll_id\": \"$scroll_id\" }" | http POST $es_url/_search/scroll)
  set scroll_id (echo $response | jq -r ._scroll_id)
  set hits_count (echo $response | jq -r '.hits.hits | length')
  set hits_so_far (math $hits_so_far + $hits_count)
  echo "Got response with $hits_count hits (hits so far: $hits_so_far) and scroll ID "(summarize_string $scroll_id)

  process_page $response
end

echo Done!

Конечным результатом являются все журналы, соответствующие запросу в Kibana, в выходном файле, указанном в верхней части скрипта, преобразованные в соответствии с кодом в функции process_page.

person Raman    schedule 11.03.2020