DUICUO

まだログを見るのにコマンドを使っていますか?今すぐKibanaをお試しください!1つのグラフは、何百万行ものログよりも価値があります。

Kibana は、Elasticsearch と連携するように設計されたオープンソースの分析および視覚化プラットフォームです。

Kibana を使用して、Elasticsearch インデックスに保存されているデータを検索、表示、操作します。

高度なデータ分析を簡単に実行し、さまざまなグラフ、表、マップでデータを視覚化できます。

Kibanaを使えば、膨大なデータを簡単に理解できます。シンプルなブラウザベースのインターフェースで、Elasticsearchクエリの変化をリアルタイムに表示する動的なダッシュボードを素早く作成・共有できます。

Kibanaをインストールする

Kibanaの設定

https://www.elastic.co/guide/en/kibana/current/settings.html

Kibanaにアクセスする

Kibanaは5601経由でアクセスできるWebアプリケーションです。例: localhost:5601 または http://YOURDOMAIN.com:5601

Kibanaにアクセスすると、Discoverページがデフォルトで選択されたインデックスモードの状態で読み込まれます。時間フィルターは直近15分に設定され、検索クエリはmatch-all(*)に設定されています。

Kibanaのステータスを確認する

​​http://localhost:5601/status ​​

あるいは、http://192.168.101.5:5601/api/status は JSON 形式でステータス情報を返します。

Elasticsearch を Kibana に接続する

Kibanaを使い始める前に、どのElasticsearchインデックスを探索したいかをKibanaに伝える必要があります。Kibanaに初めてアクセスすると、1つ以上のインデックス名に一致するインデックスパターンを定義するように求められます。

(注: デフォルトでは、Kibana 接続は localhost 上の Elasticsearch インスタンスに対して許可されます。別の Elasticsearch インスタンスに接続するには、kabana.yml で Elasticsearch URL を変更し、Kibana を再起動します。)

Kibana でアクセスする Elasticsearch インデックスを構成するには:

  • 1. Kibana UIにアクセスします。例:localhost:56011 または http://YOURDOMAIN.com:5601
  • 2. Elasticsearch インデックスに一致するインデックスパターンを指定します。インデックスパターンを指定すると、一致するインデックスが表示されます。(注: * は 0 文字以上の文字に一致します。インデックスを指定すると、デフォルトでインデックス名と一致します。)
  • 3. 「次のステップ」をクリックし、時間ベースの比較に使用するタイムスタンプフィールドを含むインデックスを選択します。インデックスに時間ベースのデータが含まれていない場合は、「時間フィルターを使用しない」オプションを選択してください。
  • 4. 「インデックスパターンを作成」ボタンをクリックして、インデックスパターンを追加します。最初のインデックスパターンが自動的にデフォルトとして設定されます。複数のインデックスパターンがある場合は、どれをデフォルトとして設定するかを選択できます。(ヒント:管理 > インデックスパターン)

Kibana が Elasticsearch データに接続されました。Kibana には、このインデックスに設定されたフィールドに一致するフィールドの読み取り専用リストが表示されます。

発見する

「Discover」ページからインタラクティブにデータを探索できます。選択したインデックスに一致する各インデックス内の各ドキュメントに、デフォルトでアクセスできます。クエリの送信、検索構造のフィルタリング、ドキュメントデータの表示が可能です。また、クエリに一致するドキュメントの数やフィールド値の統計情報も確認できます。選択したインデックスパターンに時間フィールドが設定されている場合は、ページ上部にヒストグラムでドキュメントの時系列分布が表示されます。

時間フィルターを設定する

検索データ

検索ボックスにクエリ条件を入力すると、現在のインデックスパターンに一致するインデックスを検索できます。クエリを実行する際は、Kibanaの標準クエリ言語(Luceneのクエリ構文に基づく)またはElasticsearchクエリ言語DSL(完全にJSONベース)を使用できます。Kibanaのクエリ言語には、オートコンプリートや簡素化されたクエリ構文などの実験的な機能があり、クエリバーの「オプション」メニューから選択できます。

クエリを送信すると、ヒストグラム、ドキュメントテーブル、フィールドリストが更新され、検索結果が反映されます。ヒット数(一致したドキュメント)の合計はツールバーに表示されます。ドキュメントテーブルには上位500件のヒットが表示されます。デフォルトでは、最新のドキュメントが先頭に表示されるように、時系列の逆順に並べ替えられます。「時間」列をクリックすると、並べ替え順序を逆にすることができます。

Luceneクエリ構文

Kibanaのクエリ言語はLuceneのクエリ構文に基づいています。役立つヒントをいくつかご紹介します。

  • テキスト検索を実行するには、テキスト文字列を入力するだけです。例えば、Webサーバーのログを検索したい場合は、「safari」というキーワードを入力すると、「safari」に関連するすべてのフィールドを検索できます。
  • 特定のフィールドの特定の値を検索するには、フィールド名をプレフィックスとして使用できます。例えば、「status:200」と入力すると、「status」フィールドの値が200であるすべてのドキュメントが検索されます。
  • 値の範囲を検索するには、括弧で囲んだ範囲構文([START_VALUE TO END_VALUE])を使用します。例えば、ステータスコードが4xxのドキュメントを検索するには、「status:[400 TO 499]」と入力します。
  • 複雑なクエリ条件を指定するには、ブール演算子AND、OR、NOTを使用できます。例えば、ステータスコードが4xxで、拡張子フィールドがphpまたはhtmlのドキュメントを検索するには、「status:[400 TO 499] AND (extension:php OR extension:html)」と入力します。

Kibana クエリ構文の強化

新しい、よりシンプルな構文

Kibanaの古いLuceneクエリ構文に慣れている方なら、この新しい構文もきっと馴染みがあるはずです。基本的な原則は変わりませんが、クエリ言語をより使いやすくするためにいくつか改良を加えただけです。

response:200 は、レスポンス フィールドの値が 200 であるドキュメントと一致します。

引用符で囲まれた文字列はフレーズ検索と呼ばれます。例えば、「message:"Quick brown fox"」と入力すると、「message」フィールド内の「quick brown fox」というフレーズが検索されます。引用符がない場合、これらの単語の順序に関係なく、これらの単語を含むすべての文書が一致します。つまり、「Quick brown fox」には一致しますが、「quick fox brown」には一致しません。(ナレーション:引用符で囲まれた文字列は文字列全体として扱われます。)

クエリパーサーは、スペースを分割に使用しなくなりました。複数の検索語句を指定する場合は、明示的なブール演算子で区切る必要があります。ブール演算子は大文字と小文字を区別しませんのでご注意ください。

Luceneでは、「response:200 extension:php」は「response:200 and extension:php」と同等です。これは、「response」フィールドの値が200に一致し、「extension」フィールドの値がphpに一致するドキュメントに一致します。

中間部分を「or」に置き換えると、「response:200 or extension:php」は、「response」フィールドが「200」と一致するか、「extension」フィールドが「php」と一致するドキュメントと一致します。

デフォルトでは、AND は OR よりも優先されます。

`response:200 and extension:php or extension:css` は、レスポンスが 200 で拡張子が php の場合、または拡張子が css でレスポンスが any の場合に一致します。

括弧を使用するとこの優先順位を変更できます。

`response:200 and (extension:php or extension:css)` は、レスポンスが 200 で拡張子が `php` または `css` であるドキュメントに一致します。

もう一つの短縮形があります:

`response:(200 or 404)` は、`response` フィールドが 200 または 404 であるドキュメントと一致します。複数の文字値を指定することもできます (例: `tags:(success and info and security)`)。

使用しないこともできます

`not response:200` は、レスポンスが 200 ではないドキュメントと一致します。

`response:200 and not (extension:php or extension:css)` は、レスポンスが 200 で拡張子が `php` でも `css` でもないドキュメントに一致します。

範囲取得は Lucene とは少し異なります。

byte:>1000 の代わりに、byte > 1000 を使用します。

>=、<、<= はすべて有効な演算子です。

response:* は、レスポンス フィールドを含むすべてのドキュメントに一致します。

ワイルドカード クエリも可能です。`machine.os:win*` は、`machine.os` フィールドが "win" で始まるドキュメントと一致します。つまり、"windows 7" や "windows 10" などの値が一致することになります。

ワイルドカードを使うと、複数のフィールドを一度に検索することもできます。例えば、machine.osとmachine.os.keywordという2つのフィールドがあり、両方のフィールドで「windows 10」を検索したい場合、「machine.os*:windows 10」と記述します。

検索結果を更新

フィールドでフィルタリング

上記はリストに表示されるフィールドを制御します。別の方法としては、ドキュメントデータを表示しているときに小さな本の形のアイコンをクリックする方法があります。

削除も可能です。

たとえば、フィルタリング用の DSL クエリ ステートメントを編集することもできます...

ドキュメントデータを表示

ドキュメントのコンテキストを表示

フィールドデータの統計情報を表示する


視覚化する

Visualizeを使用すると、Elasticsearchインデックス内のデータの視覚化を作成できます。その後、これらの視覚化を表示するダッシュボードを構築できます。

Kibanaの可視化はElasticsearchクエリに基づいています。Elasticsearchの一連の集計を使用してデータを抽出・処理することで、理解したいトレンド、ピーク、谷の画像をオンラインで作成できます。

視覚化を作成する

ビジュアルビューを作成するには:

  • ステップ 1: 左側のナビゲーション バーにある [視覚化] ボタンをクリックします。
  • ステップ 2: 「新しい視覚化を作成」ボタンまたはプラス (+) ボタンをクリックします。
  • ステップ3: 視覚化の種類を選択する
  • ステップ 4: 視覚化されたデータを取得するための検索クエリを指定します。
  • ステップ5:ビジュアライゼーションビルダーでY軸の集計演算を選択します。例えば、合計、平均、個数などです。
  • ステップ6: X軸を設定する

例えば:

ダッシュボード

Kibanaダッシュボードには、様々な視覚化機能と検索機能が表示されます。ダッシュボードのコンテンツは、自由に配置、調整、編集でき、保存して共有できます。

ダッシュボードを構築する

  • ステップ 1: ナビゲーション バーの「ダッシュボード」をクリックします。
  • ステップ 2: 「新しいダッシュボードを作成」または「+」ボタンをクリックします。
  • ステップ3: 「追加」ボタンをクリックします
  • ステップ 4: 視覚化を追加するには、視覚化のリストから 1 つを選択するか、「新しい視覚化を追加」ボタンをクリックして新しい視覚化を作成します。
  • ステップ 5: 保存した検索を追加するには、「保存した検索」タブをクリックし、リストから 1 つ選択します。
  • ステップ 6: ダッシュボード コンテンツの追加と調整が完了したら、上部のメニュー バーに移動し、「保存」をクリックして、名前を入力します。

Kibanaダッシュボードはデフォルトでライトテーマを使用しています。ダークテーマを使用するには、「オプション」をクリックし、「ダークテーマを使用する」を選択してください。ダークテーマをデフォルトに設定するには、「管理」>「管理」>「詳細」に移動し、「dashboard:defaultDarkTheme」を「オン」に設定してください。

監視

Elasticsearchコンソールログ

 [2018-08-15T14:48:26,874][INFO][oecmMetaDataCreateIndexService] [Px524Ts] [.monitoring-kibana-6-2018.08.15] インデックスを作成中、原因 [auto(bulk api)]、テンプレート [.monitoring-kibana]、シャード [1]/[0]、マッピング [doc]

Kibanaコンソールログ

 log [03:26:53.605] [info][license][xpack] Elasticsearchから[monitoring]クラスターライセンス情報をインポートしました: mode: basic | status: active