logstash:提交的电子邮件附件中的文件位置应该是什么?

时间:2014-12-05 06:47:06

标签: logstash

任何人都可以解释如何在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"
                    }
        }


 }

1 个答案:

答案 0 :(得分:0)

我还没有尝试过,但似乎您可以使用'file'输出来创建文件,然后将其提供给'email'输出的'attachment'参数。

我没有看到清理已创建文件的方法,但是一个简单的cron作业可以做到(或者你可以修改电子邮件输出以删除附件)。

编辑:

使用文件{}输出时,指定要使用的文件名:

output {
  file {
    path => "foo.txt"
  }
}

然后,您可以将此文件名指定为电子邮件输出中的附件:

output {
  email {
    attachments => [ "foo.txt" ]
  }
}

您也可以在文件名中使用变量:“foo - %{+ YYYY-MM-dd} .txt”等。

请注意,电子邮件节是伪代码,因为文档中没有附件语法的示例。