濮阳杆衣贸易有限公司

主頁 > 知識庫 > 基于Docker搭建ELK 日志系統(tǒng)的方法

基于Docker搭建ELK 日志系統(tǒng)的方法

熱門標(biāo)簽:10086外包用的什么外呼系統(tǒng) 宿城區(qū)電話機器人找哪家 怎么找到?jīng)]有地圖標(biāo)注的店 麗江真人語音電話外呼系統(tǒng) 福州企業(yè)電銷機器人排名 400電話辦理介紹信 上海申請高400開頭的電話 打400電話怎么辦理收費 河南防封號電銷機器人是什么

背景需求:

    業(yè)務(wù)發(fā)展越來越龐大,服務(wù)器越來越多 各種訪問日志、應(yīng)用日志、錯誤日志量越來越多,導(dǎo)致運維人員無法很好的去管理日志 開發(fā)人員排查問題,需要到服務(wù)器上查日志,不方便 運營人員需要一些數(shù)據(jù),需要我們運維到服務(wù)器上分析日志。

ELK介紹:

ELK是三個開源軟件的縮寫,分別為:Elasticsearch 、 Logstash以及Kibana , 它們都是開源軟件。 目前由于原本的ELK Stack成員中加入了 Beats 工具所以已改名為Elastic Stack。 Beats,它是一個輕量級的日志收集處理工具(Agent),占用資源少,適合于在各個服務(wù)器上搜集日志后傳輸給Logstash,官方也推薦此工具。

搭建步驟:

經(jīng)過上述描述,大家也應(yīng)該稍微有點了解了,想要搭建這個平臺至少是需要3/4個軟件的(可以沒有filebeat)。

  • kibana 用于展示
  • elasticsearch 用于檢索
  • logstash 用于過濾
  • filebeat 用于收集日志

本篇文章假定你已經(jīng)有了docker環(huán)境,并且有基本的docker使用經(jīng)驗

拉取鏡像(統(tǒng)一版本可以避免很多坑):

docker pull kibana:6.8.2
docker pull elasticsearch:6.8.2
docker pull mobz/elasticsearch-head:5 # es的一個插件
docker pull logstash:6.8.2
docker pull docker.elastic.co/beats/filebeat:6.8.2 # 很慢 可以嘗試設(shè)置代理或者更改docker鏡像源

Docker 設(shè)置代理在linux中可以使用ClashX 訂閱url,然后docker 連到代理。有桌面的可以直接更改,沒有的也可以創(chuàng)建配置文件進行更改 ⇒ 傳送門

另外把docker的內(nèi)存給多一點兒,避免到時候卡頓。

構(gòu)建ES:

docker run -d -p 9200:9200 -p 9300:9300 --name elasticsearch -e "discovery.type=single-node" elasticsearch:6.8.2

瀏覽器訪問(curl也行):localhost:9200 出現(xiàn)下面的結(jié)果則說明啟動成功:

若出現(xiàn)錯誤,請查錯誤日志。

創(chuàng)建ES-HEAD:

docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head:5 

同樣訪問localhost:9100,看到下面的結(jié)果即為成功:

在es-head連接es可能是連不上的,是因為es沒有開啟跨域,進入es容器內(nèi)部 找到config文件下的elasticsearch.yml,在此文件中增加:

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

然后重啟es后es-head就可以連接上es。

開啟Kibana:

docker run -d -p 5601:5601 --link elasticsearch -e ELASTICSEARCH_URL=http://elasticsearch:9200 kibana:6.8.2

這里就是http://elasticsearch:9200,不要更改,前面使用了–link,會在kibana容器hosts文件中加入elasticsearch ip地址,這樣我們就直接通過定義的name來訪問es服務(wù)了。
容器啟動成功后,es-head里面應(yīng)該就能看到下面的信息:

訪問localhost:5601會出現(xiàn)下面的結(jié)果:

至此我們的kibana已經(jīng)成功跑起來了,es也已經(jīng)跑起來了,接下來就是收集日志的服務(wù)了。

構(gòu)建filebeat 和 logstash:

首先聲明,這兩兄弟需要點兒配置文件,我們想整個文件夾統(tǒng)一存放這兩份配置文件:

mkdir elktest  # 在主目錄下 即:~/elktest 路徑
cd elktest
touch filebeat.yml
touch logstash.conf

添加配置文件

vim filebeat.yml
filebeat.prospectors:
- paths:
    - /home/elk/logs/user/a.log
  multiline:
      pattern: ^\d{4}
      negate: true
      match: after
  fields:
    doc_type: user
- paths:
    - /home/elk/logs/service/a.log
  multiline:
      pattern: ^\d{4}
      negate: true
      match: after
  fields:
    doc_type: service
output.logstash: # 輸出地址
  hosts: ["logstash:5044"]
vim logstash.conf
input {
  beats {
    port => "5044"
  }
}
filter {
  json {
    source => "message"
  }
}

output {
  stdout { codec => rubydebug }
  elasticsearch {
        hosts => [ "elasticsearch:9200" ]
        index => "%{[fields][doc_type]}-%{+YYYY.MM.dd}"
    }
}

當(dāng)前你應(yīng)該還在elktest目錄下,由于我們沒有日志來源,所以本片的方式是手動創(chuàng)建日志,建立一個日志文件夾:

mkdir logdir

自己構(gòu)建一些日志,隨便寫什么,文件及文件夾名稱不要改動,已經(jīng)在配置文件中對應(yīng)好了,構(gòu)建完成之后你的目錄結(jié)構(gòu)應(yīng)該長這個樣子:

創(chuàng)建容器:

docker run -it --name logstash --link elasticsearch -d -p 5044:5044 -v ~/elktest/logstash.conf:/usr/share/logstash/pipeline/logstash.conf logstash:6.8.2

docker run --name filebeat --link logstash -d -v ~/elktest/filebeat.yml:/usr/share/filebeat/filebeat.yml -v ~/elktest/logdir/user/:/home/elk/logs/user/ -v ~/elktest/logdir/service/:/home/elk/logs/service/ docker.elastic.co/beats/filebeat:6.8.2

此時你的es-head應(yīng)該長這個樣子:

如果不是這個樣子,可以查看容器是否運行,是否有錯誤日志,另外也可以到logstash容器中ping elasticsearch,filebeat容器中ping logstash,檢查路徑是否有問題。

Kibana顯示: 創(chuàng)建索引向:

創(chuàng)建完成后去查看,添加自己想要查看的字段,內(nèi)容在message里(剛好就是我們在a.log中的內(nèi)容):

到此為止,我們的elk已經(jīng)搭建完成了,成功搭建的小伙伴晚飯給自己加個雞腿?。。?!

以上就是基于Docker搭建ELK 日志系統(tǒng)的方法的詳細內(nèi)容,更多關(guān)于Docker搭建ELK日志系統(tǒng)的資料請關(guān)注腳本之家其它相關(guān)文章!

標(biāo)簽:隴南 遵義 連云港 運城 荊門 朝陽 面試通知 雞西

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《基于Docker搭建ELK 日志系統(tǒng)的方法》,本文關(guān)鍵詞  基于,Docker,搭建,ELK,日志,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《基于Docker搭建ELK 日志系統(tǒng)的方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于基于Docker搭建ELK 日志系統(tǒng)的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    岳阳县| 永登县| 阿坝县| 静乐县| 休宁县| 阳谷县| 瓮安县| 咸阳市| 宜宾县| 泗阳县| 榆林市| 乐陵市| 道真| 凤庆县| 天镇县| 潮安县| 榆林市| 石狮市| 浦北县| 康马县| 措勤县| 车致| 从化市| 江达县| 绿春县| 巴中市| 三台县| 云和县| 永嘉县| 呼伦贝尔市| 泉州市| 海伦市| 沁水县| 汉中市| 普格县| 梁山县| 岳普湖县| 英山县| 泸水县| 新巴尔虎右旗| 永胜县|