kibana 4.1 export search results

时间:2015-07-28 16:26:26

标签: elasticsearch kibana kibana-4

We've recently moved our centralized logging from Splunk to an ELK solution, and we have a need to export search results - is there a way to do this in Kibana 4.1? If there is, it's not exactly obvious...

Thanks!

7 个答案:

答案 0 :(得分:8)

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

  

如果您希望实际从Elasticsearch导出日志,那么   可能想要将它们保存在某个地方,以便在浏览器中查看它们   可能不是查看数百或数千个日志的最佳方式。   这里有几个选项:

     
      
  • 在“发现”标签中,您可以点击底部附近的箭头标签查看原始请求和响应。你可以点击“请求”   并使用它作为ES与curl(或类似的东西)的查询   查询ES以获取所需的日志。

  •   
  • 您可以使用logstash或stream2es206转储索引的内容(使用可能的查询参数来获取   你想要的具体文件。)

  •   

答案 1 :(得分:1)

如果您在卷曲时遇到麻烦,或者您不需要自动程序从Kibana中提取日志,只需点击“响应”即可。得到你需要的东西。

遇到像xsrf令牌丢失之类的麻烦之后'使用卷曲时, 我发现这种方式更简单,更简单!

与其他人说的一样,单击底部附近的箭头选项卡后会出现“请求”按钮。

request button

答案 2 :(得分:1)

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

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

先单击保存,然后单击共享

Click **Save** first, then click **Share**

点击 CSV报告

Click CSV Reports

然后点击生成CSV

Then click **Generate CSV**

片刻之后,您会在右下方获得下载选项。

答案 3 :(得分:1)

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

  1. Chrome-打开开发者工具/网络
  2. Kibana-执行查询
  3. Chrome-右键单击网络通话,然后选择复制/复制为cURL
  4. 命令行-执行[cURL from step 4] > query_result.json

答案 4 :(得分:0)

仅导出时间戳和当时的消息计数,而不是日志信息:

原材料:

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

格式化:

" 2015年9月3日,06:00:00.000"," 1,214" " 2015年9月3日,09:00:00.000"," 1,217" " 2015年9月3日,12:00:00.000"," 1,342" " 2015年9月3日,15:00:00.000"," 1,452" " 2015年9月3日,18:00:00.000"," 1,396" " 2015年9月3日,21:00:00.000"," 1,332" " 2015年9月4日,00:00:00.000"," 1,332" " 2015年9月4日,03:00:00.000"," 1,334" " 2015年9月4日,06:00:00.000"," 1,337" " 2015年9月4日,09:00:00.000"," 1,215" " 2015年9月4日,12:00:00.000"," 12,523" " 2015年9月4日,15:00:00.000"," 61,897"

答案 5 :(得分:0)

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

这是一个快速实用的脚本,可以通过httpie从ElasticSearch捕获所有日志,通过jq解析并写出它们,并使用滚动光标迭代查询,以便可以存储前500个以上的条目。已捕获(不同于此页面上的其他解决方案)。

此脚本是通过httpie(http命令)和鱼壳实现的,但可以很容易地适应bash和curl等更标准的工具。

根据@Sean的答案设置查询:

在“发现”标签中,您可以点击底部附近的箭头标签 查看原始请求和响应。您可以单击“请求”,然后 使用它作为对带有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函数中的代码进行了转换。

答案 6 :(得分:-7)

当然,您可以从Kibana的Discover(Kibana 4.x +)导出。 1.在发现页面上,单击&#34;向上箭头&#34;这里: enter image description here

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

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