Sid*_*kha 5 elasticsearch statsd logstash kibana riemann
我正在使用logstash,elasticsearch并kibana分析我的日志.当特定字符串通过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)
所以根据上面的说法,为了server2和abclog我有一个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)
任何帮助表示赞赏.
我相信你需要的是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)
| 归档时间: |
|
| 查看次数: |
9089 次 |
| 最近记录: |