中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Docker中搭建ELK 日志系統

發布時間:2021-05-24 15:19:11 來源:億速云 閱讀:365 作者:Leah 欄目:開發技術

怎么在Docker中搭建ELK 日志系統?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

ELK介紹:

怎么在Docker中搭建ELK 日志系統

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

怎么在Docker中搭建ELK 日志系統

搭建步驟:

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

  • kibana 用于展示

  • elasticsearch 用于檢索

  • logstash 用于過濾

  • filebeat 用于收集日志

本篇文章假定你已經有了docker環境,并且有基本的docker使用經驗

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

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 # 很慢 可以嘗試設置代理或者更改docker鏡像源

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

怎么在Docker中搭建ELK 日志系統

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


構建ES:

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

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

怎么在Docker中搭建ELK 日志系統

若出現錯誤,請查錯誤日志。

創建ES-HEAD:

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

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

怎么在Docker中搭建ELK 日志系統

在es-head連接es可能是連不上的,是因為es沒有開啟跨域,進入es容器內部 找到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服務了。
容器啟動成功后,es-head里面應該就能看到下面的信息:

怎么在Docker中搭建ELK 日志系統

訪問localhost:5601會出現下面的結果:

怎么在Docker中搭建ELK 日志系統

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

構建filebeat 和 logstash:

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

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}"
    }
}

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

mkdir logdir

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

怎么在Docker中搭建ELK 日志系統

創建容器:

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應該長這個樣子:

怎么在Docker中搭建ELK 日志系統

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

Kibana顯示: 創建索引向:

怎么在Docker中搭建ELK 日志系統

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

怎么在Docker中搭建ELK 日志系統

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

滨州市| 额尔古纳市| 车致| 临夏市| 大埔县| 宜黄县| 龙口市| 庆城县| 精河县| 道真| 渭南市| 纳雍县| 华坪县| 九龙坡区| 湖南省| 朔州市| 武定县| 社旗县| 将乐县| 龙江县| 达孜县| 大埔区| 中山市| 隆子县| 凌海市| 中牟县| 广汉市| 尼木县| 阿拉尔市| 沭阳县| 新野县| 苍梧县| 大方县| 石棉县| 龙川县| 绥江县| 浦北县| 枣阳市| 新沂市| 乌拉特中旗| 五峰|