2016-05-06 5 views
0

特定のフレーズを検索するためのクエリを書く際に助けが必要です。一致すると、それを投げて警告する必要があります。私は、次を使用していますが、私はそれがフレーズのために一致するとアラートを送信していないと思う:logstashで文字列をエラスタレットで検索する

es_host: elasticsearch.internal 
es_port: 9200 
name: Example rule 
type: frequency 
index: logstash-* 
num_events: 50 
timeframe: 
    hours: 4 
query: 
    query_string: 
     "message" : "this is a test string" # (Required) 
# The alert is use when a match is found 
alert: - "slack" - "debug" 
slack: 
    slack_webhook_url: 'hooks.slack.com/services/abcd'. 

フレーズがログファイルには全く存在していないが、またそれは、アラートを送信しています。

この問題を解決するにはどうすればよいですか?

+0

これはフレーズクエリではありません。私はElastalert以外のクエリをテストし、その動作を確認することをお勧めします。その後、適切にテストされたクエリを使用してElastalert設定に戻ります。 –

+0

@AndreiStefan hi stefan、私は非常に新しいelastalertの新しい、私は "これはテスト文字列"のように、logstashの文字列の完全一致を検索しようとしています。これが警告をスローする必要がある場合は、問題を解決するのに役立つことができます、おかげで、私は正しいプロセスに従っていない場合は、私はこれを解決ガイドしてください。 –

+0

あなたの弾性検索属性とメッセージフォーマットの詳細を共有できますか? –

答えて

0

クエリを書く正しい方法は次のとおりです。これを試してみてください。

filter: 
- query: 
    query_string: 
     query: "message: this is a test string" 

これは、メッセージフィールドに「これはテスト文字列です」と表示されます。それがあなたが探している正確な文字列でない場合、いくつかの正規表現やワイルドカードで試してみてください。

+0

ありがとうございました.... –

+0

こんにちはManik、私はいくつかの助けが必要です、私は文字列を検索するクエリを作成しようとしていましたが、それが正確に一致しない場合、私は警戒を得ていますies_host:elasticsearch.internal es_port:9200 名:ENV04エラー警告 タイプ:周波数 インデックス:logstash- * num_events:1 期限: 時間:2000 #analyze_wildcard:真 フィルタ: - クエリ: QUERY_STRING: 問い合わせ:「メッセージ:エラー\\:内部サーバーエラーがアプリにキャッチしました " minimum_should_match:" 98% " –

+0

@ramakrishna質問として投稿しますか? ? –