找了很多使用 docker-elk 搭建的博客, 英文的閱讀吃力不說, 鏡像源也是慢的讓人頭皮發麻, 所以從新編排了一個
docker-compose
,源都是從
https://hub.docker.com/ 上找的, 即便拉的國內鏡像源應該也能很好的支持了吧?
18.06.0-ce
1.22.0
給每一個容器最少分配 1G 的內存git
5.*
5.*
5.*
在各個目錄下都有對應的 config 配置, 根據各自的狀況自行處理github
拿默認的 logstash/confg/test.conf 中的配置舉例:docker
input { file { #這裏的路徑指的是 logstash 容器中的路徑, 外部接入須要使用 volume 進行目錄映射 path => "/logs/input/*" } # 在 logstash 容器中的輸入 stdin {} # 由於作了本地5000端口和容器5000端口進行綁定, 因此能夠用 nc 工具測試一下 # echo "Test Logstash TCP Input Plugin" | nc localhost 5000 tcp { type => "tcp" port => 5000 mode => "server" } } output { file { #這裏的路徑指的是 logstash 容器中的路徑, 外部接入須要使用 volume 進行目錄映射 path => "/logs/output/%{+yyyy-MM-dd-HH}/%{host}.log" } stdout { codec => rubydebug } elasticsearch { hosts => "elasticsearch:9200" # 這裏設置的 index 在 kibana 中會用到 index => "file-log-%{+YYYY.MM}" } }
執行瀏覽器
git clone https://github.com/gaopengfei123123/docker-elk.git && cd docker-elk docker-compose up -d --build
等一會看到執行成功的提示ruby
Creating docker-elk_elasticsearch_1 ... done Creating docker-elk_logstash_1 ... done Creating docker-elk_kibana_1 ... done
在本地瀏覽器輸入 http://localhost:5601/
進入 kibana 界面bash
注意, 第一次啓動時有可能會出現提示 elasticsearch not found
這類的問題, 能夠先等個一兩分鐘刷新一下就行了, 若是仍是不行就谷歌或者提 issue 解決一下elasticsearch
同目錄下輸入tcp
docker-compose stop
則中止全部服務工具
在 logs/input/
目錄下新增個 test.log 文件, 而後輸入點東西驗證一下, 或者命令行執行echo "Test Logstash TCP Input Plugin" | nc localhost 5000
經過 tcp 發送日誌測試
docker-compose logs -f
查看各容器日誌輸出