如何使用docker搭建ELK分布式日志同步方案
ELK作為業(yè)界最常用日志同步方案,我們今天嘗試一下使用docker快速搭建一套ELK方案。ELK使用國(guó)內(nèi)加速源拉取的鏡像比較舊,有條件的朋友可以拉取官網(wǎng)的源。elasticsearch作為日志儲(chǔ)存庫(kù)(數(shù)據(jù)庫(kù)),kibana的作用通過(guò)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必填,不然啟動(dòng)失敗,簡(jiǎn)單選擇單節(jié)點(diǎn)規(guī)模,如果在內(nèi)網(wǎng)建議填寫(xiě)xpack.security.enabled為false,因?yàn)槟J(rèn)值是true,默認(rèn)elasticsearch需要授權(quán)訪問(wèn),內(nèi)網(wǎng)網(wǎng)絡(luò)這一步可以省掉。
搭建kibana
docker run -d --name kibana --link elasticsearch -p 5601:5601 kibana:7.17.22
通過(guò)docker的link參數(shù),與剛剛搭建的elasticsearch容器關(guān)聯(lián)起來(lái),默認(rèn)數(shù)據(jù)就會(huì)關(guān)聯(lián)起來(lái),elasticsearch通過(guò)API進(jìn)行數(shù)據(jù)訪問(wèn),如果剛才搭建elasticsearch容器xpack.security.enabled沒(méi)有填寫(xiě)false,此時(shí)則需要配置授權(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)站鏡像啟動(dòng)容器,切記同步一下主機(jī)的時(shí)間和時(shí)區(qū),容器默認(rèn)是國(guó)際標(biāo)準(zhǔn)時(shí)間和時(shí)區(qū),會(huì)有8個(gè)小時(shí)的差值。-v /etc/localtime:/etc/localtime的作用是同步主機(jī)時(shí)間,-e TimeZone=Asia/Shanghai的作用是同步主機(jī)時(shí)區(qū)。
-v /Logs:/app/Logs作用是掛載點(diǎn),將容器的日志文件夾掛載到主機(jī)文件上面,這一步很重要,logstash同步日志需要掛載這個(gè)主機(jī)的日志文件夾。
搭建Logstash
logstash需要先配置參數(shù),才可以啟動(dòng)鏡像。
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,填寫(xiě)剛剛啟動(dòng)的elasticsearch容器,如果搭建elasticsearch容器xpack.security.enabled沒(méi)有填寫(xiě)false,此時(shí)則需要配置授權(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)去。

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


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

