使用Docker搭建ElasticSearch+Logstash+Kibana環(huán)境

最近在做 Spring Cloud 相關(guān)系列框架的搭建汹碱,在做到整合微服務(wù)跟蹤-Sleuth后廉赔,項目添加了Sleuth后已經(jīng)能夠正常的輸出跟蹤信息日志芋浮,接下來要對整個日志進(jìn)行分析處理招狸,這里選取使用配合ELK來做婿滓,首先需要搭建整個ELK環(huán)境甜孤。

ELK介紹

ELK (官網(wǎng))其實是三個不同的內(nèi)容协饲,一般配合一起使用。分別是:

  • ElasticSearch
  • Logstash
  • Kibana

具體的介紹可以看官網(wǎng)的每個產(chǎn)品介紹

Windows 環(huán)境搭建

可以參考:https://blog.csdn.net/pilihaotian/article/details/52452010 缴川,基本上比較詳細(xì)了茉稠,但是也可以看出windows安裝比較繁瑣,而且還會耗費(fèi)機(jī)器本身資源把夸,本文介紹使用Docker安裝搭建而线。

Docker 環(huán)境搭建

ELK對應(yīng)的有很多版本,本文均使用最新版本

安裝 elasticsearch

拉取鏡像

    docker pull elasticsearch

啟動容器

docker run -d -p 9200:9200 --name leon_elasticsearch elasticsearch

此時訪問地址:<u>http://192.168.9.151:9200/</u>恋日,看到如下效果說明啟動成功:

1.jpg

安裝插件 elasticsearch-head

一般情況下膀篮,安裝插件只需要執(zhí)行命令:

elasticsearch-plugin install mobz/elasticsearch-head

那么我們現(xiàn)在進(jìn)入到容器中對應(yīng)的目錄:/usr/share/elasticsearch/bin/,然后執(zhí)行上述命令岂膳,但是發(fā)現(xiàn)報錯:


查閱相關(guān)文檔得知以下信息:

– for Elasticsearch 5.x:
site plugins are not supported. Run elasticsearch-head as a standalone server

也就是說5.X以上的版本誓竿,需要單獨(dú)啟動 elasticsearch-head 服務(wù)。
那么單獨(dú)啟動運(yùn)行插件容器:

docker run -d -p 9100:9100 --name leon_elasticsearch-head mobz/elasticsearch-head:5

注意后面跟的版本5谈截,一定要對應(yīng)自己的版本筷屡。

容器啟動后,訪問地址:</font><u>http://192.168.9.151:9100/</u>

2.jpg

此時代表插件服務(wù)已經(jīng)啟動簸喂,但是點擊連接毙死,發(fā)現(xiàn)無法連接elasticsearch服務(wù),需要修改配置文件娘赴,文件地址為容器中的:/usr/share/elasticsearch/config/elasticsearch.yml

我們進(jìn)入容器规哲,發(fā)現(xiàn)無法使用VI命令修改文件,這個時候可以安裝VI工具然后修改文件诽表,或者使用另外一種粗暴的方法唉锌,在外面修改然后覆蓋文件。這里因為安裝VI總是出錯竿奏,所以使用第二種方式袄简。

首先將容器中的配置文件導(dǎo)出來:

docker cp leon_elasticsearch:/usr/share/elasticsearch/config/elasticsearch.yml /home/px2/elasticsearch.yml

在文件中添加以下內(nèi)容:

http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization

然后在替換容器中的文件:

docker cp /home/px2/elasticsearch.yml leon_elasticsearch:/usr/share/elasticsearch/config/elasticsearch.yml

重啟容器,然后重新訪問:http://localhost:9100/ 就可以連接上了(此時還沒有數(shù)據(jù))

3.jpg

注意:如果還是不能連接泛啸,可以訪問地址來連接:http://localhost:9100/?auth_user=elastic&auth_password=changeme

安裝logstash

這里有個比較坑的問題绿语,使用Docker官方Hub里的鏡像 docker pull logstash 啟動的容器總是會自動停掉,無法運(yùn)行,后來選擇使用官網(wǎng)中的鏡像地址:

docker run --name leon_logstash docker.elastic.co/logstash/logstash:6.2.4

修改配置文件,進(jìn)入容器:

docker exec -it leon_logstash /bin/bash

進(jìn)入目錄cd config
打開并修改配置文件 vi logstash.yml:

http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.url: http://192.168.9.151:9200
xpack.monitoring.elasticsearch.username: elastic
xpack.monitoring.elasticsearch.password: changeme

安裝kibana

拉取鏡像

docker pull kibana

啟動容器

docker run --name leon_kibana -p 5601:5601 -d -e ELASTICSEARCH_URL=http://192.168.9.151:9200 kibana

配置

訪問地址:http://192.168.9.151:5601 吕粹,看到如下效果

4.jpg

此時報錯中間紅色部分种柑,無法進(jìn)行創(chuàng)建,找到資料得知:

5.jpg

看官網(wǎng)的解釋說這是因為初次設(shè)置的時候logstash沒有加載到數(shù)據(jù)導(dǎo)致的匹耕。所以先要保證logstash能夠加載到數(shù)據(jù)聚请。

配置數(shù)據(jù)

進(jìn)入到容器中:

docker exec -it leon_logstash /bin/bash

然后進(jìn)入如下目錄:
cd pipeline/
打開配置文件:vi logstash.conf

修改內(nèi)容如下:

input {
        file {
            codec=> json
                path => "/usr/local/*.json"
        }
}
filter {
  #定義數(shù)據(jù)的格式
  grok {
    match => { "message" => "%{DATA:timestamp}\|%{IP:serverIp}\|%{IP:clientIp}\|%{DATA:logSource}\|%{DATA:userId}\|%{DATA:reqUrl}\|%{DATA:reqUri}\|%{DATA:refer}\|%{DATA:device}\|%{DATA:textDuring}\|%{DATA:duringTime:int}\|\|"}
  }
}
output {
   elasticsearch{
     hosts=> "http://192.168.9.151:9200"
   }
} 

其中指定了輸出地址:elasticsearch的地址,而且還指定了內(nèi)容輸入地址:/usr/local/*.json稳其,需要在usr/local下有json格式的數(shù)據(jù)驶赏,接下來將項目生成的json格式的日志文件上傳到該目錄。


docker cp /home/px2/logs/shop-user-consumer.json leon_logstash:/usr/local/shop-user-consumer.json
docker cp /home/px2/logs/shop-user-provider.json leon_logstash:/usr/local/shop-user-provider.json

然后重啟logstash容器既鞠,在重新訪問頁面煤傍,可以看到可以進(jìn)行create了。

6.jpg

點擊create創(chuàng)建成功后嘱蛋,點擊Discovery,選擇時間為一年內(nèi)蚯姆,可以看到之前的數(shù)據(jù):

7.jpg

并且訪問9100地址也能加載出節(jié)點信息了:

8.png

至此,整個ELK環(huán)境就搭建起來了浑槽。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蒋失,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子桐玻,更是在濱河造成了極大的恐慌,老刑警劉巖荆萤,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件镊靴,死亡現(xiàn)場離奇詭異,居然都是意外死亡链韭,警方通過查閱死者的電腦和手機(jī)偏竟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來敞峭,“玉大人踊谋,你說我怎么就攤上這事⌒铮” “怎么了殖蚕?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長沉迹。 經(jīng)常有香客問我睦疫,道長,這世上最難降的妖魔是什么鞭呕? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任蛤育,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘瓦糕。我一直安慰自己底洗,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布咕娄。 她就那樣靜靜地躺著枷恕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪谭胚。 梳的紋絲不亂的頭發(fā)上徐块,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天,我揣著相機(jī)與錄音灾而,去河邊找鬼胡控。 笑死,一個胖子當(dāng)著我的面吹牛旁趟,可吹牛的內(nèi)容都是我干的昼激。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼锡搜,長吁一口氣:“原來是場噩夢啊……” “哼橙困!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起耕餐,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤凡傅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后肠缔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體夏跷,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年明未,在試婚紗的時候發(fā)現(xiàn)自己被綠了槽华。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡趟妥,死狀恐怖猫态,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情披摄,我是刑警寧澤亲雪,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站行疏,受9級特大地震影響匆光,放射性物質(zhì)發(fā)生泄漏侯勉。R本人自食惡果不足惜弄痹,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一醉拓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧顽照,春花似錦框全、人聲如沸哑诊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽续镇。三九已至美澳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間摸航,已是汗流浹背制跟。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留酱虎,地道東北人雨膨。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像读串,于是被迫代替她去往敵國和親聊记。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容