在分佈式系統中,一臺主機可能有多個應用,應用將日誌輸出到主機的指定目錄,這時由logstash來搬運日誌並解析日誌,然後輸出到elasticsearch上。由於於 logstash是java應用,解析日誌是非的消耗cpu和內存,logstash安裝在應用部署的機器上顯得非常的笨重。最常見的做法是用filebeat部署在應用的機器上,logstash單獨部署,然後由 filebeat將日誌輸出給logstash解析,解析完由logstash再傳給elasticsearch。
1.下載安裝Logstash
地址;https://www.elastic.co/cn/downloads/past-releases#logstash
cd /home/niuhao/elasticsearch
tar -zxvf logstash-6.7.1.tar.gz
#啓動
cd /home/niuhao/elasticsearch/logstash-6.7.1/bin
nohup ./logstash -f logstash.conf > logstash.out 2>&1 &
#啓動即可/ 將所有標準輸出及標準錯誤輸出到/dev/null空設備,即沒有任何輸出
ps -ef |grep logstash
修改logstash-sample.conf
input {
beats {
port => 5044
}
}
output {
elasticsearch {
#集羣
# hosts => ["http://10.0.0.5:9200", "http://10.0.0.13:9200", "http://10.0.0.17:9200"]
hosts => ["http://192.168.154.128:9200"]
index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
#user => "elastic"
#password => "changeme"
}
}
2.下載安裝filebeat
cd /home/niuhao/elasticsearch
tar -zxvf filebeat-6.7.1-linux-x86_64.tar.gz
#啓動即可(logstash啓動成功後filebeat才能啓動成功,即4567,9600端口啓動)
cd /home/niuhao/elasticsearch/filebeat-6.7.1-linux-x86_64
nohup ./filebeat -e -c filebeat.yml > filebeat.out 2>&1 &
ps -ef |grep filebeat
netstat -nptl
修改:filebeat.yml
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/service-hi.log
setup.kibana:
host: "192.168.154.128:5601"
output.logstash:
hosts: ["192.168.154.128:5044"]
主要配置的是日誌的蒐集目錄爲/var/log/service-hi.log,這個目錄是應用service-hi輸出日誌的文件。