designetwork

ネットワークを軸としたIT技術メモ

Kibana6.xのReporting CSV Export機能を試してみる

f:id:daichi703n:20170717192510p:plain

Kibanaで長らく要望されている機能である、Discoverタブでの検索結果をCSVエクスポートする機能が、Version.6からついに実装される。GAリリースが待ち遠しく、Alpha版を試してみた。

github.com

Kibana 6.0.0-alpha2 is released | Elastic

CSV export

Did someone say CSV export? We’re pretty sure we heard someone ask for CSV export. Just to be safe, we built CSV export.

Search for the documents you want to export in the Discover app, and then export matching documents as a CSV file via the reporting menu. CSV export comes with X-Pack basic, which is our free license.

ElasticスタックVer 6.0.0を試す

ElasticスタックVer 6.0.0は2017/7月現在alpha2版がリリースされている。本記事時点でalphaリリースのため画面等は変更になる可能性がありますがご了承ください。

CSVエクスポート機能はX-Pack Reportingのうちの無償範囲で提供される。

検証用にDockerコンテナでKibana + Elasticsearchを構築する。docker-compose.ymlファイルはこちらの通り。設定は環境変数で与え、X-Pack Securityは無効化している。(インストールはElasticのリポジトリ追加によりYumでも可能)

$ sudo vi ./docker-compose.yml
version: '2.1'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.0.0-alpha2
    container_name: els_60
    environment:
      - bootstrap.memory_lock=true
      - xpack.security.enabled=false
      - xpack.monitoring.history.duration=1d
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - "network.host=0.0.0.0"
      - "http.host=0.0.0.0"
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    mem_limit: 1g
    memswap_limit: 1g
    volumes:
      - es_data1:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - kibana_net
  kibana:
    image: docker.elastic.co/kibana/kibana:6.0.0-alpha2
    container_name: kibana_60
    environment:
      SERVER_NAME: "kibana.designet.local"
      ELASTICSEARCH_URL: "http://els_60:9200"
      XPACK_MONITORING_ELASTICSEARCH_URL: "http://els_60:9200"
      XPACK_SECURITY_ENABLED: "false"
    ports:
     - 5606:5601
    networks:
      - kibana_net
    depends_on:
      - elasticsearch
    links:
      - elasticsearch
volumes:
  es_data1:
    driver: local
networks:
  kibana_net:

CSV Export動作確認

起動したElasticsearch, Kibanaでindex取り込み設定をすると、DiscoverタブからReporting > Generate CSVでSave済みの検索をエクスポートできる。

f:id:daichi703n:20170717185817p:plain

生成されたCSVファイルをダウンロードすると、以下の通りCSV形式のファイルを得られる。

timestamp,"source_node.ip","source_node.name","cluster_state.status","_type"
"2017-07-17T09:54:16.189Z","172.19.0.2",SstbTYy,,"index_stats"
"2017-07-17T09:54:16.189Z","172.19.0.2",SstbTYy,,"index_stats"

これまではPDFでのエクスポートだったが、CSVでのエクスポートが可能になり、外部連携が容易になる。

なお、Discoverタブで単純にindexを開いた状態ではReport機能は使用することができず、以下のメッセージが表示される。

Please save your work before generating a report.

そのため、カラムの選択をしてSaveしてからReporting機能を使用する。

Virtual Memoryのエラー対応

DockerでElasticsearchを動かす場合にはこちらの通りVirtual Memoryの拡張が必要。

www.elastic.co

els_60           | ERROR: [1] bootstrap checks failed
els_60           | [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

まとめ - Kibana6.xのReporting CSV Export機能を試してみる

Kibana6.xのX-Pack Reportingに含まれるCSV Export機能を試してみた。期待通りの動作が可能だったため、これまでの独自パッチ適用は不要で、X-Packを適用すればよくなる。X-Packではあるが無償範囲で使用可能であるため、ハードルなく使用できる。