找了不少使用 docker-elk 搭建的博客, 英文的閱讀吃力不說, 鏡像源也是慢的讓人頭皮發(fā)麻, 因此重新編排了一個docker-compose,源都是從 https://hub.docker.com/ 上找的, 即使拉的國內(nèi)鏡像源應該也能很好的支持了吧?
環(huán)境
- Docker 18.06.0-ce
- docker-compose 1.22.0
給每個容器最少分配 1G 的內(nèi)存
軟件版本
- logstash: 5.*
- elasticsearch: 5.*
- kibana: 5.*
啟動前的配置
在各個目錄下都有對應的 config 配置, 根據(jù)各自的情況自行處理
拿默認的 logstash/confg/test.conf 中的配置舉例:
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"
# 這里設(shè)置的 index 在 kibana 中會用到
index => "file-log-%{+YYYY.MM}"
}
}
啟動容器
執(zhí)行
git clone https://github.com/gaopengfei123123/docker-elk.git && cd docker-elk
docker-compose up -d --build
等一會看到執(zhí)行成功的提示
Creating docker-elk_elasticsearch_1 ... done
Creating docker-elk_logstash_1 ... done
Creating docker-elk_kibana_1 ... done
在本地瀏覽器輸入 http://localhost:5601/
進入 kibana 界面
注意, 第一次啟動時有可能會出現(xiàn)提示 elasticsearch not found
這類的問題, 可以先等個一兩分鐘刷新一下就好了, 如果還是不行就谷歌或者提 issue 解決一下
同目錄下輸入
則停止所有服務(wù)
測試一下
在 logs/input/
目錄下新增個 test.log 文件, 然后輸入點東西驗證一下, 或者命令行執(zhí)行echo "Test Logstash TCP Input Plugin" | nc localhost 5000
通過 tcp 發(fā)送日志
查看各容器日志輸出
TODO
- 引入 kafka 做緩沖
- 搭建 es 集群
github 地址
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。