溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何使用Docker搭建ELK日志系統(tǒng)

發(fā)布時(shí)間:2022-03-24 17:17:12 來(lái)源:億速云 閱讀:284 作者:iii 欄目:web開(kāi)發(fā)

本篇內(nèi)容主要講解“如何使用Docker搭建ELK日志系統(tǒng)”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“如何使用Docker搭建ELK日志系統(tǒng)”吧!

以下安裝都是以 ~/ 目錄作為安裝根目錄。

elasticsearch

下載鏡像:

$ sudo docker pull elasticsearch:5.5.0

運(yùn)行elasticsearch容器:

$ sudo docker run -it -d -p 9200:9200 -p 9300:9300 \
-v ~/elasticsearch/data:/usr/share/elasticsearch/data \
--name myes elasticsearch:5.5.0

特別注意的是如果使用v6以上版本會(huì)出現(xiàn)jdk的錯(cuò)誤,我們查看日志

$ docker logs -f myes

查看日志:

openjdk 64-bit server vm warning: option useconcmarksweepgc was deprecated in version 9.0 and will likely be removed in a future release.

網(wǎng)上找到大概的意思是:

jdk9對(duì)elasticsearch不太友好(版本太新),必須使用jdk8,本人使用的是jdk8u152(jdk-8u152-windows-x64.exe)。如果使用jdk9,使用elasticsearch-rtf(v5.1.1),會(huì)出現(xiàn)下面的錯(cuò)誤,請(qǐng)?zhí)貏e注意,elasticsearch6.0的版本則必須使用jdk9,否則官網(wǎng)下載的msi不能安裝成功,原因還沒(méi)有去仔細(xì)檢查。

所以也是一個(gè)很坑爹的問(wèn)題,所以我干脆直接就安裝v5.5.0穩(wěn)定版本吧。

logstash

下載鏡像:

$ sudo docker pull logstash:5.5.0

新建配置文件:

$ mkdir ~/logstash/conf.d && cd logstash/conf.d
$ vim logstash.conf

logstash.conf:

input {

 beats {
  port => 5044 # 此端口需要與 filebeat.yml 中的端口相同
 }

 file {
  path => "/data/logs"
  # start_position => "beginning"
 }
}

filter {
 #grok {
 # match => { "message" => "%{combinedapachelog}" }
 #}
 #date {
 # match => ["timestamp", "dd/mmm/yyyy:hh:mm:ss z"]
 #}

 grok {

  patterns_dir => "/etc/logstash/conf.d/patterns"
  match => {"message" => "%{timestamp_iso8601:time}\s%{myself:msgid}%{myself:method}%{mydata:data}%{myself:userinfo}\s%{loglevel:level}\s%{myself:thread}%{myself:application}%{myself:ip}"}
}
date {
   #match => [ "time", "yyyy-mm-dd hh:mm:ss,sss" ]
   match => [ "time", "iso8601" ]
   target => "@timestamp"
   timezone => "asia/phnom_penh"
 }

}

output {

 stdout {
  codec => rubydebug
 }

 elasticsearch {
  action => "index"
  hosts => ["172.17.10.114:9200"]
  index => "%{[fields][indexname]}-%{+yyyy.mm.dd}"
 }
}

運(yùn)行l(wèi)ogstash容器:

$ sudo docker run -it -d -p 5044:5044 \
-v ~/logstash/conf.d:/etc/logstash/conf.d \
-v ~/logstash/data/logs:/data/logs \
--name logstash logstash:5.5.0 \
-f /etc/logstash/conf.d/logstash.conf

kibana

下載鏡像:

$ sudo docker pull kibana:5.5.0

新建配置文件:

$ mkdir ~/kibana && cd ~/kibana
$ vim kibana.yml

kibana.yml:

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "http://172.17.10.114:9200"

運(yùn)行kibana容器:

$ sudo docker run -it -d -p 5601:5601 \
-v ~/kibana:/etc/kibana \
--name kibana kibana:5.5.0

filebeat

filebeat需要部署在需要收集日志的服務(wù)器上。

下載鏡像:

$ sudo docker pull docker.elastic.co/beats/filebeat:5.5.0

新建配置文件:

filebeat.prospectors:
- type: log
  paths:
   - ~/filebeat/logs # 指定需要收集的日志文件的路徑
fields:
  indexname: xxx # 這里填寫項(xiàng)目名稱,對(duì)應(yīng)index => "%{[fields][indexname]}-%{+yyyy.mm.dd}"
output.logstash:
 hosts: ["172.17.10.114:5044"]

運(yùn)行filebeat容器:

$ sudo docker run -it -d \
-v ~/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml \
--name filebeat docker.elastic.co/beats/filebeat:5.5.0

附上一張elk結(jié)構(gòu)流程圖:

如何使用Docker搭建ELK日志系統(tǒng)

到此,相信大家對(duì)“如何使用Docker搭建ELK日志系統(tǒng)”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI