0

logstash のフィルターを作成するためのヘルプが必要です。私のlogstashは、syslogを読み取るように構成されています。

ログメッセージは次のとおりです。

Mar 14 15:11:11 localhost 192.168.235.136 {'status': 'True', 'endpoint': '/search/basic/', 'parameters': <QueryDict: {u'fileName': [u'Adware']}>, 'company': u'Global first', 'matched threat scape': [u'Enterprise IT Management and Investment'], 'request id': 11, 'user id': 2L, 'user': u' ', 'matched report id': [u'Intel-732102']}

メッセージでlogstashに渡すjsonキーに基づいて、kibanaにフィルターを設定したかったのです。

ログからパラメーターを取得するためのフィルターを作成できません。フィルターを生成するためにhttp://grokdebug.herokuapp.com/も試しました。使い方がよくわからないというパターンでした。

{%{QS:'status'}: %{QS}, %{QS}: %{QS}, %{QS}: <QueryDict: {u%{QS}: %{SYSLOG5424SD}}>, %{QS}: u%{QS}, %{QS}: %{SYSLOG5424SD}, %{QS}: 11, %{QS}: 2L, %{QS}: u' ', 'matched report id': %{SYSLOG5424SD}}
4

1 に答える 1

1

ログ入力の場合:

3 月 14 日 15:11:11 localhost 192.168.235.136 {'status': 'True', 'endpoint': '/search/basic/'}

グロックパターンは

%{CISCOTIMESTAMP:JsonTimestamp} localhost %{IP:JsonIP} {'status': '%{WORD:JsonStatus}', 'endpoint': '%{UNIXPATH:JsonPath}'}

残りのフィールドについても、同様のパターン アプローチに従ってください。リファレンスは次の場所にあります。

https://github.com/elasticsearch/logstash/blob/master/patterns/grok-patterns

grok パターンを適用するのが難しいと感じるフィールドと、次の詳細を投稿してください。

i) どのフィールドが変化し、何が定数であるか。

上記の例では、JsonTimestamp、JsonIP、JsonStatus、および JsonPath がインデックス化されます。

上記の例の完全な grok パターンを以下に示します。

%{CISCOTIMESTAMP} localhost %{IP} {%{QS}: %{QS}, %{QS}: %{QS}, %{QS}: <QueryDict: {u%{QS}: %{SYSLOG5424SD}}>, %{QS}: u%{QS}, %{QS}: %{SYSLOG5424SD:matched_threat_scape}, %{QS}: %{NUMBER:request_id}, %{QS}: %{NUMBER:user_id}L, %{QS}: %{WORD:user}%{QS}, %{QS}: %{SYSLOG5424SD:matched_report_id}

11 と 2L は引用符で囲まれておらず、数値を表しているため、数値を識別するために NUMBER を使用します。トークン、ユーザーは WORD トークンとして表されます

于 2014-03-18T09:15:19.943 に答える