【发布时间】:2015-06-03 09:24:53
【问题描述】:
我们可以将电子邮件通知发送到特定的电子邮件地址,但我想根据日志中的某些模式将电子邮件发送到不同的邮寄地址。
例如说我有三个用户的电子邮件地址
- userOne@something.com 接收邮件 id 日志包含 [userOneModule]
- userTwo@something.com 接收邮件 id 日志包含 [userTwoModule]
- userThree@something.com 接收邮件 id 日志包含 [userThreeModule
使用的 Logstash 版本是 1.3.3 如果可以在 logstash 或任何解决方法来实现类似的东西,任何帮助。
这是我的配置,虽然“安全”和“门户”都匹配,但电子邮件只发送给一个。
当我只保留一种日志说安全日志或门户日志时,它可以工作,但是当我保留两种日志时,它只会向其中一个发送电子邮件。
output {
if [module] == "Security"{
email {
to => "userOne@somemail.com"
from => "dummy2161@somemail.com"
match =>["%{message}","severity,ERROR"]
subject => "Error Occured"
body => "%{message}"
via => "smtp"
options => {
starttls => "true"
smtpIporHost => "smtp.gmail.com"
port => "587"
userName => "dummy2161@somemail.com"
password => "*******"
authenticationType => "plain"
}
}
}
if [module] == "Portal"{
email {
to => "userTwo@somemail.com"
from => "dummy2161@gmail.com"
match =>["%{message}","severity,ERROR"]
subject => "Error Occured"
body => "%{message}"
via => "smtp"
options => {
starttls => "true"
smtpIporHost => "smtp.gmail.com"
port => "587"
userName => "dummy2161@somemail
password => "*****"
authenticationType => "plain"
}
}
}
}
谢谢
【问题讨论】:
-
尝试使用正则表达式
-
我的日志包含 [module-name] 但我的问题是如何将电子邮件发送给不同的用户。我们可以有一个 if 条件说 if (moduleName='userOne') then send email address is userOne@something.com in logstashConfigFile
-
使用 grok 过滤器匹配模块名称,确保日志文件中的模块名称
标签: logstash logstash-grok logstash-configuration