【发布时间】:2015-07-07 13:20:56
【问题描述】:
我一直在玩 logstash,想知道如何正确配置电子邮件警报。
我正在寻找字符串“BVDCS_LAP”并将邮件发送到给定的地址。
我的配置是:
input {
udp {
port => 5000
type => syslog
}
}
filter {
if [type] == "syslog" {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
add_field => [ "received_at", "%{@timestamp}" ]
add_field => [ "received_from", "%{host}" ]
}
syslog_pri { }
date {
match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
}
}
output {
elasticsearch { host => localhost }
stdout { codec => rubydebug }
}
email {
from => "mymail@domain"
match => {
"BVDCS_LAP", "message,BVDCS_LAP",
"BVDCS_LAP", "message,BVDCS_LAP"
}
subject => "%{matchName}"
to => "mymail@domain"
via => "smtp"
body => "Here is the event line that occured: %{message}"
htmlbody => "<h2>%{matchName}</h2><br/><br/><h3>Full Event</h3><br/><br/><div align='center'>%{@message}</div>"
}
}
没有发送电子邮件,在我的 logstash.conf 中,我在第 27 行看到以下内容:
{:timestamp=>"2015-07-07T12:55:50.597000+0100", :message=>"错误:在第 27 行第 8 列(字节 649)之后的 #、输入、过滤器、输出应为以下之一"}
我也很想知道我最初的 grok 编码是否正确,以及我们是否可以弄清楚如何为系统日志消息设置标签并将其用作电子邮件输出?
谢谢
【问题讨论】:
-
电子邮件输出的
match参数应该是什么意思?根据文档,它甚至不是一个有效的参数。如果您想要有条件的电子邮件输出,您应该使用条件块。
标签: ruby json logstash logstash-grok elastic-stack