Logstash:Email output plugin

在我们使用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】https://www.elastic.co/guide/en/logstash/current/plugins-outputs-email.html

展开阅读全文

没有更多推荐了,返回首页

应支付0元
点击重新获取
扫码支付

支付成功即可阅读