1.ELK簡介git
ELK是三個開源軟件的縮寫,分別表示:Elasticsearch , Logstash, Kibana , 它們都是開源軟件。新增了一個FileBeat,它是一個輕量級的日誌收集處理工具(Agent),Filebeat佔用資源少,適合於在各個服務器上搜集日誌後傳輸給Logstash,官方也推薦此工具。github
2.安裝logstashdocker
1.拉取鏡像json
docker pull logstash:5.6.11
2.建立目錄ruby
mkdir /docker/logstash cd /docker/logstash
3.建立配置文件服務器
touch logstash.config 文件內容: input { udp { port => 8888 codec => json } } output { elasticsearch{ hosts => "192.168.186.129:9200" index => "indextest" } stdout{ codec => rubydebug } }
4.建立,啓動logstash容器restful
docker run -p 8888:8888/udp -d -v /docker/logstash:/config-dir logstash:5.6.11 -f /config-dir/logstash.conf
3.安裝elasticsearch網絡
1.拉取鏡像架構
docker pull elasticsearch:5.6.11
2.建立數據目錄併發
mkdir /docker/es && mkdir /docker/es/data
3.建立ES容器並啓動
docker run -d -p 9200:9200 -p 9300:9300 \ -v /docker/es/data:/usr/share/elasticsearch/data \ elasticsearch:5.6.11
4.測試
5.啓動問題排查
默認啓動ES分配2G內存,如提示內存不足,可進行修改
find /var/lib/docker/overlay/ -name jvm.options
查到以下結果:
/var/lib/docker/overlay2/1fb59070a037d02dccfc33e15d6e24cf9127882cc19521a1654192d3d3b1c7ec/diff/etc/logstash/jvm.options /var/lib/docker/overlay2/d2b9e8e913dff7c015cbb27b34ca4b9921bdd43869a1bfb1413af468cb14465e/diff/etc/elasticsearch/jvm.options /var/lib/docker/overlay2/dd2634a4b14f8ef455ae969466af25d147f508c0e9785bb3e7703eb933675ecf/merged/etc/logstash/jvm.options
修改elasticsearch/jvm.options
把 -Xms2g 改成 -Xms512m -Xmx2g 改成 -Xmx512m
6.安裝IK分詞器
a.docker exec -it 容器ID b.elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.6.11/elasticsearch-analysis-ik-5.6.11.zip 重啓容器加載IK分詞器時候會保存,IK分詞器下缺乏配置文件,沒搞明白爲何5.6.11安裝的IK插件缺乏了,宿主機下載瞭解壓後Copy到容器中 docker cp ik/config 容器ID:/usr/share/elasticsearch/plugins/analysis-ik 重啓容器
測試安裝的分詞器:
GET _analyze?pretty { "analyzer": "ik_smart", "text": "中華人民共和國國歌" }
4.安裝kibana
1.拉取kibana鏡像
docker pull kibana:5.6.11
2.建立kibana容器並啓動
docker run -p 5601:5601 -e ELASTICSEARCH_URL=http://192.168.186.129:9200 -d kibana:5.6.11
3.測試