Docker搭建Elastic Stack日誌分析平臺

由於工做須要打算搭建一個數據抽取平臺,發現Elastic Stack能知足。同時爲了方便部署,故此採用docker來搭建。本次搭建爲單機部署。node

1 準備工做

下載順序:docker

  1. Elasticsearch(其中包含X-Pack for Elasticsearch)
  2. Kibana(包含X-Pack for Kibana)
  3. Logstash
  4. Beats
  5. Elasticsearch Hadoop(用不到,官網有,就先放着)

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

2 啓動容器

2.1 啓動es

添加配置文件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

2.2 啓動Kibana

一樣添加配置文件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

2.3 啓動Logstash

添加配置文件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端口啓動

2.4 下載Filebeat

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"]

3 注意點

3.1 老是沒有接收最後一條日誌

filebeat經過換行符來做爲EOF,因此須要在最後加上換行

相關文章
相關標籤/搜索