官方文檔 https://www.elastic.co/guide/en/logstash/current/plugins-inputs-file.htmlhtml
重要參數:node
經過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