如何使用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é)點規(guī)模,如果在內(nèi)網(wǎng)建議填寫xpack.security.enabled為false,因為默認(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站點
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作用是掛載點,將容器的日志文件夾掛載到主機(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)該是與程序容器日志掛載點相同。
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ī)的日志掛載點傳進(jìn)容器,將logstash.conf配置文件掛載進(jìn)去。
四個容器啟動之后,ELK日志收集方案就基本搭建完畢,程序生產(chǎn)的日志通過掛載同步到主機(jī),再同步進(jìn)logstash的容器,由logstash定時讀取將數(shù)據(jù)通過elasticsearch的API寫入庫,再通過kibana的可視化界面進(jìn)行分析。
訪問kibana可視化界面可以就進(jìn)行日志實時同步分析,根據(jù)我的容器端口和IP地來看,我的kibana站點地址是:http://192.168.3.105:5601
到此這篇關(guān)于使用docker搭建ELK分布式日志同步方案的文章就介紹到這了,更多相關(guān)docker ELK分布式日志內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Dockerfile如何使用alpine系統(tǒng)制作haproxy鏡像
這篇文章主要介紹了Dockerfile如何使用alpine系統(tǒng)制作haproxy鏡像問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05Docker學(xué)習(xí)之?dāng)?shù)據(jù)卷和Dockerfile詳解
在容器化應(yīng)用的開發(fā)和部署過程中,數(shù)據(jù)的持久化和共享是一個重要的問題,下面這篇文章主要給大家介紹了關(guān)于Docker學(xué)習(xí)之?dāng)?shù)據(jù)卷和Dockerfile的相關(guān)資料,需要的朋友可以參考下2024-04-04Docker部署tenine實現(xiàn)后端應(yīng)用的高可用與負(fù)載均衡(推薦)
采用Docker部署Tengine和Keepalived,實現(xiàn)了一種適用于小型應(yīng)用場景的高可用負(fù)載均衡解決方案,本方案需要兩臺Ubuntu服務(wù)器、Docker軟件以及三個IP地址,適合需要簡易而可靠的負(fù)載均衡和高可用性的小型應(yīng)用部署,感興趣的朋友跟隨小編一起看看吧2024-09-09使用Docker搭建Apache Kafka環(huán)境的詳細(xì)過程
這篇文章主要介紹了使用Docker搭建Apache Kafka環(huán)境,本文使用Docker技術(shù)創(chuàng)建單個Kafka節(jié)點和Kafka集群環(huán)境,并且使用可視化工具連接服務(wù)查看代理服務(wù)器的配置信息,需要的朋友可以參考下2022-10-10用Docker搭建nextcloud個人網(wǎng)盤教程
大家好,本篇文章主要講的是用Docker搭建nextcloud個人網(wǎng)盤教程,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2021-12-12第一次構(gòu)建、運行、發(fā)布、獲取docker鏡像的步驟詳解
今天小編就為大家分享一篇關(guān)于第一次構(gòu)建、運行、發(fā)布、獲取docker鏡像的步驟詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03