1. 程式人生 > 實用技巧 >logstash配置檔案

logstash配置檔案

僅羅列了一些常用基礎配置,更多配置請到官網檢視

https://www.elastic.co/guide/en/logstash/current

logstash.yml配置檔案

# ------------  Node identity ------------

#節點名稱,預設主機名
node.name: test


# ------------ Data path ------------------

#資料儲存路徑,預設LOGSTASH_HOME/data
path.data:


# ------------ Pipeline Settings --------------

#pipeline ID,預設main
pipeline.id: main #輸出通道的工作workers資料量,預設cpu核心數 pipeline.workers: # How many events to retrieve from inputs before sending to filters+workers #單個工作執行緒在嘗試執行其過濾器和輸出之前將從輸入收集的最大事件數量,預設125 pipeline.batch.size: 125 #將較小的批處理分派給管道之前,等待的毫秒數,預設50ms pipeline.batch.delay: 50 #此值為true時,即使記憶體中仍然有執行中事件,也會強制Logstash在關機期間退出
#預設flase pipeline.unsafe_shutdown: false #管道事件排序 #選項有;auto,true,false,預設auto pipeline.ordered: auto # ------------ Pipeline Configuration Settings -------------- #配置檔案路徑 path.config: #主管道的管道配置字串 config.string: #該值為true時,檢查配置是否有效,然後退出,預設false config.test_and_exit: false #該值為true時,會定期檢查配置是否已更改,並在更改後重新載入配置,預設false
config.reload.automatic: false #檢查配置檔案更改的時間間隔,預設3s config.reload.interval: 3s #該值為true時,將完整編譯的配置顯示為除錯日誌訊息,預設false config.debug: false #該值為true時,開啟轉義 config.support_escapes: false # ------------ HTTP API Settings ------------- #是否開啟http訪問,預設true http.enabled: true #繫結主機地址,可以是ip,主機名,預設127.0.0.1 http.host: 127.0.0.1 #服務監聽埠,可以是單個埠,也可以是範圍埠,預設9600-9700 http.port: 9600-9700 # ------------ Module Settings --------------- #模組定義,必須為陣列 #模組變數名格式必須為var.PLUGIN_TYPE.PLUGIN_NAME.KEY modules: - name: MODULE_NAME var.PLUGINTYPE1.PLUGINNAME1.KEY1: VALUE var.PLUGINTYPE1.PLUGINNAME1.KEY2: VALUE var.PLUGINTYPE2.PLUGINNAME1.KEY1: VALUE var.PLUGINTYPE3.PLUGINNAME3.KEY1: VALUE # ------------ Queuing Settings -------------- #事件緩衝的內部排隊模型,可選項:memory,persisted,預設memory queue.type: memory #啟用持久佇列(queue.type: persisted)後將在其中儲存資料檔案的目錄路徑 #預設path.data/queue path.queue: #啟用持久佇列(queue.type: persisted)時使用的頁面資料檔案的大小 #預設64mb queue.page_capacity: 64mb #啟用持久佇列(queue.type: persisted)後,佇列中未讀事件的最大數量 #預設0 queue.max_events: 0 #啟用持久佇列(queue.type: persisted)後,佇列的總容量,單位位元組,預設1024mb queue.max_bytes: 1024mb #啟用持久佇列(queue.type: persisted)後,在強制檢查點之前的最大ACKed事件數,預設1024 queue.checkpoint.acks: 1024 #啟用持久佇列(queue.type: persisted)後,在強制檢查點之前的最大書面事件數,預設1024 queue.checkpoint.writes: 1024 # If using queue.type: persisted, the interval in milliseconds when a checkpoint is forced on the head page # Default is 1000, 0 for no periodic checkpoint. #啟用持久佇列(queue.type: persisted)後,執行檢查點的時間間隔,單位ms,預設1000ms queue.checkpoint.interval: 1000 # ------------ Dead-Letter Queue Settings -------------- #是否啟用外掛支援的DLQ功能的標誌,預設false dead_letter_queue.enable: false #dead_letter_queue.enable為true時,每個死信佇列的最大大小 #若死信佇列的大小超出該值,則被刪除,預設1024mb dead_letter_queue.max_bytes: 1024mb #死信佇列儲存路徑,預設path.data/dead_letter_queue path.dead_letter_queue: # ------------ Debugging Settings -------------- #日誌輸出級別,選項:fatal,error,warn,info,debug,trace,預設info log.level: info #日誌格式,選項:json,plain,預設plain log.format: #日誌路徑,預設LOGSTASH_HOME/logs path.logs: # ------------ Other Settings -------------- #外掛儲存路徑 path.plugins: [] #是否啟用每個管道在不同日誌檔案中的日誌分隔 #預設false pipeline.separate_logs: false

logstash.conf檔案

該檔案定義了logstash從哪裡獲取輸入,然後輸出到哪裡

#從Beats輸入,以json格式輸出到Elasticsearch
input {
  beats {
    port => 5044
    codec => 'json'
  }
}

output {
  elasticsearch {
    #elasticsearch地址,多個以','隔開
    hosts => ["http://localhost:9200"]
    #建立的elasticsearch索引名,可以自定義也可以使用下面的預設
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
  }
}

#從kafka輸入,以json格式輸出到Elasticsearch input { kafka { #kafka地址,多個用逗號','隔開 bootstrap_servers => ["ip1:port2","ip2:port2"] #消費者組 group_id => 'test' # kafka topic 名稱 topics => 'logstash-topic' codec => 'json' } } output { elasticsearch { hosts => ["http://localhost:9200"] index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" } }