1、簡介web
一、核心組成docker
ELK由Elasticsearch、Logstash和Kibana三部分組件組成;瀏覽器
Elasticsearch是個開源分佈式搜索引擎,它的特色有:分佈式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。bash
Logstash是一個徹底開源的工具,它能夠對你的日誌進行收集、分析,並將其存儲供之後使用restful
kibana 是一個開源和免費的工具,它能夠爲 Logstash 和 ElasticSearch 提供的日誌分析友好的 Web 界面,能夠幫助您彙總、分析和搜索重要數據日誌。網絡
二、四大組件
elasticsearch
Logstash: logstash server端用來蒐集日誌;分佈式
Elasticsearch: 存儲各種日誌;工具
Kibana: web化接口用做查尋和可視化日誌;測試
Logstash Forwarder: logstash client端用來經過lumberjack 網絡協議發送日誌到logstash server;
三、ELK工做流程
在須要收集日誌的全部服務上部署logstash,做爲logstash agent(logstash shipper)用於監控並過濾收集日誌,將過濾後的內容發送到Redis,而後logstash indexer將日誌收集在一塊兒交給全文搜索服務ElasticSearch,能夠用ElasticSearch進行自定義搜索經過Kibana 來結合自定義搜索進行頁面展現。
四、ELK的幫助手冊
Docker Hub官網:https://hub.docker.com/r/sebp/elk/
Docker ELK使用文檔:http://elk-docker.readthedocs.io/
五、安裝前提條件:
Docker至少得分配3GB的內存;
Elasticsearch至少須要單獨2G的內存;
防火牆開放相關端口;
vm.max_map_count至少須要262144,附永久修改vm.max_map_count方法以下圖:
執行命令:sysctl -p 查看
2、安裝Docker ELK
一、執行命令:docker pull sebp/elk 將鏡像pull到本地來;
二、執行命令:docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -e ES_MIN_MEM=128m -e ES_MAX_MEM=1024m -it --name elk sebp/elk 將鏡像運行爲容器,因爲我本機內存不符合安裝要求,爲了保證ELK可以正常運行,加了-e參數限制使用最小內存及最大內存。
三、打開瀏覽器,輸入:http://<your-host>:5601,看到以下界面說明安裝成功
3、配置使用
一、使用命令:docker exec -it <container-name> /bin/bash 進入容器內
二、執行命令:/opt/logstash/bin/logstash -e 'input { stdin { } } output { elasticsearch { hosts => ["localhost"] } }'
注意:若是看到這樣的報錯信息 Logstash could not be started because there is already another instance using the configured data directory. If you wish to run multiple instances, you must change the "path.data" setting. 請執行命令:service logstash stop 而後在執行就能夠了。
三、當命令成功被執行後,看到:Successfully started Logstash API endpoint {:port=>9600} 信息後,輸入:this is a dummy entry
而後回車,模擬一條日誌進行測試。
四、打開瀏覽器,輸入:http://<your-host>:9200/_search?pretty 如圖,就會看到咱們剛剛輸入的日誌內容
五、打開瀏覽器,輸入:http://<your-host>:5601 點擊建立
六、看到以下界面,到此安裝結束。