????????如果您對 elk 還不了解,那么可以先直戳下方官方鏈接,官方通過圖形化界面很形象地介紹了elk stack(Elastic? Stack)。
?ELK Stack:Elasticsearch 的開發(fā)者傾心打造 | Elastic
| 準(zhǔn)備工作(統(tǒng)一版本7.16.1)
本文使用軟件(centos7,moba)
| 拉取es鏡像
docker pull elasticsearch:7.16.1
|| 拉取kibana鏡像?
docker pull kibana:7.16.1
||| 拉取logstash鏡像
docker pull logstash:7.16.1
|||| 拉取filebeat鏡像
docker pull docker.elastic.co/beats/filebeat:7.16.1
拉取完成后使用命令查看鏡像信息,如下所示:
docker images
| 設(shè)置elk的網(wǎng)絡(luò)
這里取名為elbk-net(都是首字母啦)
docker network create elbk-net
?若你擁有可視化界面portainer,則可在network中查看
| 分別啟動各容器
1.啟動es(本文以單節(jié)點演示)
docker run \
-d --name es \
-p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
--net elbk-net \
elasticsearch:7.16.1
2.啟動 kibana
docker run \
-v /opt/docker/elbk/kibana:/usr/local/etc/elbk/kibana/config \
-p 5601:5601 -d \
--net elbk-net \
--name kibana \
kibana:7.16.1
若您等待了很長時間訪問kibana見到如下界面,請參考:
【解決】Kibana server is not ready yet:Docker啟動kibana遲遲未成功_hah楊大仙的博客-CSDN博客
啟動成功可看到如下界面
3.配置啟動logstash
| 添加如下兩個文件,需將文件中?ip地址?修改為?你的ip地址?
目錄結(jié)構(gòu)如下圖所示:
logstash.yml
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: 192.168.21.128:9200
logstash.conf
input {
beats {
port => 5678
}
}
filter {
# Only matched data are send to output.
}
output {
elasticsearch {
hosts => ["http://192.168.21.128:9200"] # ElasticSearch host, can be array.
index => "mylog-%{+YYYY.MM}" # The index to write data to.
}
}
-
input:輸入
- beats是我們后面要啟動的filebeat,filebeat通過port:5678將收集的日志發(fā)送給logstash
- filter:過濾
- output:輸出
啟動 logstash
docker run -d \
-p 5678:5678 --net elbk-net \
--name logstash -p 5066:5066 -p 5067:5067 \
-v /opt/docker/elbk/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \
-v /opt/docker/elbk/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml \
logstash:7.16.1
使用docker ps查看正在運行的容器,啟動成功?
4.配置啟動filebeat
- 新建需要收集的日志文件:
- 內(nèi)容大致如下(springcloud微服務(wù)中的網(wǎng)關(guān)模塊啟動日志,這里僅做demo演示)
創(chuàng)建filebeat文件夾并創(chuàng)建?filebeat.yml?文件,目錄如下圖所示(規(guī)范一點多多益善啦)
filebeat.yml?內(nèi)容如下
filebeat.inputs:
- type: log
enabled: true
paths:
- /opt/docker/elbk/test/elbk-test.log
output.logstash:
hosts: ["192.168.21.128:5678"]
- paths:測試日志的存放位置
- hosts:你的ip地址,5678端口是與上面啟動的logstash對應(yīng)
啟動filebeat
同樣記得修改ip為你的ip
docker run \
-u root \
-v /opt/docker/elbk/test:/opt/docker/elbk/test:rw \
-v /opt/docker/elbk/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro \
-e setup.kibana.host=192.168.21.128:5601 -d \
--name filebeat --net elbk-net \
docker.elastic.co/beats/filebeat:7.16.1
-
?ro:
- 文件:容器內(nèi)不能修改,會提示read-only
- 文件夾:容器內(nèi)不能修改、新增、刪除文件夾中的文件,會提示read-only
-
rw:
-
文件:不管是宿主機還是容器內(nèi)修改,都會相互同步,但容器內(nèi)不允許刪除,會提示Device or resource busy;宿主機刪除文件,容器內(nèi)的不會被同步
-
文件夾:不管是宿主機還是容器內(nèi)修改、新增、刪除文件,都會相互同步
-
啟動成功后查看正在運行的容器
docker ps
也可通過可視化界面查看
全部啟動成功?。?/h4>
接下來我們使用 kibana 看一下效果
| 測試
1.使用您的ip地址加5601(啟動kibana指定的端口)即可看到如下界面?
2.點擊可看到如下界面
3.這里還是切回英文版演示(ps:kibana是可以設(shè)置為中文的,找找度娘,很簡單,在這里不是重點,就不操作啦)
4.選擇堆棧管理
5.選擇索引配置
6.點擊后關(guān)閉彈出框
7.該界面告訴你已有數(shù)據(jù),點擊創(chuàng)建索引進入 正則選擇索引庫,若如下圖所示匹配到上面logstash.conf定義的索引即代表成功??!
8.即可進入如下界面?
9.此時再使用es-head頭插件查看即可看到已生成索引庫??!
10.且已存入數(shù)據(jù)~
11.接下來如下圖所示操作即可看到創(chuàng)建時寫入的數(shù)據(jù)?。?/p>
12.根據(jù)條件篩選
13.此時在該日志文件再寫入一條信息
14.回到kibana查看
15.ok,至此 elk stack 搭建 及 demo測試 就到此結(jié)束啦!!good luck??!
..
Thanks?文章來源:http://www.zghlxwxcb.cn/news/detail-405080.html
..文章來源地址http://www.zghlxwxcb.cn/news/detail-405080.html
到了這里,關(guān)于【圖文詳解】Docker搭建 ELK Stack (elk) [使用es-logstash-filebeat-kibana]的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!