ubuntu18 docker中部署ELK


ELK是ElasticSearch、Logstash、Kibana的簡稱,一般用於日志系統,從日志收集,日志轉儲,日志展示等入手,用以提供簡潔高效的日志處理機制。

 鑒於沒有額外的機器,這里就用docker來簡單模擬下一個簡單ELK系統的部署和使用。

搭建ElasticSearch

新建elasticsearch目錄,並再其下新建文件config/elasticsearch.yml,文件內容如下:

network.host: 0.0.0.0
xpack:
  ml.enabled: false
  monitoring.enabled: false
  security.enabled: false
  watcher.enabled: false

在ubuntu 主機配置vm.max_map_count參數(永久生效):

vi /etc/sysctl.conf
#修改vm.max_map_count = 262144
sysctl -p

(一次生效):sysctl -w vm.max_map_count=262144

2.在elasticsearch 文件夾下執行

docker pull docker.elastic.co/elasticsearch/elasticsearch:6.4.3
docker run --rm -it -p 9200:9200 -p 9300:9300 -v "$PWD"/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml docker.elastic.co/elasticsearch/elasticsearch:6.4.3

同時其他配置文件也可以寫在config文件下,同時映射進容器中;至此elasticsearch安裝完成。

二、安裝Logstash

新建logstash文件夾,並在其下新建config、pipeline兩個文件夾

其中config文件夾下有文件logstash.yml、pipelines.yml。內容分別為:

logstash.yml:

config:
  reload:
    automatic: true
    interval: 3s
xpack:
  management.enabled: false
  monitoring.enabled: false

pipelines.yml:

- pipeline.id: test
  path.config: "/usr/share/logstash/pipeline/logstash-test.conf"

然后pipeline文件夾下有文件logstash-test.conf,內容為(192.168.100.3 是我ubuntu的主機ip):

input {
    file {
        path => ["/usr/share/logstash/pipeline/logs/test.log"]
        start_position => "beginning"
    }
}
 
filter {
  mutate {
    gsub => ["message", "\r", ""]
  }
  dissect {
    mapping => {"message" => "%{date} %{+date} [%{task} %{+task}] [%{type}] %{class} - %{info}"}
  }
}
 
output {
    elasticsearch { hosts => ["192.168.100.3:9200"] }
    stdout { codec => rubydebug }
}

最后在logstash文件夾下運行命令:

docker pull docker.elastic.co/logstash/logstash:6.4.3
docker run --rm -it -v "$PWD"/pipeline/:/usr/share/logstash/pipeline/ -v "$PWD"/config/:/usr/share/logstash/config/ docker.elastic.co/logstash/logstash:6.4.3

在輸入中:輸入的日志文件使用/usr/share/logstash/pipeline/logs/test.log,只需將日志文件放入pipeline/logs/下,或者手動映射進容器即可。另外輸入文件路徑支持模糊匹配。

在過濾器中定義了去掉消息中的換號符號,以及定義了消息格式。這里的消息格式自定義方法參閱:https://www.elastic.co/guide/en/logstash/6.4/filter-plugins.htm

安裝kibana

新建kibana文件夾,並在其下新建config/kibana.yml文件,內容如下:

server.host: "0.0.0.0"
elasticsearch.url: http://192.168.100.3:9200
xpack:
  apm.ui.enabled: false
  graph.enabled: false
  ml.enabled: false
  monitoring.enabled: false
  reporting.enabled: false
  security.enabled: false
  grokdebugger.enabled: false
  searchprofiler.enabled: false

最后在kibana文件夾下運行命令:

docker pull docker.elastic.co/kibana/kibana:6.4.3
docker run --rm -it -p 5601:5601 -v "$PWD"/config/kibana.yml:/usr/share/kibana/config/kibana.yml docker.elastic.co/kibana/kibana:6.4.3

運行結果:

當然安裝也可以用 caas/docker-elk 一鍵搞定

參考文章 :

twtrubiks/docker-elk-tutorial

https://www.cnblogs.com/hackyo/p/9951684.html

https://www.jianshu.com/p/b81e1b7c0efb

http://chenzhijun.me/2017/12/27/elk-docker/

https://blog.csdn.net/Marksinoberg/article/details/87434155


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM