登入阈值后,电子邮件提醒,logstash?

Sid*_*kha 5 elasticsearch statsd logstash kibana riemann

我正在使用logstash,elasticsearchkibana分析我的日志.当特定字符串通过emaillogstash中的输出进入日志时,我通过电子邮件发出警报:

email {
        match => [ "Session Detected", "logline,*Session closed*" ]
...........................
}
Run Code Online (Sandbox Code Playgroud)

这很好用.

现在,我想提醒一个字段的计数(超过阈值时):

例如,如果user是字段,我想在独特用户数超过5 时发出警报.

可以通过emaillogstash中的输出完成吗?
请帮忙.

编辑: 正如@Alcanzar告诉我做的那样:

配置文件:

    if [server] == "Server2" and [logtype] == "ABClog" {

        grok{
        match => ["message", "%{TIMESTAMP_ISO8601:timestamp} %{HOSTNAME:server-name} abc\[%{INT:id}\]:
 \(%{USERNAME:user}\) CMD \(%{GREEDYDATA:command}\)"]       
        }   

        metrics {
                meter =>  ["%{user}"]
                add_tag =>  "metric"
            }   

        }
Run Code Online (Sandbox Code Playgroud)

所以根据上面的说法,为了server2abclog我有一个grok模式来解析我的文件和在usergrok解析的字段上我希望应用度量.

我在上面的配置文件中做了这个,但是当我检查logstash控制台时,我得到了奇怪的行为-vv.

所以,如果有文件中的9个日志行,它解析9第一,在那之后它开始度量的一部分,但那里的message字段不是的logline在日志文件,但它是我的电脑的用户名,因此它给_grokparsefailure.像这样的东西:

 output received {
   :event=>{"@version"=>"1", "@timestamp"=>"2014-06-17T10:21:06.980Z", "message"=>"my-pc-name", 
    "root.count"=>2, "root.rate_1m"=>0.0, "root.rate_5m"=>0.0, "root.rate_15m"=>0.0, 
    "abc.count"=>2, "abc.rate_1m"=>0.0, "abc.rate_5m"=>0.0, "abc.rate_15m"=>0.0, "tags"=>["metric", 
    "_grokparsefailure"]}, :level=>:debug, :file=>"(eval)", :line=>"137"
    }
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏.

Alc*_*zar 7

我相信你需要的是http://logstash.net/docs/1.4.1/filters/metrics.

您希望使用metrics标记来计算事件的比率,然后在电子邮件输出的语句中使用thing.rate_1m或.thing.rate_5mif

例如:

filter {
  if [message] =~ /whatever_message_you_want/ {
    metrics {
        meter =>  "user"
        add_tag =>  "metric"
    }
  }
}

output {
  if "metric" in [tags] and [user.rate_1m] > 1 {
   email { ... }
  }
}
Run Code Online (Sandbox Code Playgroud)