您好,登錄后才能下訂單哦!
本篇內容主要講解“如何使用Docker搭建ELK日志系統”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何使用Docker搭建ELK日志系統”吧!
以下安裝都是以 ~/ 目錄作為安裝根目錄。
elasticsearch
下載鏡像:
$ sudo docker pull elasticsearch:5.5.0
運行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以上版本會出現jdk的錯誤,我們查看日志
$ 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.
網上找到大概的意思是:
jdk9對elasticsearch不太友好(版本太新),必須使用jdk8,本人使用的是jdk8u152(jdk-8u152-windows-x64.exe)。如果使用jdk9,使用elasticsearch-rtf(v5.1.1),會出現下面的錯誤,請特別注意,elasticsearch6.0的版本則必須使用jdk9,否則官網下載的msi不能安裝成功,原因還沒有去仔細檢查。
所以也是一個很坑爹的問題,所以我干脆直接就安裝v5.5.0穩定版本吧。
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}" } }
運行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"
運行kibana容器:
$ sudo docker run -it -d -p 5601:5601 \ -v ~/kibana:/etc/kibana \ --name kibana kibana:5.5.0
filebeat
filebeat需要部署在需要收集日志的服務器上。
下載鏡像:
$ sudo docker pull docker.elastic.co/beats/filebeat:5.5.0
新建配置文件:
filebeat.prospectors: - type: log paths: - ~/filebeat/logs # 指定需要收集的日志文件的路徑 fields: indexname: xxx # 這里填寫項目名稱,對應index => "%{[fields][indexname]}-%{+yyyy.mm.dd}" output.logstash: hosts: ["172.17.10.114:5044"]
運行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結構流程圖:
到此,相信大家對“如何使用Docker搭建ELK日志系統”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。