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