Docker環境搭建ELK


1、拉取鏡像

docker pull elasticsearch:7.2.0 docker pull logstash:7.2.0 docker pull kibana:7.2.0

雖然不帶版本號會拉取最新版本,但是可能會在拉取過程中報錯。注意ES、Logstash、Kibana版本必須一致,不然會出現各種莫名的問題,比如Kibana連不上ES或者Logstash連不上ES。這里我使用的是7.2.0版本。

2、安裝Elasticsearch

創建掛載目錄

mkdir -p /home/elasticsearch/config
mkdir -p /home/elasticsearch/data
echo "http.host: 0.0.0.0">>/home/elasticsearch/config/elasticsearch.yml
chmod -R 777 /home/elasticsearch/

運行容器

docker run --privileged=true --name elasticsearch -p 9200:9200 \
 -p 9300:9300 \
 -e "discovery.type=single-node" \
 -e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
 -v /home/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
 -v /home/elasticsearch/data:/usr/share/elasticsearch/data \
 -v /home/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
 -d elasticsearch:7.2.0

配置跨域(可以不用配置)
修改/home/elasticsearch/config/elasticsearch.yml文件

cluster.name: "docker-cluster"
network.host: 0.0.0.0
# 訪問ID限定,0.0.0.0為不限制,生產環境請設置為固定IP
transport.host: 0.0.0.0
# elasticsearch節點名稱
node.name: node-1
# elasticsearch節點信息
cluster.initial_master_nodes: ["node-1"]
# 下面的配置是關閉跨域驗證(可以不開啟)
http.cors.enabled: true
http.cors.allow-origin: "*"

檢驗安裝結果
http://192.168.1.101:9200/

顯示效果如下就成功了

3、安裝Kibana

kibana不用做特殊的配置,只是需要在運行容器的時候link一下es。

docker run --name kibana \
--link elasticsearch:elasticsearch \
-p 5601:5601 \
-d kibana:7.2.0

檢驗安裝結果
http://192.168.1.101:5601/
如果可以正常打開並連接上ES表示安裝成功。

4、安裝Logstash

如果項目中是直接把日志寫入到ES中的話,可以不用安裝Logstash。
運行容器
docker run --name logstash -d -p 5044:5044 -p 9600:9600 logstash:7.2.0
創建配置文件目錄,設置權限:

mkdir -p /home/elk/logstash/config;
mkdir -p /home/elk/logstash/pipeline;
chown -R 1000 /home/elk/logstash;

拷貝配置文件:

docker cp logstash:/usr/share/logstash/config /home/elk/logstash/config;
docker cp logstash:/usr/share/logstash/pipeline /home/elk/logstash/pipeline;

刪除容器:
docker rm -f logstash
重新運行容器:

docker run --name logstash -d \
-p 5044:5044 \
-p 9600:9600 \
-v /home/elk/logstash/config/config:/usr/share/logstash/config \
-v /home/elk/logstash/pipeline/pipeline:/usr/share/logstash/pipeline \
logstash:7.2.0 

安裝完了需要修改配置
修改/home/elk/logstash/config/config/logstash.yml,將里面改成

http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://192.168.22.188:9200" ]

如果需要接收filebeat等其他應用的日志轉發到ES,需要修改/home/elk/logstash/pipeline/pipeline/logstash.conf

input {
  beats {
    port => 5044
  }
}

output {
  elasticsearch {
    hosts => ["192.168.22.188:9200"]
    index => "moonlog.%{+YYYY.MM.dd}"
    #user => "elastic"
    #password => "changeme"
  }
}

參考文檔
https://my.oschina.net/u/3656204/blog/3078973
https://www.jianshu.com/p/1b33b351ffdf


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM