我的ELK设置如下:
HOST1:组件(生成日志)+ Logstash(将日志发送到redis)
HOST2: Redis + Elasticsearch + Logstash(根据grok解析数据并将其发送到相同设置的elasticsearch)
HOST3: Redis + Elasticsearch + Logstash(根据grok解析数据并将其发送到相同设置的elasticsearch)
HOST4: nginx + Kibana 4
现在,当我从logstash向redis发送一条错误日志行时,我在Kibana 4中获得了双重条目。如下所示:
另外,我没有从logstash收到任何电子邮件提醒,但它被配置为在严重性==" Erro" 时发送提醒。
这是logstash conf文件的一部分:
output {
elasticsearch { host => ["<ELK IP>"] port => "9200" protocol => "http" }
if [severity] =~ /Erro/
{
email {
from => "someone@somedomain.com"
subject => "Error Alert"
to => "someone@somedomain.com"
via => "smtp"
htmlbody => "<h2>Error Alert1</h2><br/><br/><div
align='center'>%{message}</div>"
options => [
"smtpIporHost", "smtp.office365.com",
"port", "587",
"domain", "smtp.office365.com",
"userName", "someone@somedomain.com",
"password", "somepasswd",
"authenticationType", "login",
"starttls", "true"
]
}
}
stdout { codec => rubydebug }
}
我正在使用以下自定义grok模式来解析日志行:
ABTIMESTAMP %{YEAR}%{MONTHNUM2}%{MONTHDAY} %{USERNAME}
ABLOGLEVEL (Note|Erro|Fatl|Warn|Urgt)
ABLOG %{ABTIMESTAMP:timestamp} %{HOST:hostname} %{WORD:servername} %{INT:pid} %{INT:lwp} %{INT:thread} %{ABLOGLEVEL:severity};%{USERNAME:event}\(%{NUMBER:msgcat}/%{NUMBER:msgnum}\)%{GREEDYDATA:greedydata}
这里有任何帮助,如何获取每个错误日志行的每个电子邮件警报?
提前致谢!
答案 0 :(得分:0)
解决了......实际上我在logstash / conf.d文件夹中有多个conf文件。我删除了所有不必要的文件,只保留了我的conf文件,现在它正在工作。 :)。感谢Val的帮助