3

Logstash を使用しています (UI として Kibana を使用)。ログからいくつかのフィールドを抽出して、UI の LHS でフィルターできるようにしたいと考えています。

ログのサンプル行は次のようになります。

2013-07-04 00:27:16.341 -0700 [Comp40_db40_3720_18_25] client_login=C-316fff97-5a19-44f1-9d87-003ae0e36ac9 ip_address=192.168.4.1

私のlogstash confファイルに、これを入れました:

filter {
    grok {
        type => "mylog"
        pattern => "(?<CLIENT_NAME>Comp\d+_db\d+_\d+_\d+_\d+)"
    }
}

理想的には、Comp40_db40_3720_18_25 (桁数は異なる場合がありますが、_ で区切られた各セクションで常に少なくとも 1 桁になります) と client_login (client_logout の場合もあります) を抽出したいと考えています。次に、CLIENT_NAME=Comp40... CLIENT_NAME=Comp55 などを検索できます。

これを Kibana で使用できるフィールドにするために、構成に何か不足していますか?

ありがとう!

4

1 に答える 1

4

パターンを正しく一致させるのに問題がある場合は、Grok Debuggerを使用すると優れた解決策になります。

特定の問題については、検索データを別の変数に分離し、追加のさまざまな数字を別の (ゴミ箱) 変数に保存することができます。

例えば:

(?<SEARCH_FIELD>Comp\d+)%{GREEDYDATA:trash_variable}]

(上記のパターンではGrok Debuggerを使用してください)

于 2013-07-24T10:23:39.533 に答える