由於工做須要打算搭建一個數據抽取平臺,發現Elastic Stack能知足。同時爲了方便部署,故此採用docker來搭建。本次搭建爲單機部署。node
下載順序:docker
elasticsearch做爲數據中心,kibana是頁面顯示,logstash是數據過濾,filebeat是日誌文件數據提取。json
使用Docker下載3個鏡像elasticsearch
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.3.1
docker pull docker.elastic.co/logstash/logstash:6.3.1
docker pull docker.elastic.co/kibana/kibana:6.3.1
添加配置文件elasticsearch.ymloop
http.port: 9200 cluster.name: "docker-cluster" network.host: 0.0.0.0 discovery.type: "single-node"
再啓動ESurl
docker run -d -p 9200:9200 -p 9300:9300 --name container-es -v ~/elk/es/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml docker.elastic.co/elasticsearch/elasticsearch:6.3.1
一樣添加配置文件kibana.yml日誌
server.port: 5601 server.host: "0.0.0.0" elasticsearch.url: "http://172.17.0.2:9200"
elasticsearch.url對應具體的IP和端口,而後啓動kibana:code
docker run -d -e ELASTICSEARCH_URL=http://172.17.0.2:9200 -p 5601:5601 --name container-kibana -v ~/elk/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml docker.elastic.co/kibana/kibana:6.3.1
其中ELASTICSEARCH_URL即爲es的URL地址server
添加配置文件pipeline/logstash.conf,使用json解析日誌ip
input { beats { port => 5044 } } filter { json { source => "message" } } output { elasticsearch { hosts => ["172.17.0.2:9200"] } }
啓動
docker run -d --name logstash -p 3456:3456 -p 5044:5044 -v ~/elk/logstash/pipeline/:/usr/share/logstash/pipeline/ docker.elastic.co/logstash/logstash:6.3.1
此時,logstash以5044端口啓動
Filebeat下載地址 filebeat上傳至logstash,配置文件以下,將ES部分註釋掉,並打開logstash部分,並修改成logstash所在地址
filebeat.inputs: - type: log enabled: true paths: #- /var/log/*.log #- c:\programdata\elasticsearch\logs\* - D:\test\logs\* #output.elasticsearch: # Array of hosts to connect to. #hosts: ["localhost:9200"] output.logstash: hosts: ["192.168.0.51:5044"]
filebeat經過換行符來做爲EOF,因此須要在最後加上換行