kibana 4.1导出搜索结果

Mac*_*red 9 elasticsearch kibana kibana-4

我们最近将我们的集中式日志记录从Splunk转移到ELK解决方案,我们需要导出搜索结果 - 有没有办法在Kibana 4.1中执行此操作?如果有的话,这并不是很明显......

谢谢!

ris*_*2m8 19

这是一个很老的帖子。但我认为仍然有人在寻找一个好的答案。

您可以轻松地从 Kibana Discover 导出您的搜索。

先点击保存,然后点击分享

先点击**保存**,然后点击**分享**

单击CSV 报告

单击 CSV 报告

然后点击生成CSV

然后点击**生成CSV**

片刻之后,您将看到右下角的下载选项。

  • 我保存了,但按钮仍然是灰色的,让我再次保存..最后,当我保存时名称中没有空格,它开始工作。谢谢! (2认同)
  • 如果您错过了右下角的“下载”消息(这是一条消失的瞬时消息),您始终可以在 Kibana -> 管理 -> 堆栈管理 -> 报告中找到保存的报告。保存的报告右侧将有一个“下载”图标。 (2认同)
  • 这些 CSV 报告可能会被截断为 10,000 条记录:https://github.com/grafana/grafana/issues/15951 (2认同)
  • 这是 kibana 的特定版本吗?在我的系统中,没有 CVS 报告选项。只有“保存搜索”和“保存对象”。前者只是过滤器的链接,另一个是已保存搜索的链接。两者都不允许导出数据。 (2认同)

Dav*_*oko 9

这适用于 Kibana v 7.2.0 - 将查询结果导出到本地 JSON 文件。在这里我假设你有 Chrome,类似的方法可能适用于 Firefox。

  1. Chrome - 打开开发者工具/网络
  2. Kibana - 执行您的查询
  3. Chrome - 右键单击​​网络调用并选择复制/复制为 cURL
  4. 命令行 - 执行[cURL from step 3] > query_result.json。查询响应数据现在存储在query_result.json

编辑:使用以下命令深入source查看生成的 JSON 文件中的节点jq

jq '.responses | .[]  | .hits  | .hits | .[]._source ' query_result.json
Run Code Online (Sandbox Code Playgroud)

  • 这太疯狂了!但有效。此外,“Response”选项卡将包含 json 字符串形式的数据。 (3认同)
  • 我很难找到这个,因为我认为自从写完这个答案以来,用户界面已经改变了。但是,如果您在顶部附近看到一个类似于“新建、保存、打开、共享、检查、导出”的菜单,请单击“检查”,这将打开一个面板,您可以在其中单击“响应”。我没有找到 URL,但我能够复制原始 JSON。 (3认同)

Sea*_*ean 8

如果你想导出日志(不只是时间戳和计数),你有几个选择(tylerjl在Kibana论坛上很好地回答了这个问题):

如果您希望实际从Elasticsearch导出日志,您可能希望将它们保存在某个位置,因此在浏览器中查看它们可能不是查看数百或数千个日志的最佳方式.这里有几个选项:

  • 在"发现"标签中,您可以单击底部附近的箭头选项卡查看原始请求和响应.您可以单击"请求"并将其用作ES的查询,使用curl(或类似的东西)来查询ES以获取所需的日志.

  • 您可以使用logstash或stream2es206转储索引的内容(使用可能的查询参数来获取所需的特定文档.)


Ram*_*man 5

@Sean 的答案是正确的,但缺乏细节。

这是一个快速而肮脏的脚本,可以通过 httpie 从 ElasticSearch 获取所有日志,通过 jq 解析并写出它们,并使用滚动光标迭代查询,以便可以捕获超过前 500 个条目(与本页的其他解决方案)。

该脚本是使用 httpie(命令http)和 Fish shell 实现的,但可以轻松地适应更标准的工具,如 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!
Run Code Online (Sandbox Code Playgroud)

最终结果是脚本顶部指定的输出文件中与 Kibana 中的查询匹配的所有日志,并根据函数中的代码进行转换process_page


小智 -15

当然,您可以从 Kibana 的 Discover (Kibana 4.x+) 导出。1. 在发现页面上单击此处的“向上箭头”: 在此输入图像描述

  1. 现在,在页面底部,您将有两个导出搜索结果的选项

在此输入图像描述

在 logz.io(我工作的公司),我们将根据特定搜索发布预定报告。

  • 这会导出计数,但不会导出搜索结果。 (12认同)
  • 请注意其他查看者,这不会像 UI 建议导出那样真正导出您正在查看的内容。 (2认同)