環境
- centos 7.0(至少需要3G內存,該安裝包較大)
- docker 19.0
- ELK鏡像 sebp/elk(7.6.0版本)
Docker安裝部署ELK
選擇的是sebp/elk鏡像,這里基本沒有什么需要配置的,docker search elk 找到stars最多的pull下來。
docker pull sebp/elk
先把對應的文件都拷貝到宿主機當中
1.創建文件夾
mkdir -p /root/data/es/{conf,data}
mkdir -p /root/data/logstash/config
2.在運行容器並且把容器里的配置cp到宿主機當中
docker run --tid --name elk sebp/elk
docker cp -a elk:/opt/kibana/config/kibana.yml .
docker cp -a elk:/opt/logstash/config .
3.然后刪除剛才創建的容器
docker rm -f elk
1 .運行elk
pull下來之后,因為需要修改kibana配置,和logstash配置,所以把一些常用的配置掛載到容器目錄
1.命令
docker run -tid -p 5601:5601 -p 5044:5044 -p 9200:9200 -p 9300:9300 \
-v /root/data/es/conf/kibana.yml:/opt/kibana/config/kibana.yml \
-v /root/data/es/data:/var/lib/elasticsearch \
-v /root/data/logstash/config:/opt/logstash/config \
--restart=always --name elk sebp/elk
2.命令解釋
-p 5601:5601 映射kibana端口
-p 9200:9200 映射es端口
-p 5044:5044 映射logstash端口
-v /root/data/es/conf/kibana.yml:/opt/kibana/config/kibana.yml 掛載kibana配置文件
-v /root/data/es/data:/var/lib/elasticsearch 掛載es數據源
-v /root/data/logstash/config:/opt/logstash/config 掛載logstash配置
--restart=always 自動啟動
2.配置logstash
進入到logstash的配置文件夾,會看到如下的配置,examlogstash.conf是新添加的配置文件,pilelines.yml是管理配置文件的路徑。
這里我把配置文件加載的目錄改成了opt可以不用改,在掛載目錄的時候把/etc/logstash/conf.d/*.conf路徑給掛載出來。
修改配置,輸入端口可以根據需求自定義一個對外提供的端口號,注意格式一定要正確,不然會報錯。
配置完成之后,在重啟一下elk就ok了
1.docker restart elk
3.漢化kibana
在宿主機找到剛才掛載到容器里的kibana.yml文件,在里面加入i18n.locale: "zh-CN"這行配置,然后重啟下容器就ok了。
windows安裝filebeat客戶端
從官網下載windows版本的filebeat客戶端,配置filebeat.yml
這里配置了logstash的路徑,還有要抓取的本機目錄
運行抓取日志
.\filebeat -e -c filebeat.yml
kibana配置
成功抓取的日志以后進入到kibana當中創建索引模式,如果未抓取到日志,那么看下filebeat或者docker logs 是否有錯誤。通常是配置文件語法格式錯誤。
如果成功抓取,點擊kibana左上方的綠色背景的D字。然后點擊索引模式=>創建索引模式,如果已經存在索引那么會顯示你的索引字段,沒有索引的話系統也會給提示的。
有索引直接輸入索引名匹配就ok了。