序章

Kibana 4は、Elasticsearchに基づいて構築された分析および視覚化プラットフォームであり、データをより深く理解することができます。 このチュートリアルでは、Elasticsearch ELKスタックによって収集されたログメッセージをフィルタリングおよび視覚化するためにそのインターフェイスを使用する方法を示すことにより、Kibanaの使用を開始します。 主なインターフェイスコンポーネントについて説明し、検索、視覚化、およびダッシュボードを作成する方法を示します。

前提条件

このチュートリアルは、LogstashおよびKibanaを使用した集中ログシリーズの第3部です。

ELKのセットアップが機能していることを前提としています。 例では、syslogおよびNginxアクセスログを収集していることを前提としています。 これらのタイプのログを収集していない場合は、デモを変更して、独自のログメッセージを処理できるようにする必要があります。

このチュートリアルを提示されたとおりに正確に実行する場合は、このシリーズの最初の2つのチュートリアルに従って、次の設定を行う必要があります。

先に進む準備ができたら、Kibanaインターフェースの概要を見てみましょう。

Kibanaインターフェースの概要

Kibanaインターフェースは、次の4つの主要なセクションに分かれています。

  • 発見する
  • 視覚化する
  • ダッシュボード
  • 設定

各セクションの基本をリストされた順序で確認し、インターフェイスの各部分をどのように使用できるかを示します。

Kibana Discover

Kibana 4に初めて接続すると、Discoverページに移動します。 デフォルトでは、このページにはELKスタックで最近受信したすべてのログが表示されます。 ここでは、 Search Queries に基づいて特定のログメッセージをフィルタリングして検索し、 TimeFilterを使用して検索結果を特定の時間範囲に絞り込むことができます。

KibanaDiscoverインターフェース要素の内訳は次のとおりです。

  • 検索バー:メインナビゲーションメニューのすぐ下。 これを使用して、特定のフィールドやメッセージ全体を検索します
  • タイムフィルター:右上(時計アイコン)。 これを使用して、さまざまな相対時間範囲と絶対時間範囲に基づいてログをフィルタリングします
  • フィールドセレクター:左、検索バーの下。 ログビューに表示されるフィールドを変更するフィールドを選択します
  • 日付ヒストグラム:検索バーの下の棒グラフ。 デフォルトでは、これは、検索および時間フィルターによって一致した、時間(x軸)に対するすべてのログの数を示します。 バーをクリックするか、クリックアンドドラッグして、時間フィルターを絞り込むことができます
  • ログビュー:右下。 これを使用して、個々のログメッセージを確認し、フィールドでフィルタリングされたログデータを表示します。 フィールドが選択されていない場合、ログメッセージ全体が表示されます

このアニメーションは、Discoverページの主な機能のいくつかを示しています。

実行されていることの段階的な説明は次のとおりです。

  1. 各ログレコード(右下)に表示される内容を制限する「タイプ」フィールドを選択しました。デフォルトでは、ログメッセージ全体が表示されます。
  2. 検索 type: "nginx-access"、Nginxアクセスログにのみ一致します
  3. 最新のNginxアクセスログを拡張して、より詳細に確認しました

結果は「過去15分」に限定されていることに注意してください。 結果が得られない場合は、指定した期間に生成された、検索クエリに一致するログがあることを確認してください。

収集およびフィルタリングされるログメッセージは、LogstashおよびLogstashForwarderの構成によって異なります。 この例では、syslogおよびNginxアクセスログを収集し、それらを「タイプ」でフィルタリングしています。 ログメッセージを収集しているが、データを個別のフィールドにフィルタリングしていない場合、特定のフィールドをクエリできないため、ログメッセージに対するクエリはより困難になります。

検索構文

検索は、ログメッセージの特定のサブセットを選択するための簡単で強力な方法を提供します。 検索構文は非常に自明であり、ブール演算子、ワイルドカード、およびフィールドフィルタリングが可能です。 たとえば、Google Chromeユーザーによって生成されたNginxアクセスログを検索する場合は、次のように検索できます。 type: "nginx-access" AND agent: "chrome". 特定のホストやクライアントのIPアドレス範囲、またはログに含まれるその他のデータで検索することもできます。

保持したい検索クエリを作成したら、次のアニメーションのように、検索の保存アイコンをクリックしてから保存ボタンをクリックします。

保存済み検索は、保存済み検索の読み込みアイコンをクリックしていつでも開くことができ、ビジュアライゼーションを作成するときにも使用できます。

保存します type: "nginx-access" 「typenginxaccess」として検索し、それを使用して視覚化を作成します。

Kibana Visualize

Kibana Visualizeページでは、独自のカスタムビジュアライゼーションを作成、変更、および表示できます。 垂直バーおよびチャートからタイルマップ(マップにデータを表示するため)およびデータテーブルに至るまで、いくつかの異なるタイプの視覚化があります。 ビジュアライゼーションは、Kibanaインスタンスにアクセスできる他のユーザーと共有することもできます。

Kibanaビジュアライゼーションを初めて使用する場合は、先に進む前にフィールドリストをリロードする必要があります。 これを行う手順については、フィールドデータの再読み込みサブセクションのKibana設定セクションで説明されています。

垂直棒グラフを作成する

ビジュアライゼーションを作成するには、まずビジュアライゼーションメニュー項目をクリックします。

必要な視覚化のタイプを決定し、それを選択します。 出発点として縦棒グラフを作成します。

次に、検索ソースを選択する必要があります。 新しい検索を作成するか、保存した検索を使用できます。 後者の方法を使用して、前に作成した type nginxaccess検索を選択します。

最初は、右側のプレビューグラフは、「カウント」のY軸のみで構成されているため、実線のバーになります(検索でログメッセージが見つかったと想定)。 つまり、指定された検索クエリで見つかったログの数を表示しているだけです。

視覚化をより便利にするために、いくつかの新しいバケットを追加しましょう。

まず、 X-axis バケットを追加し、 Aggregation ドロップダウンメニューをクリックして、[DateHistogram]を選択します。 適用ボタンをクリックすると、1本のバーがX軸に沿って複数のバーに分割されます。 これで、カウントが複数のバーとして表示され、時間間隔に分割されます(ドロップダウンから間隔を選択することで変更できます)。これは、[検出]ページに表示されるものと同様です。

グラフをもう少し面白くしたい場合は、サブアグリゲーションの追加ボタンをクリックしてください。 スプリットバーバケットタイプを選択します。 サブアグリゲーションドロップダウンメニューをクリックして[重要な用語]を選択し、フィールドドロップダウンメニューをクリックして[clientip.raw]を選択し、サイズをクリックしますフィールドに「10」と入力します。 適用ボタンをクリックして、新しいグラフを作成します。

これは、この時点で表示されるはずのスクリーンショットです。

視覚化されているログが複数のIPアドレスによって生成された場合(つまり、 複数の人がサイトにアクセスしている場合)、各バーが色付きのセグメントに分割されていることがわかります。 色付きの各セグメントは、特定のIPアドレスによって生成されたログの数を表します(つまり、 サイトへの特定の訪問者)、グラフには最大10個の異なるセグメントが表示されます(サイズ設定のため)。 グラフ内の任意の項目にマウスオーバーしてクリックすると、特定のログメッセージにドリルダウンできます。

ビジュアライゼーションを保存する準備ができたら、上部にあるビジュアライゼーションの保存アイコンをクリックし、名前を付けて保存ボタンをクリックします。

別のビジュアライゼーションを作成する

ダッシュボードの作成方法を示す次のセクションに進む前に、少なくとももう1つのビジュアライゼーションを作成する必要があります。 さまざまな視覚化タイプを試してみてください。

たとえば、上位5つ(最大数)のログ「タイプ」の円グラフを作成できます。 これを行うには、視覚化をクリックし、円グラフを選択します。 次に、新しい検索を使用し、検索を「*」のままにします(つまり、 すべてのログ)。 次に、 SplitSlicesバケットを選択します。 Aggregation ドロップダウンをクリックして[重要な用語]を選択し、フィールドドロップダウンをクリックして[type.raw]を選択し、サイズフィールドをクリックします。 「5」と入力します。 次に、適用ボタンをクリックして、ビジュアライゼーションを「トップ5」として保存します。

これが今説明した設定のスクリーンショットです:

この例では、syslogとNginxアクセスログのみを収集しているため、円グラフには2つのスライスしかありません。

ビジュアライゼーションの作成が完了したら、Kibanaダッシュボードの作成に移りましょう。

Kibanaダッシュボード

Kibanaダッシュボードページでは、独自のカスタムダッシュボードを作成、変更、および表示できます。 ダッシュボードを使用すると、複数のビジュアライゼーションを1つのページに結合し、検索クエリを提供するか、ビジュアライゼーションの要素をクリックしてフィルターを選択することにより、それらをフィルター処理できます。 ダッシュボードは、ログの概要を取得し、さまざまな視覚化とログの間で相関関係を作成する場合に役立ちます。

ダッシュボードの作成

Kibanaダッシュボードを作成するには、まずダッシュボードメニュー項目をクリックします。

以前にダッシュボードを作成したことがない場合は、「開始する準備ができましたか?」というほとんど空白のページが表示されます。 この画面が表示されない場合(つまり ダッシュボードにはすでに視覚化があります)、新しいダッシュボードアイコン(検索バーの右側)を押してそこに移動します。

このアニメーションは、ダッシュボードに視覚化を追加する方法を示しています。

実行されている手順の内訳は次のとおりです。

  1. 視覚化アイコンの追加をクリックしました
  2. 「ログ数」の円グラフと「Nginx:トップ10クライアントIP」のヒストグラムを追加しました
  3. 視覚化メニューの追加を折りたたむ
  4. ダッシュボードのビジュアライゼーションを再配置およびサイズ変更しました
  5. ダッシュボードの保存アイコンをクリックしました

保存する前に、ダッシュボードの名前を選択してください。

これにより、ダッシュボードの作成方法がわかります。 先に進んで、必要と思われるダッシュボードを作成します。 次に、ダッシュボードの使用について説明します。

ダッシュボードを使用する

ダッシュボードは、検索クエリを入力するか、時間フィルターを変更するか、ビジュアライゼーション内の要素をクリックすることで、さらにフィルターに掛けることができます。

たとえば、ヒストグラムの特定のカラーセグメントをクリックすると、Kibanaを使用して、セグメントが表す重要な用語でフィルタリングできます。 ダッシュボードにフィルターを適用するスクリーンショットの例を次に示します。

必ず[今すぐ適用]ボタンをクリックして結果をフィルタリングし、ダッシュボードの視覚化を再描画してください。 フィルタは、必要に応じて適用および削除できます。

検索フィルターと時間フィルターは、ダッシュボードに表示されるデータサブセットにのみ適用されることを除いて、[検出]ページと同じように機能します。

Kibanaの設定

Kibana設定ページでは、デフォルト値やインデックスパターンなどのさまざまなものを変更できます。 このチュートリアルでは、シンプルに保ち、インデックスセクションとオブジェクトセクションに焦点を当てます。

フィールドデータをリロードする

Logstashデータに新しいフィールドを追加する場合、たとえば 新しいログタイプのフィルターを追加する場合は、フィールドリストを再ロードする必要がある場合があります。 このデータは定期的にしかキャッシュされないため、Kibanaでフィルタリングされたフィールドが見つからない場合は、フィールドリストをリロードする必要があります。

これを行うには、設定メニュー項目をクリックし、[logstash- *](インデックスパターンの下)をクリックします。

次に、黄色のフィールドリストの再読み込みボタンをクリックします。 OKボタンを押して確認します。

保存したオブジェクトを編集する

[オブジェクト]セクションでは、保存したダッシュボード、検索、および視覚化を編集、表示、および削除できます。

そこにたどり着くには、設定メニュー項目をクリックしてから、オブジェクトサブメニューをクリックします。

ここで、タブから選択して、編集、表示、または削除するオブジェクトを見つけることができます。

スクリーンショットでは、複製のビジュアライゼーションを選択しています。 適切なボタンをクリックして、編集、表示、または削除できます。

結論

このチュートリアルに従うと、Kibana4の使用方法を十分に理解しているはずです。 ログメッセージを検索し、視覚化とダッシュボードを作成する方法を知っている必要があります。

このシリーズの次のチュートリアル、GeoIPとELKを使用してユーザーの場所をマッピングする方法を必ず確認してください。

ご質問やご提案がございましたら、コメントを残してください!