LogStash plugins-inputs-file介紹(三)

官方文檔 https://www.elastic.co/guide/en/logstash/current/plugins-inputs-file.htmlhtml

重要參數:node

  • path # 文件路徑
  • sincedb_path # 隱藏文件,記錄讀取文件的位置,默認在啓動用戶的目錄下,如root用戶在/root下
  • start_position # 默認從文件尾開始讀取記錄,能夠設置從文件頭開始讀取,相似tail -f
  • type # 類型,能夠經過if進行判斷

一.logstash配置文件使用

經過yum安裝默認路徑/etc/logstash/conf.d,配置文件存放路徑linux

1.1 編寫demo.conf文件,經過配置文件實現標準輸入、兩個輸出:標準輸出插件和elasticsearch插件vim

vim /etc/logstash/conf.d/demo.conf
input{
   stdin{}
}
 
filter{
}
 
output{
    elasticsearch {
        hosts => ["10.0.0.22:9200"]
        index => "logstash-%{+YYYY.MM.dd}"
    }
    stdout{
        codec => rubydebug
    }
}

 備註:配置文件中#表示註釋。 ruby

啓動配置文件bash

[root@saltstack02 ~]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/demo.conf

2.2  使用logstash配置文件收集messages日誌less

[root@linux-node1 ~]# vim /etc/logstash/conf.d/system.conf
input {
  file {
    path => "/var/log/messages"     #日誌路徑
    type => "systemlog"                 #類型
    start_position => "beginning"    #logstash 從什麼位置開始讀取文件數據,默認是結束位置,也就是說 logstash 進程會以相似 tail -F 的形式運行。若是你是要導入原有數據,把這個設定改爲"beginning",logstash 進程就從頭開始讀取,相似 less +F 的形式運行。
    stat_interval => "2"             #logstash 每隔多久檢查一次被監聽文件狀態(是否有更新) ,默認是 1 秒。
  }
}
output {
  elasticsearch {
    hosts => ["10.0.0.22:9200"]      #指定hosts
    index => "logstash-systemlog-%{+YYYY.MM.dd}"    #索引名稱
  }

}
  
[root@saltstack02 ~]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/system.conf -t #檢測配置文件是否有語法錯誤
WARNING: Could not find logstash.yml which is typically located in $LS_HOME/config or /etc/logstash. You can specify the path using --path.settings. Continuing using the defaults
Could not find log4j2 configuration at path /usr/share/logstash/config/log4j2.properties. Using default config which logs errors to the console
Configuration OK

1.3修改日誌的權限,防止報錯elasticsearch

[root@linux-node1 ~]# ll /var/log/messages 
-rw-------. 1 root root 791209 12月 27 11:43 /var/log/messages
#這裏能夠看到該日誌文件是600權限,而elasticsearch是運行在elasticsearch用戶下,這樣elasticsearch是沒法收集日誌的。因此這裏須要更改日誌的權限,不然會報權限拒絕的錯誤。在日誌中查看/var/log/logstash/logstash-plain.log 是否有錯誤。
[root@linux-node1 ~]# chmod 644 /var/log/messages 
[root@linux-node1 ~]# systemctl restart logstash

 1.4 執行ide

[root@saltstack02 conf.d]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/system.conf ui

相關文章
相關標籤/搜索