如何使用docker搭建ELK分布式日志同步方案
ELK作為業(yè)界最常用日志同步方案,我們今天嘗試一下使用docker快速搭建一套ELK方案。ELK使用國內(nèi)加速源拉取的鏡像比較舊,有條件的朋友可以拉取官網(wǎng)的源。elasticsearch作為日志儲存庫(數(shù)據(jù)庫),kibana的作用通過elasticsearch的API接口調(diào)取其中數(shù)據(jù)作可視化分析,logstash的作用就是將程序生成的日志同步到elasticsearch。
搭建Elasticsearch
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "xpack.security.enabled=false" elasticsearch:8.14.1
其中discovery.type必填,不然啟動失敗,簡單選擇單節(jié)點(diǎn)規(guī)模,如果在內(nèi)網(wǎng)建議填寫xpack.security.enabled為false,因?yàn)槟J(rèn)值是true,默認(rèn)elasticsearch需要授權(quán)訪問,內(nèi)網(wǎng)網(wǎng)絡(luò)這一步可以省掉。
搭建kibana
docker run -d --name kibana --link elasticsearch -p 5601:5601 kibana:7.17.22
通過docker的link參數(shù),與剛剛搭建的elasticsearch容器關(guān)聯(lián)起來,默認(rèn)數(shù)據(jù)就會關(guān)聯(lián)起來,elasticsearch通過API進(jìn)行數(shù)據(jù)訪問,如果剛才搭建elasticsearch容器xpack.security.enabled沒有填寫false,此時則需要配置授權(quán)。
搭建Web站點(diǎn)
docker run -d --name web -p 5000:80 -v /Logs:/app/Logs -v /etc/localtime:/etc/localtime -e TimeZone=Asia/Shanghai webapplication1:latest
拉取網(wǎng)站鏡像啟動容器,切記同步一下主機(jī)的時間和時區(qū),容器默認(rèn)是國際標(biāo)準(zhǔn)時間和時區(qū),會有8個小時的差值。-v /etc/localtime:/etc/localtime的作用是同步主機(jī)時間,-e TimeZone=Asia/Shanghai的作用是同步主機(jī)時區(qū)。
-v /Logs:/app/Logs作用是掛載點(diǎn),將容器的日志文件夾掛載到主機(jī)文件上面,這一步很重要,logstash同步日志需要掛載這個主機(jī)的日志文件夾。
搭建Logstash
logstash需要先配置參數(shù),才可以啟動鏡像。
input {
file {
path => "/Logs/*.txt"
start_position => "beginning"
}
}
filter {
}
output {
elasticsearch {
hosts => ["http://192.168.3.105:9200"]
index => "logstash-%{+YYYY.MM.dd}"
}
}input是輸入源,選擇文件,地址應(yīng)該是與程序容器日志掛載點(diǎn)相同。
output是輸出源,選擇elasticsearch,填寫剛剛啟動的elasticsearch容器,如果搭建elasticsearch容器xpack.security.enabled沒有填寫false,此時則需要配置授權(quán)。
docker run -d --name logstash -v /Logs:/Logs -v /root/logstash.conf:/usr/share/logstash/pipeline/logstash.conf logstash:7.17.22
將主機(jī)的日志掛載點(diǎn)傳進(jìn)容器,將logstash.conf配置文件掛載進(jìn)去。

四個容器啟動之后,ELK日志收集方案就基本搭建完畢,程序生產(chǎn)的日志通過掛載同步到主機(jī),再同步進(jìn)logstash的容器,由logstash定時讀取將數(shù)據(jù)通過elasticsearch的API寫入庫,再通過kibana的可視化界面進(jìn)行分析。
訪問kibana可視化界面可以就進(jìn)行日志實(shí)時同步分析,根據(jù)我的容器端口和IP地來看,我的kibana站點(diǎn)地址是:http://192.168.3.105:5601


到此這篇關(guān)于使用docker搭建ELK分布式日志同步方案的文章就介紹到這了,更多相關(guān)docker ELK分布式日志內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker安裝Redis容器的實(shí)現(xiàn)步驟
本文主要介紹了Docker安裝Redis容器的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09
在Docker容器中部署靜態(tài)網(wǎng)頁的方法教程
這篇文章主要給大家介紹了在Docker容器中部署靜態(tài)網(wǎng)頁的方法教程,文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-06-06
docker部署fastapi的實(shí)現(xiàn)步驟
本文主要介紹了docker部署fastapi的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
利用docker搭建php7和nginx運(yùn)行環(huán)境全過程(官方鏡像)
docker提供了在服務(wù)端分布式的部署應(yīng)用,這樣的好處是方便維護(hù)和升級。下面這篇文章主要給大家介紹了利用docker搭建php7和nginx運(yùn)行環(huán)境的相關(guān)資料,搭建過程中運(yùn)用的是官方鏡像,需要的朋友可以參考借鑒,下面來一起看看吧。2017-05-05
Docker部署Apollo的實(shí)現(xiàn)步驟
眾所周知分布式配置中心在目前也可以說是企業(yè)中項(xiàng)目的標(biāo)配了,本文主要介紹了Docker 部署Apollo的實(shí)現(xiàn)步驟,具有一定的參考價值,感興趣的可以了解一下2024-02-02
Deepin使用docker安裝mysql數(shù)據(jù)庫過程詳解
這篇文章主要介紹了Deepin使用docker安裝mysql數(shù)據(jù)庫過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06
Docker容器如何查看ip地址的實(shí)現(xiàn)方法
這篇文章主要介紹了Docker容器如何查看ip地址的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09

