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 => "[email protected]"
      subject => "Ignore (test run)"
      body => "log-message: %{message}"
      to => "[email protected]"
      codec => "plain"
      contenttype => "text/plain; charset=UTF-8"
      address => "smtp-mail.outlook.com"
      port => "587"
      authentication => "plain"
      via => "sendmail"
      username => "[email protected]"
      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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章