Docker安裝部署ELK (Elasticsearch+Kibana+Logstash+Filebeat)

Docker安裝部署ELK (Elasticsearch+Kibana+Logstash+Filebeat)

ELK是由 Elasticsearch、Logstash和Kibana 三部分組件組成驯嘱。

Elasticsearch 是個(gè)開源分布式搜索引擎,它的特點(diǎn)有:分布式舅世,零配置,自動(dòng)發(fā)現(xiàn)走哺,索引自動(dòng)分片坏平,索引副本機(jī)制,restful風(fēng)格接口,多數(shù)據(jù)源马绝,自動(dòng)搜索負(fù)載等庐冯。

Logstash 是一個(gè)完全開源的工具高氮,它可以對(duì)你的日志進(jìn)行收集慧妄、分析顷牌,并將其存儲(chǔ)供以后使用

kibana 是一個(gè)開源和免費(fèi)的工具剪芍,它可以為 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以幫助您匯總窟蓝、分析和搜索重要數(shù)據(jù)日志罪裹。

Filebeat 是用于單用途數(shù)據(jù)托運(yùn)人的平臺(tái)。它們以輕量級(jí)代理的形式安裝运挫,并將來(lái)自成百上千臺(tái)機(jī)器的數(shù)據(jù)發(fā)送到 Logstash 或 Elasticsearch状共。

Docker 鏡像統(tǒng)一從 https://hub.docker.com/ 下載 (安裝時(shí)請(qǐng)使用統(tǒng)一版本)

、Docker 安裝 Elasticsearch

官網(wǎng)鏡像地址:https://hub.docker.com/_/elasticsearch

找到目前最新的(Tags)是 7.8.0

# 下載鏡像 查看鏡像
docker pull elasticsearch:7.8.0
docker images

# 創(chuàng)建自定義的網(wǎng)絡(luò)(用于連接到連接到同一網(wǎng)絡(luò)的其他服務(wù)(例如Kibana))
docker network create my-network 

# 運(yùn)行 elasticsearch
docker run -d --name elasticsearch --net my-network  -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.8.0

# 查看容器狀態(tài)
docker ps

# 檢測(cè) elasticsearch 是否啟動(dòng)成功
curl 127.0.0.1:9200

{
"name": "fa352b46a6b9",
"cluster_name": "docker-cluster",
"cluster_uuid": "48E5S_HZS2yLNiZojbQD6w",
"version": {
"number": "7.8.0",
"build_flavor": "default",
"build_type": "docker",
"build_hash": "757314695644ea9a1dc2fecd26d1a43856725e65",
"build_date": "2020-06-14T19:35:50.234439Z",
"build_snapshot": false,
"lucene_version": "8.5.1",
"minimum_wire_compatibility_version": "6.8.0",
"minimum_index_compatibility_version": "6.0.0-beta1"
},
"tagline": "You Know, for Search"
}
{
name: "fa352b46a6b9",
cluster_name: "docker-cluster",
cluster_uuid: "48E5S_HZS2yLNiZojbQD6w",
version: {
number: "7.8.0",
build_flavor: "default",
build_type: "docker",
build_hash: "757314695644ea9a1dc2fecd26d1a43856725e65",
build_date: "2020-06-14T19:35:50.234439Z",
build_snapshot: false,
lucene_version: "8.5.1",
minimum_wire_compatibility_version: "6.8.0",
minimum_index_compatibility_version: "6.0.0-beta1"
},
tagline: "You Know, for Search"
}

Elasticsearch 安裝啟動(dòng)完成

二谁帕、Docker 安裝 Logstash

官網(wǎng)鏡像地址:https://hub.docker.com/_/logstash

使用同版本鏡像 7.8.0

# 下載鏡像 查看鏡像
docker pull logstash:7.8.0
docker images

我在工作目錄建立一個(gè) docker 目錄 并在里面創(chuàng)建了 logstash 目錄峡继,用來(lái)存放所有配置

創(chuàng)建目錄 /root/docker-root/logstash/config/

創(chuàng)建文件 /root/docker-root/logstash/config/logstash.yml

logstash.yml 文件內(nèi)容

path.config: /root/docker-root/logstash/conf.d/*.conf
path.logs: /root/docker-root/logstash/logs

創(chuàng)建文件 /root/docker-root/logstash/conf.d/test.conf

conf.d/test.conf (文件內(nèi)容)

input {
    beats {
        port => 5044
        codec => "json"
    }
}

output {
  elasticsearch { hosts => ["192.168.0.160:9200"] }
  stdout { codec => rubydebug }
}

#########################
input {
    beats {
    port => 5044
    codec => "json"
}
}

output {
  elasticsearch { hosts => ["elasticsearch:9200"] }
  stdout { codec => rubydebug }
}

啟動(dòng) Logstash

docker run -d --restart=always --log-driver json-file --log-opt max-size=10m --log-opt max-file=2 -p 5044:5044 --name logstash -v /root/docker-root/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml -v /root/docker-root/logstash/conf.d/:/usr/share/logstash/conf.d/ logstash:7.8.0

三、Docker 安裝 Kibana

官網(wǎng)鏡像地址:https://hub.docker.com/_/kibana

使用和 elasticsearch 相同版本鏡像 7.8.0 (不一樣可能會(huì)出現(xiàn)問(wèn)題)

# 下載鏡像 查看鏡像
docker pull kibana:7.8.0
docker images

##創(chuàng)建容器
docker run -d --name kibana --net my-network -p 5601:5601 -e ELASTICSEARCH_HOSTS=http://192.168.0.160:9200  kibana:7.8.0

Kibana 安裝啟動(dòng)完成

四匈挖、Docker 安裝 Filebeat

官網(wǎng)鏡像地址:https://hub.docker.com/_/filebeat

使用同版本鏡像 7.8.0

# 下載鏡像 查看鏡像
docker pull store/elastic/filebeat:7.8.0
docker images
# 下載默認(rèn)官方配置文件 (暫時(shí)在當(dāng)前目錄創(chuàng)建一個(gè) filebeat 目錄 用來(lái)放 filebeat 配置文件)
curl -L -O https://raw.githubusercontent.com/elastic/beats/7.1/deploy/docker/filebeat.docker.yml

# 打開配置文件
vim filebeat.docker.yml
img
# 增加下面的配置 (收集 .log 數(shù)據(jù) 把數(shù)據(jù)發(fā)送到當(dāng)前網(wǎng)絡(luò)5044端口 (logstash 端口) )
# 這個(gè)地方的 .log 要保證有幾條測(cè)試數(shù)據(jù)
filebeat.inputs:
- type: log
  enabled: true
  paths:
  - /var/log/nginx/*.log

output.logstash:
  hosts: ['{ip}:5044']
 
# 運(yùn)行Filebeat

# 請(qǐng)更改下面兩個(gè)路徑
{nginx-path} = 本地的日志文件目錄(映射到容器中 作為數(shù)據(jù)源)
{path} = Filebeat配置文件路徑 
{ip} = elasticsearch 地址
docker run --name filebeat --user=root -d --net somenetwork --volume="{nginx-path}:/var/log/nginx/" --volume="{path}/filebeat.docker.yml:/usr/share/filebeat/filebeat.yml:ro" --volume="/var/lib/docker/containers:/var/lib/docker/containers:ro" --volume="/var/run/docker.sock:/var/run/docker.sock:ro" store/elastic/filebeat:7.1.1
 

現(xiàn)在去 Kibana 查看數(shù)據(jù)碾牌,已經(jīng)有數(shù)據(jù)了

Kibana 報(bào)錯(cuò)解決辦法

在瀏覽器中輸入 http://192.168.0.160:5601/ 頁(yè)面報(bào)錯(cuò) Kibana server is not ready yet

啟動(dòng)后報(bào)錯(cuò)

Kibana server is not ready yet

打印日志,報(bào)錯(cuò):

#打印日志命令
[root@localhost ~]# docker logs kibana
{"type":"log","@timestamp":"2020-06-04T08:25:57Z","tags":["warning","elasticsearch","admin"],"pid":6,"message":"Unable to revive connection: http://172.17.0.2:9200/"}
{"type":"log","@timestamp":"2020-06-04T08:25:57Z","tags":["warning","elasticsearch","admin"],"pid":6,"message":"No living connections"}

進(jìn)入kibana容器中

docker exec -it kibana /bin/bash
bash-4.2$ ping 172.17.0.2    #沒(méi)有問(wèn)題儡循,能ping通
...
bash-4.2$ curl http://120.79.43.44:9200
curl: (7) Failed connect to 120.79.43.44:9200; No route to host

問(wèn)題就出在這里舶吗!容器之間無(wú)法進(jìn)行通信,猜測(cè)是防火墻的問(wèn)題择膝,再單獨(dú)搜索這個(gè)問(wèn)題誓琼,找到了解決的方案

解決辦法如下:

#配置docker0服務(wù)到受信任連接
[root@localhost ~]# nmcli connection modify docker0 connection.zone trusted
#停止NetworkManager(檢測(cè)網(wǎng)絡(luò)、自動(dòng)連接網(wǎng)絡(luò)的程序)服務(wù)
[root@localhost ~]# systemctl stop NetworkManager.service
#修改docker網(wǎng)絡(luò)接口為內(nèi)部區(qū)域(永久)
[root@localhost ~]# firewall-cmd --permanent --zone=trusted --change-interface=docker0
success
#啟動(dòng)NetworkManager(檢測(cè)網(wǎng)絡(luò)肴捉、自動(dòng)連接網(wǎng)絡(luò)的程序)服務(wù)
[root@localhost ~]# systemctl start NetworkManager.service
#配置docker0服務(wù)到受信任連接
[root@localhost ~]# nmcli connection modify docker0 connection.zone trusted
#重啟docker服務(wù)
[root@localhost ~]# systemctl restart docker.service

參考:

https://www.cnblogs.com/fbtop/p/11005469.html
https://www.cnblogs.com/hackyo/p/9951684.html
https://www.cnblogs.com/linjiqin/p/12103645.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末腹侣,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子齿穗,更是在濱河造成了極大的恐慌傲隶,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缤灵,死亡現(xiàn)場(chǎng)離奇詭異伦籍,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)腮出,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門帖鸦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人胚嘲,你說(shuō)我怎么就攤上這事作儿。” “怎么了馋劈?”我有些...
    開封第一講書人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵攻锰,是天一觀的道長(zhǎng)晾嘶。 經(jīng)常有香客問(wèn)我,道長(zhǎng)娶吞,這世上最難降的妖魔是什么垒迂? 我笑而不...
    開封第一講書人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮妒蛇,結(jié)果婚禮上机断,老公的妹妹穿的比我還像新娘。我一直安慰自己绣夺,他們只是感情好吏奸,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著陶耍,像睡著了一般奋蔚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上烈钞,一...
    開封第一講書人閱讀 51,521評(píng)論 1 304
  • 那天泊碑,我揣著相機(jī)與錄音,去河邊找鬼棵磷。 笑死蛾狗,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的仪媒。 我是一名探鬼主播沉桌,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼算吩!你這毒婦竟也來(lái)了留凭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤偎巢,失蹤者是張志新(化名)和其女友劉穎蔼夜,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體压昼,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡求冷,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了窍霞。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片匠题。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖但金,靈堂內(nèi)的尸體忽然破棺而出韭山,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布钱磅,位于F島的核電站梦裂,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏盖淡。R本人自食惡果不足惜年柠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望禁舷。 院中可真熱鬧彪杉,春花似錦毅往、人聲如沸牵咙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)洁桌。三九已至,卻和暖如春侯嘀,著一層夾襖步出監(jiān)牢的瞬間另凌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工戒幔, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吠谢,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓诗茎,卻偏偏與公主長(zhǎng)得像工坊,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子敢订,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355