logstash之OutPut插件

output插件是通過了input,而後過濾結構化數據以後,接下來咱們須要藉助output傳到咱們想傳到的地方.output至關於一個輸出管道。redis

2.3.1: 將採集數據標準輸出到控制檯

配置示例:api

output {
  stdout {
      codec => rubydebug
  }
}

Codec 來自 Coder/decoderruby

兩個單詞的首字母縮寫,Logstash 不僅是一個input | filter | output 的數據流,服務器

而是一個input | decode | filter | encode | output 的數據流,codec 就是用來decode、encode 事件的。網絡

簡單說,就是在logstash讀入的時候,經過codec編碼解析日誌爲相應格式,從logstash輸出的時候,經過codec解碼成相應格式。app

演示:運維

input {stdin{}}
output {
  stdout {
      codec => rubydebug
  }
}

啓動:bin/logstash -f /usr/local/elk/logstash-5.5.2/conf/template/stdout.confelasticsearch

展現:oop

2.3.2:將採集數據保存到file文件中

經過日誌收集系統將分散在數百臺服務器上的數據集中存儲在某中心服務器上,這是運維最原始的需求優化

需求:將數據採集到logstash的日誌文件中,區分業務和採集日期(哪天採集的)

input {stdin{}}
output {
  file {
      path => "/home/angel/logstash-5.5.2/logs/stdout/mobile-collection/%{+YYYY-MM-dd}-%{host}.txt"
      codec => line {
          format => "%{message}"
      }
      gzip => true
  }
}

啓動:

bin/logstash -f /home/angel/servers/logstash-5.5.2/logstash_conf/stdout_file.conf

2.3.3:將採集數據保存到elasticsearch

Logstash能夠直接將採集到的信息下沉到elasticsearch中

input {stdin{}}
output {
  elasticsearch {
      hosts => ["hadoop01:9200"]
      index => "logstash-%{+YYYY.MM.dd}"    #這個index是保存到elasticsearch上的索引名稱,如何命名特別重要,由於咱們極可能後續根據某些需求作查詢,因此最好帶時間,由於咱們在中間加上type,就表明不一樣的業務,這樣咱們在查詢當天數據的時候,就能夠根據類型+時間作範圍查詢
      flush_size => 20000    #表示logstash的包數量達到20000個才批量提交到es.默認是500
      idle_flush_time => 10   #多長時間發送一次數據,flush_size和idle_flush_time以定時定量的方式發送,按照批次發送,能夠減小logstash的網絡IO請求
      user => elastic
      password => changeme
  }
}

啓動:bin/logstash -f /usr/local/elk/logstash-5.5.2/conf/template/stdout_es.conf

向控制檯中輸入6條數據:

192.168.77.1 - - [10/Apr/2018:00:44:11 +0800] "POST /api/metrics/vis/data HTTP/1.1" 200 505 "http://hadoop01/app/kibana" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"
192.168.77.2 - - [10/Apr/2018:00:45:11 +0800] "POST /api/metrics/vis/data HTTP/1.1" 200 460 "http://hadoop01/app/kibana" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"
192.168.77.3 - - [10/Apr/2018:00:46:11 +0800] "POST /api/metrics/vis/data HTTP/1.1" 200 510 "http://hadoop01/app/kibana" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"
192.168.77.4 - - [10/Apr/2018:00:47:11 +0800] "POST /api/metrics/vis/data HTTP/1.1" 200 112 "http://hadoop01/app/kibana" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"
192.168.77.5 - - [10/Apr/2018:00:48:11 +0800] "POST /api/metrics/vis/data HTTP/1.1" 200 455 "http://hadoop01/app/kibana" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"
192.168.77.6 - - [10/Apr/2018:00:49:11 +0800] "POST /api/metrics/vis/data HTTP/1.1" 200 653 "http://hadoop01/app/kibana" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"

2.3.4:將採集的數據保存到redis

配置:

input { stdin {} }
output {
      redis {
              host => "hadoop01"
              data_type => "list"  
              db => 2
              port => "6379"
              key => "logstash-chan-%{+yyyy.MM.dd}"
      }
}

數據落地到redis的優化:

 批處理類(僅用於data_type爲list)
o batch:設爲true,經過發送一條rpush命令,存儲一批的數據
o 默認爲false:1條rpush命令,存儲1條數據
o 設爲true以後,1條rpush會發送batch_events條數據
o batch_events:一次rpush多少條
o 默認50條
o batch_timeout:一次rpush最多消耗多少s
o 默認5s
擁塞保護(僅用於data_type爲list)
o congestion_interval:每隔多長時間進行一次擁塞檢查
o 默認1s
o 設爲0,表示對每rpush一個,都進行檢測
o congestion_threshold:list中最多能夠存在多少個item數據
o 默認是0:表示禁用擁塞檢測
o 當list中的數據量達到congestion_threshold,會阻塞直到有其餘消費者消費list中的數據
o 做用:防止OOM

啓動redis 將數據打入logstash控制檯:

192.168.77.1 - - [10/Apr/2018:00:44:11 +0800] "POST /api/metrics/vis/data HTTP/1.1" 200 505 "http://hadoop01/app/kibana" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"
192.168.77.2 - - [10/Apr/2018:00:45:11 +0800] "POST /api/metrics/vis/data HTTP/1.1" 200 460 "http://hadoop01/app/kibana" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"
192.168.77.3 - - [10/Apr/2018:00:46:11 +0800] "POST /api/metrics/vis/data HTTP/1.1" 200 510 "http://hadoop01/app/kibana" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"
192.168.77.4 - - [10/Apr/2018:00:47:11 +0800] "POST /api/metrics/vis/data HTTP/1.1" 200 112 "http://hadoop01/app/kibana" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"
192.168.77.5 - - [10/Apr/2018:00:48:11 +0800] "POST /api/metrics/vis/data HTTP/1.1" 200 455 "http://hadoop01/app/kibana" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"
192.168.77.6 - - [10/Apr/2018:00:49:11 +0800] "POST /api/metrics/vis/data HTTP/1.1" 200 653 "http://hadoop01/app/kibana" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"

去redis上作認證,查看是否已經存儲redis中:

相關文章
相關標籤/搜索