任何人都可以解释如何在logstash中通过电子邮件将java日志异常作为附件发送?附件中提供的文件位置是什么?请找到配置文件,其中有一个过滤器来获取异常。 输入{ 档案{ type => "系统日志" path => "" add_field => ["文件"," a.log"] }
}
filter {
if ("INFO" in [message]){
mutate {
add_field => [ "level", "INFO" ]
}
}
else if ("error" in [message]){
mutate {
add_field => [ "level", "ERROR" ]
}
}
else if ("Debug" in [message]){
mutate {
add_field => [ "level", "DEBUG" ]
}
}
multiline{
pattern => "^\s"
what => "previous"
add_tag => ["exception"]
}
if ("multiline" in [tags]) {
mutate {
add_field => [ "level", "exception" ]
}
}
}
output {
if [message] =~ /exception/ {
email {
type => "syslog"
body => "Triggered in: %{@message}"
attachments =>
from => "abc@xyz.com"
subject => "This is a LogStash alert"
to => "lmn@por.co.in"
}
}
}
答案 0 :(得分:0)
我还没有尝试过,但似乎您可以使用'file'输出来创建文件,然后将其提供给'email'输出的'attachment'参数。
我没有看到清理已创建文件的方法,但是一个简单的cron作业可以做到(或者你可以修改电子邮件输出以删除附件)。
编辑:
使用文件{}输出时,指定要使用的文件名:
output {
file {
path => "foo.txt"
}
}
然后,您可以将此文件名指定为电子邮件输出中的附件:
output {
email {
attachments => [ "foo.txt" ]
}
}
您也可以在文件名中使用变量:“foo - %{+ YYYY-MM-dd} .txt”等。
请注意,电子邮件节是伪代码,因为文档中没有附件语法的示例。