Kibana の活用

Prev Next

Classic環境で利用できます。

Kibanaは、Elasticsearchクラスタに保存されたデータを可視化および検索するためのオープンソースインターフェースです。データを活用して様々なチャートを作成し、クラスタを管理できます。Kibanaの活用で説明する内容は、次の通りです。

  • Kibana を開始する: Kibanaへのアクセス方法、メニューのご案内
  • Dev Tools: 簡単に APIを呼び出せる Dev Toolsメニューの Consoleのご案内
  • データ管理: APIを活用したデータを保存および照会、インデックスパターンの作成、Discoverメニューでのデータ検索方法のご案内
  • スナップショット管理: APIを活用したスナップショットの作成、スナップショット作成失敗の原因確認、スナップショットを利用したデータ復元、スナップショット削除方法のご案内
参考
  • ここでは、Kibanaの機能のうち、Search Engine Serviceを活用するために頻繁に使用される一部の機能についてのみ説明します。Kibanaに関する詳細は、Kibana Guideをご参照ください。
  • 本ガイドはバージョン 6.6.1の Kibanaを基準に作成されています。

Kibana を開始する

Kibanaを利用するためには、まず Kibanaにアクセスする必要があります。ログイン後、Kibanaの様々なメニューを確認できます。

Kibanaアクセス

Search Engine Serviceで Elasticsearchクラスタを作成すると、自動的にマネージャノードに Kibanaがインストールされて実行されます。NAVERクラウドプラットフォームコンソールまたはウェブブラウザで Kibanaにアクセスできます。

参考
  • Kibanaにアクセスする前に、Kibanaのアクセス IDとパスワードをご確認ください。
    • Cluster > クラスタ管理 > Kibanaアクセスパスワードの初期化メニューで IDの確認およびパスワード設定が可能です。
  • NAVERクラウドプラットフォームコンソールで Kibanaにアクセスする方法については、Kibanaアクセスをご参照ください。

ウェブブラウザで Kibanaにアクセスする方法は、次の通りです。

  1. ウェブブラウザで「マネージャノードパブリック IPアドレス:80」にアクセスします。
    • 80番ポートに転送された5601番ポートにアクセスします。
  2. 以下のような画面が表示されたら、Kibanaアクセス情報を入力した後、 [ログイン] ボタンをクリックします。
    ses-kibana-classic_login_ko
    • ユーザー名: Kibanaアクセス IDを入力
    • パスワード: Kibanaアクセスパスワードを入力
    • ログイン後、最初に表示される画面で [Try our sample data] ボタンをクリックすると、サンプルデータを使用できます。

Kibanaメニュー

Kibanaの各メニューの基本的な説明は、次の通りです。

  • Discover: 保存したデータを検索(データ検索を参照)
  • Visualize: データ可視化ツール
  • Dashboard: 可視化されたデータと検索結果を一目で確認
  • Timelion: 時系列データ可視化ツール
  • Dev Tools: APIを活用してデータを管理(Dev Toolsを参照)
  • Management: インデックスパターン、保存されたオブジェクト、Kibanaの詳細設定を管理

Dev Tools

Dev Toolsメニューの Consoleを利用して簡単に APIを活用し、リクエストに対する結果を取得できます。Dev Tools画面における基本的な説明は、次の通りです。
ses-kibana-classic_console

領域 説明
① Console機能
  • History: 過去に実行したコマンドを確認、再実行
  • Settings: Console環境設定
  • Help: Consoleで使用可能なショートカットキーのご案内
② 入力領域 コマンドの入力領域
  • i-ses-kibanarunclassic: クリックして入力したコマンドを実行
    • [Ctrl]+[Enter] キーを押してコマンドを実行可能
  • i-ses-kibanaactionclassic: クリックして次のメニューを表示
    • Copy as cURL: 入力したコマンドを curlコマンド形式に変換してクリップボードにコピー
    • Open documentation: 入力したコマンドに該当する APIに関するドキュメントを表示
    • Auto indent: 入力したコマンドに自動的に空白を追加/削除
③ 結果領域 コマンド実行結果を表示

データ管理

Kibanaを利用してデータを管理できます。Dev Toolsメニューの Consoleで、APIを通じてデータを保存・照会できます。また、インデックスパターンを作成し、クラスタに保存されたデータを検索できます。

データ保存

APIを通じてデータを保存する方法は、次の通りです。

  1. Kibanaで Dev Toolsメニューをクリックします。
  2. Consoleで APIを呼び出してデータを保存します。
    • 画面右側に保存結果が表示されます。
    • 例1) インデックス testに name、deptフィールドを持つデータを保存
      PUT test/_doc/1
      {
          "name" : "asd",
          "dept" : "Document Management"
      }
      
    • 例2) データなしで Primary Shardが3つ、Replica Shardが1つのインデックスを作成
      PUT my_index
      {
      "settings": {
         "index": {
            "number_of_shards": 3,
            "number_of_replicas": 1
         }
      }
      }
      

データ照会

APIを通じてクラスタに保存されたデータを照会する方法は、次の通りです。

  1. Kibanaで Dev Toolsメニューをクリックします。
  2. Consoleで APIを呼び出してデータを照会します。
    • 画面右側に検索結果が表示されます。
    • 例) インデックス testにあるデータを照会
      GET test/_search
      {
          "query" : {
              "match_all" : {}
          }
      }
      

インデックスパターン作成

Kibanaでインデックスを使用するには、まずインデックスパターンを作成する必要があります。インデックスパターンを通じて複数のインデックスのデータを一度に照会・管理できます。

参考

インデックスパターンを作成するには、クラスタにデータが保存されている必要があります。

インデックスパターンの作成方法は次の通りです。

  1. Kibanaで Managementメニューをクリックします。
  2. Index Patternsメニューをクリックします。
  3. [Create index pattern] ボタンをクリックします。
  4. Index patternに Kibanaで確認するためのインデックスパターンを入力します。
    • 入力したインデックスパターンに該当するインデックスが表示されます。
  5. [Next step] ボタンをクリックします。
  6. Configure settingsの内容を確認し、 [Create index pattern] ボタンをクリックします。
    • 日付/時刻データがある場合は、Time Filter field nameから該当するフィールドを選択します。
    • 作成したインデックスパターンに関する情報が表示されます。

データ検索

Kibanaの Discoverメニューからクラスタに保存されたデータを検索できます。

参考

データを検索するには、まずインデックスパターンを作成する必要があります。インデックスパターン作成をご参照ください。

クラスタのデータを検索する方法は、次の通りです。

  1. Kibanaで Discoverメニューをクリックします。
  2. ドロップダウンメニューから照会するインデックスパターンを選択します。
    • 選択したインデックスパターンに含まれたインデックスのデータが表示されます。
      ses-kibana-classic_discover
  3. 検索画面に検索キーワード(例) name:asd)を入力し、 [Enter] キーを押して検索結果を確認します。
    • フィールドを選択することで、必要なフィールドの情報のみを確認できます。

スナップショット管理

Kibanaの Dev Toolsメニューの Consoleを使用して、スナップショットを作成・削除できます。スナップショットの作成に失敗した場合、失敗の原因を特定したり、作成したスナップショットを使用してデータを復元できます。

参考

Object Storageにスナップショットを作成して管理するには、クラスタのすべてのノードに Object Storage Pluginをインストールする必要があります(Object Storage Pluginのインストールを参照)。

Object Storage Pluginのインストール

クラスタで Object Storageにアクセスするには、クラスタのすべてのノードに Object Storage Pluginをインストールする必要があります。以下の手順を実行してプラグインをインストールします。

  1. マネージャノードに SSHアクセスした後、以下のコマンドを実行します(SSHアクセスに関する詳細は、マネージャノードへの SSHアクセスを参照)。
echo "-Des.allow_insecure_settings=true" | sudo tee -a /etc/elasticsearch/jvm.options
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install repository-s3
  1. yを入力して Object Storage Pluginをインストールします。
  2. クラスタのすべてのノードに対して手順1~2を繰り返し、Object Storage Pluginをインストールします。
    • マネージャノードにアクセスした状態で「ssh sshuser@データノードの IPアドレス」コマンドを実行した後、yesを入力して各データノードに SSHアクセスできます。
      • データノードの IPアドレスは、Clusterメニューのクラスタ詳細情報にある [詳細を見る] ボタンをクリックして確認できます。
    • データノードにアクセスした状態で logout コマンドを実行すると、マネージャノードに戻ります。
  3. インストールしたプラグインを適用するため、クラスタを再起動します(クラスタ再起動を参照)。

Elasticsearch APIを介したスナップショットの作成

Elasticsearch APIを呼び出してクラスタのスナップショットを作成できます。

参考
  • まず、クラスタのすべてのノードに Object Storage Pluginをインストールする必要があります(Object Storage Pluginのインストールを参照)。
  • まず、Object Storageにスナップショットを保存するバケットを作成する必要があります。バケット作成の詳細は、バケット作成をご参照ください。

クラスタのスナップショットを作成する方法は、次の通りです。

  1. Kibanaで Dev Toolsメニューをクリックします。
  2. Consoleで以下のコマンドを実行し、repositoryを作成します。
    PUT _snapshot/my-own-snapshot-repository
    {    
       "type" : "s3",  
       "settings": {        
             "region" : "kr",
             "endpoint" : "https://kr.object.ncloudstorage.com",
             "bucket": "スナップショットを保存するバケット名",
             "path_style_access": "true",
             "access_key":"Access Key IDの値",
             "secret_key":"Secret Keyの値"
          }
    }
    
    • my-own-snapshot-repository: 希望する repository名を入力
    • access_keysecret_key: API認証キーの値。API認証キーに関する説明は、Ncloud APIを参照
  3. Consoleで以下のコマンドを実行し、スナップショット作成 APIを呼び出します。
    POST _snapshot/my-own-snapshot-repository/my-own-snapshot-name
    
    • my-own-snapshot-repository: 2.で作成した repository名
    • my-own-snapshot-name: 希望するスナップショット名を入力
    • 以下のようにインデックスを指定して APIを呼び出す場合、希望するインデックスに対してのみスナップショットを作成できます。
      PUT _snapshot/my-own-snapshot-repository/my-own-snapshot-name
      {
      "indices": "myindex, myindex2"
      }
      
    • 作成したスナップショットは、Object Storage内の指定したパスで確認できます。

スナップショット作成の失敗原因を確認

Kibanaでスナップショット作成が失敗した原因を確認する方法は、次の通りです。

  1. Kibanaで Dev Toolsメニューをクリックします。
  2. Consoleで GET _snapshot コマンドを実行した後、作成に失敗したスナップショットの repositoryを確認します。
    • 画面右側に repositoryリストが表示されます。
  3. 以下のコマンドを実行して、当該スナップショットのステータスを確認します。
    GET _snapshot/"スナップショットの repository"/"スナップショット名"
    

スナップショットの復元

スナップショットを利用してクラスタのデータを復旧したり、あるクラスタから別のクラスタへデータを移動させることができます。

参考

スナップショットを復元するには、まず復元するスナップショットが作成されている必要があります(Elasticsearch APIを介したスナップショットの作成を参照)。

スナップショットを復元する方法は、次の通りです。

  1. Kibanaで Dev Toolsメニューをクリックします。
  2. Consoleで以下のコマンドを実行し、復元する repositoryを作成します。
    PUT _snapshot/restore-repository
    {  
    "type" : "s3",  
    "settings": {    
       "region" : "kr",    
       "endpoint" : "https://kr.object.ncloudstorage.com",
       "bucket": "estest",
       "path_style_access": "true",
       "access_key":"Access Key IDの値",
       "secret_key":"Secret Keyの値"
    }
    }
    
    • bucket: 復元するスナップショットが存在するバケット名

    • base_path: 復元するスナップショットが配置されているフォルダ名(クラスタ名-クラスタ番号)

    • 以下のコマンドを実行して、repositoryが正常に作成されたかを確認できます。

      GET _snapshot
      
    • 以下のコマンドを実行して、repositoryに存在するスナップショットリストを確認できます。

      GET _cat/snapshots/restore-repository
      
  3. 以下のコマンドを実行して、スナップショットに存在する復元可能なインデックスリストを確認します。
    GET _snapshot/restore-repository/"スナップショット名"
    
  4. 以下のコマンドを実行して、現在のクラスタに存在するインデックスリストを確認します。
    • 復元するインデックスと名前が同じインデックスが現在のクラスタに存在する場合、そのインデックスは復元できません。
    GET _cat/indices
    
  5. コマンドを実行して、希望するインデックスを復元します。
    • 特定のインデックスを復元
      • 例) metricbeat-7.7.0-2021.06.23を復元
        POST _snapshot/restore-repository/test4/_restore
        {
        "indices": "metricbeat-7.7.0-2021.06.23",
        "ignore_unavailable": true
        }
        
    • ワイルドカード(*)を使用して複数のインデックスを復元
      • 例) 先頭が metricbeatのすべてのインデックスを復元
        POST _snapshot/restore-repository/test4/_restore
        {
        "indices": "metricbeat*",
        "ignore_unavailable": true
        }
        
    • 特定のインデックスを除くすべてのインデックスを復元
      • 例) kibanaを除くすべてのインデックスを復元
        POST _snapshot/restore-repository/test4/_restore
        {
        "indices": "-.kibana*",
        "ignore_unavailable": true
        }
        
    • "indices": "*"に設定した場合、すべてのインデックスに対して復元を試行し、重複するインデックスが存在する場合は復元に失敗します。
  6. 以下のコマンドを実行して、インデックスが正常に復元されたか確認します。
    • 復元直後には一時的にインデックスのステータスが yellow、クラスタのステータスが警告になることがあります。
    GET _cat/indices
    

スナップショット削除

  1. Kibanaで Dev Toolsメニューをクリックします。
  2. Consoleで以下のコマンドを実行し、スナップショットを削除します。
    DELETE _snapshot/restore-repository/test4
    
    • 以下のコマンドを実行して、スナップショットが削除されたかを確認できます。
      GET _cat/snapshots/restore-repository
      
参考

容量の大きいスナップショットを削除する場合、タイムアウトレスポンスが発生することがあります。所要時間が30秒を超えることで発生する現象であり、スナップショットの削除はバックグラウンドで正常に行われます。