web-dev-qa-db-ja.com

OR Kibana4のダッシュボードのフィルター

限られたリクエスト値のセットに関する情報を表示するダッシュボードを作成したい:

request:("/path1" OR "/path2" OR "/path3")

私がこれまでに試したこと:

  • 円グラフの一部をクリックしてダッシュボードにフィルターを追加できますが、これらのフィルターはすべてORではなくANDフィルターとして適用されます。この作業方法では、考えられるすべてのリクエスト値の実際のデータも必要です。これは、テスト環境では常に当てはまるとは限りません。
  • discoverで保存済み検索を作成しましたが、これをダッシュ​​ボードに適用してダッシュボード定義の一部を取得する方法がわかりません。

ダッシュボードエディターを使用してこれを行う方法ですか、それとも[設定]-> [オブジェクト]-> [ダッシュボード]からjsonスクリプトを実行する必要がありますか?もしそうなら、この(エスケープされた)構文への良い参照を私に指摘できますか?

Kibana 3では、タイプ「どちらか」のフィルターを定義できます。この機能はKibana4に存在しますか?

Kibana4.0.2を使用しています

11
Conffusion

これがあなたの実際の質問に対する答えであるかどうかはわかりません。誰かが恩恵を受ける可能性があるので、とにかく書きます。Kibanaフィルター構文の例はグーグルでとらえどころのないものであることがわかりました。

[検出]タブでブールクエリの代わりにブールフィルターを定義して、検索フィールドを整理し、限られた値のセットでさらにフィルタリングを容易にしようとしています。

私は見つけました ドキュメントへのこのリンク ここでAND、OR、NOTフィルター構文が説明されています。少し実験した後、これは私にとってうまくいったものでした、例:

ログエントリを送信するサーバーの名前を含むHostという名前のフィールドがあります。かなりの数のサーバーがあり、それぞれがいくつかの冗長グループの1つに属しています。サーバー「SERVER06 OR SERVER07 OR SERVER08」によって生成されたログエントリのみをフィルタリングするには別個の冗長グループに属するB-Servers次のようにORフィルターを作成できます:

{
  "bool": {
    "should": [
      {
        "query": {
          "match": {
            "Host": {
              "query": "SERVER06",
              "type": "phrase"
            }
          }
        }
      },
      {
        "query": {
          "match": {
            "Host": {
              "query": "SERVER07",
              "type": "phrase"
            }
          }
        }
      },
      {
        "query": {
          "match": {
            "Host": {
              "query": "SERVER08",
              "type": "phrase"
            }
          }
        }
      }
    ]
  }
}

B-Serversという検索として保存します。これで、フィルターされたリストが表示されます。ここで、さらに制限の厳しいフィルターを使用してサーバーを選択できます。すべてのサーバーがあり、quick countが上位5つのエントリのみをリストする前は、1つを選択してから、ターゲットがリストにない場合は手動でフィルターを編集する必要がありました。

これは、他の文字列型フィールドにも役立つはずです。ドキュメントには、原則のデモンストレーションだけでなく、boolステートメントの配置のコンテキストを設定するために、さらにいくつかの例が含まれている必要があります。

このリンク は、フィルターとしてではなく、検索フィールドからブール値を実行する方法を示すのにも役立ちました。

[EDIT]以前の構文を機能させることができなかったため、Kibana5.2のアップデート。以下は5.2でトリックを行いました、私はそれを理解するために このリンク を使用しました:

{
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "Host": "SERVER06"
          }
        },
        {
          "match": {
            "Host": "SERVER07"
          }
        },
        {
          "match": {
            "Host": "SERVER08"
          }
        }
      ],
      "minimum_should_match": 1
    }
  }
}
14
ErikE

Kibana 4は完全に書き直されたものであり、Kibana3のすべての機能がまだ実装されているわけではないようです。 Kibana githubで「拡張」チケットを見つけました: https://github.com/elastic/kibana/issues/369

これで今のところ私の質問は終わりです。

1
Conffusion

ダッシュボードにORフィルターを追加できます。ダッシュボードは保存されたビジュアライゼーションから作成されるため、ビジュアライゼーションには、そのようなデータを反映するORを含むフィルターを追加できます。 。

あなたの質問の私の理解に従って、私は私の答えを投稿しています(私を訂正してください):-

  1. [視覚化]タブの下の円グラフをクリックします(新しい視覚化を作成します)。
  2. 検索ソースの選択-新しい検索から
  3. [スライスの分割]に移動し、フィルターとして集計を選択します。 Query1の下に、request :( "/ path1" OR "/ path2")などの適用するフィルターを入力します。[フィルターの追加]をクリックして、Query2を次のように追加します。request:( "/ path2" = OR "/ path3")
    1. [適用]をクリックして、フィルターごとに変更された円グラフを表示します。
    2. ツールバー(検索バーの横にある2番目のオプション)からビジュアライゼーションを選択して保存します。
    3. ダッシュボードに移動し、[ダッシュボードの追加]をクリックして、円グラフを反映する保存済みのビジュアライゼーションを選択します。

それがあなたの質問に答えることを願っています:)

0
Yuvraj Gupta