Logstash:Email output plugin

117 篇文章 207 订阅

在我们使用 Logstash 时,有时需要在信息处理时,在收到输出时发送电子邮件, 或者检查到某个条件而发出一个邮件进行提示。详细的描述可以参阅Email output plugin。在目前的 Logstash 的安装中,已经包含这个插件,我们不需要做任何的安装。在今天的教程中,我们来运用一个例子来展示。

配置Logstash

在本例子中,我们来使用 hotmail 来展示。我们首先定义一个 Logstash 的配置文件如下:

logstash_email_output.conf

input { 
  stdin {} 
}

filter {
   if "critical" in [message] {
     mutate { add_tag => "critical" }
   }
   else if "error" in [message] {
     mutate { add_tag => "error" }
   }
 }


output {

  if "critical" in [tags] or "error" in [tags] {
    stdout { codec =>  "rubydebug" } 

    email {
      from => "liu_xiao_guo@hotmail.com"
      subject => "Ignore (test run)"
      body => "log-message: %{message}"
      to => "YourEmailAccount@yahoo.com"
      codec => "plain"
      contenttype => "text/plain; charset=UTF-8"
      address => "smtp-mail.outlook.com"
      port => "587"
      authentication => "plain"
      via => "sendmail"
      username => "YourMailAccount@hotmail.com"
      password => "YourPassword"
      use_tls => true
      debug => true
    }
  }
}

在上面我们使用 stdin 来进行输入。如果输入的信息含有 “critical” 和 “error” 中的一个,我们会在filter中加入 critical 或 error 标签(tags)。在输出的部分,我们检查 tags 中如果有 critical 或 error,那么我们向我们的邮件地址发送邮件。

我们启动 Logstash:

./bin/logstash -f ~/data/logstash_email_output.conf 

等 Logstash 完全启动后,我们在 console 中输入我们的信息:


就像上面显示的那样,当我们输入 “this” 时,没有任何的输出,但是当我们输入 “this is an error” 时,我们可以看到一个输出,并可以同时看到一个添加的 error 到 tags 里去了。根据我们的设计,我们可以看出来,它应该同时发送一个邮件到我们指定的邮箱。

上面显示当信息里含有 critical 字样时发送的邮件。

上面显示当信息里含有 error 字样时发送的邮件。

 参考:

【1】Email output plugin | Logstash Reference [8.2] | Elastic

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值