2017-07-26 3 views
0

Logstashの新機能です。現在、私はzabbix項目にエラーログを送るlogstash.confファイルを持っています。 カスタムgrokフィルタを適用してERROR | Error | errorキーワードを検索し、それに基づいて出力をzabbixアイテムにリダイレクトしました。 しかし、単に対応するログを送信するのではなく、フィルタ結果がtrueと評価されるたびに増分カウンタを送信するようにします。 どうすれば実現できますか?Logstashの出力を使用してエラーログの数をzabbixに送信する方法は?

私が使用しているログファイルのスニペットです。

ruby filter plugin
input { 
     file { 
      path => "/root/sample.log" 
      type => "string" 
     } 
    } 
    # The filter part of this file is commented out to indicate that it is 
    # optional. 
    filter { 
      mutate { 
        add_field => { "[@metadata][error]" => "error" } 
        add_field => { "[@metadata][counter]" => "1" } 
        add_field => { "myhost" => "logstash" } 

        } 
    if "grokked" not in [tags] { 

    grok { 
     patterns_dir => ["/root/logstash-5.5.0/pattern"] 
     match => { "message" => "%{ERROR:log_level}" } 
     add_tag => ["ERROR", "grokked"] 
     } 
    } 
    } 
    output { 
      stdout { codec => rubydebug } 

      if "ERROR" in [tags]{ 
        zabbix 
        { 
         zabbix_server_host => "192.168.56.102" 
         zabbix_host => "myhost" 
         zabbix_key => "[@metadata][error]" 
         #zabbix_value => "[@metadata][counter]" 
        } 

答えて

0

ruby { 
    code => 'event.set("error_count", event.get("message").scan(/Error/i).length)' 
} 

あなたは時間error(大文字と小文字を区別しない)の数でERROR_COUNTというフィールドがあるでしょうその方法はmessageに登場しました。

関連する問題