主頁(yè) > 知識(shí)庫(kù) > 使用Docker搭建ELK日志系統(tǒng)的方法示例

使用Docker搭建ELK日志系統(tǒng)的方法示例

熱門(mén)標(biāo)簽:美圖手機(jī) 檢查注冊(cè)表項(xiàng) 網(wǎng)站建設(shè) 阿里云 百度競(jìng)價(jià)點(diǎn)擊價(jià)格的計(jì)算公式 使用U盤(pán)裝系統(tǒng) 智能手機(jī) 硅谷的囚徒呼叫中心

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

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)行Logstash容器:

$ 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ě)項(xiàng)目名稱(chē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)流程圖:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:賀州 懷化 山南 煙臺(tái) 湘潭 湖北 黃山 通遼

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《使用Docker搭建ELK日志系統(tǒng)的方法示例》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話(huà)咨詢(xún)

    • 400-1100-266