前書き

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

前提条件

このチュートリアルは、* LogstashおよびKibana *による集中ログシリーズの第3部です。

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

提示されたとおりにこのチュートリアルを実行する場合は、このシリーズの最初の2つのチュートリアルに従うことにより、次のセットアップが必要です。

  • syslogを収集するELKスタック:https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-4-on-ubuntu-14-04[Elasticsearchのインストール方法、Logstash 、およびUbuntu 14.04のKibana 4]

  • Nginxアクセスログとフィルター:https://www.digitalocean.com/community/tutorials/adding-logstash-filters-to-improve-centralized-logging[Logstashフィルターを追加して集中ログを改善する]

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

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

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

  • 発見

  • 視覚化

  • ダッシュボード

  • 設定

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

キバナディスカバー

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

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

  • *検索バー:*メインナビゲーションメニューのすぐ下。 これを使用して、特定のフィールドおよび/またはメッセージ全体を検索します

  • *時間フィルター:*右上(時計アイコン)。 これを使用して、さまざまな相対時間範囲と絶対時間範囲に基づいてログをフィルタリングします

  • *フィールドセレクタ:*左、検索バーの下。 _Log View_に表示されるフィールドを変更するフィールドを選択します

  • *日付ヒストグラム:*検索バーの下の棒グラフ。 デフォルトでは、これはすべてのログのカウントを時間(x軸)に対して表示し、検索および時間フィルターと一致します。 バーをクリックするか、クリックしてドラッグすると、時間フィルターを絞り込むことができます

  • *ログビュー:*右下。 これを使用して個々のログメッセージを確認し、_fields_でフィルタリングされたログデータを表示します。 フィールドが選択されていない場合、ログメッセージ全体が表示されます

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

画像:https://assets.digitalocean.com/articles/elk/kibana/1-discover.gif [Kibana Discoverの使用方法]

以下は、実行されている内容の段階的な説明です。

  1. 各ログレコードの表示内容を制限する「タイプ」フィールドを選択しました(右下)。デフォルトでは、ログメッセージ全体が表示されます。

  2. Nginxアクセスログのみに一致する `+ type:” nginx-access “+`を検索しました

  3. 最新のNginxアクセスログを拡張して詳細を確認

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

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

検索構文

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

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

image:https://assets.digitalocean.com/articles/elk/kibana/2-save-search.gif [Kibana検索を保存する方法]

保存済み検索は、*保存済み検索の読み込み*アイコンをクリックすることでいつでも開くことができ、視覚化の作成時にも使用できます。

`+ type:” nginx-access “+`検索を“ type nginx access”として保存し、それを使用して視覚化を作成します。

Kibana Visualize

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

Kibanaビジュアライゼーションを初めて使用する場合は、先に進む前にフィールドリストを再読み込みする必要があります。 これを行う手順については、https://www.digitalocean.com/community/tutorials/how-to-use-kibana-dashboards-and-visualizations#kibana-settings [Kibana設定]セクション。

縦棒グラフを作成する

視覚化を作成するには、最初に[視覚化]メニュー項目をクリックします。

必要な視覚化のタイプを決定し、選択します。 *縦棒グラフ*を作成します。これは良い出発点です。

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

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

視覚化をさらに便利にするために、新しい*バケット*を追加してみましょう。

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

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

この時点で表示される画面のスクリーンショットは次のとおりです。

image:https://assets.digitalocean.com/articles/elk/kibana/visualize-nginx-access.png [Kibana Visualization Settings]

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

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

別の視覚化を作成する

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

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

以下に、今説明した設定のスクリーンショットを示します。

image:https://assets.digitalocean.com/articles/elk/kibana/pie-settings.png [円グラフの設定]

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

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

Kibanaダッシュボード

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

ダッシュボードを作成

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

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

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

image:https://assets.digitalocean.com/articles/elk/kibana/5-create-dashboard.gif [Kibanaダッシュボードの作成]

実行されているステップの内訳は次のとおりです。

  1. クリック_視覚化アイコンを追加_

  2. 「ログカウント」円グラフと「Nginx:トップ10クライアントIP」ヒストグラムを追加しました

  3. _視覚化メニューの追加_を折りたたんだ

  4. ダッシュボード上の視覚化の再配置とサイズ変更

  5. [ダッシュボードの保存]アイコンをクリックしました

保存する前にダッシュボードの名前を選択します。

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

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

ダッシュボードは、検索クエリを入力するか、時間フィルターを変更するか、視覚化内の要素をクリックすることでさらにフィルター処理できます。

たとえば、ヒストグラム内の特定の色セグメントをクリックすると、Kibanaにより、セグメントが表す重要な用語でフィルタリングできます。 以下は、フィルターをダッシュ​​ボードに適用するスクリーンショットの例です。

image:https://assets.digitalocean.com/articles/elk/kibana/filter-dashboard.png [ダッシュボードのフィルタリング]

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

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

Kibana設定

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

フィールドデータの再読み込み

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

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

image:https://assets.digitalocean.com/articles/elk/kibana/reload-field-list.png [フィールドリストの再読み込み]

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

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

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

そこに到達するには、[設定]メニュー項目をクリックしてから、[オブジェクト]サブメニューをクリックします。

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

image:https://assets.digitalocean.com/articles/elk/kibana/settings-objects.png [保存されたオブジェクトの編集]

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

結論

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

このシリーズの次のチュートリアルhttps://www.digitalocean.com/community/tutorials/how-to-map-user-location-with-geoip-and-elk-elasticsearch-logstash-and-を必ずチェックしてください。 kibana [GeoIPとELKでユーザーの場所をマップする方法]

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