ELK docker 部署

簡介html

ELK由Elasticsearch、Logstash和Kibana三部分組件組成;docker

Elasticsearch是個開源分佈式搜索引擎,它的特色有:分佈式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。tomcat

Logstash是一個徹底開源的工具,它能夠對你的日誌進行收集、分析,並將其存儲供之後使用restful

kibana 是一個開源和免費的工具,它能夠爲 Logstash 和 ElasticSearch 提供的日誌分析友好的 Web 界面,能夠幫助您彙總、分析和搜索重要數據日誌。架構

配合Filebeat使用elasticsearch

基本架構圖分佈式

其中咱們用 Elasticsearch 做爲日誌的存儲和索引平臺;Logstash 依靠強大繁多的插件做爲日誌加工平臺,Kibana 用來從 Elasticsearch 獲取數據,進行數據可視化,定製數據報表;Filebeat 用來放到各個主機中收集指定位置的日誌,將收集到日誌發送到 Logstash;Log4j 直接與 Logstash 鏈接,將日誌直接發送到 Logstash(固然此處也能夠用 Filebeat 收集 tomcat 的日誌)。工具

一、首先安裝docker,這個並不在這裏細敘,並熟悉docker、docker-compose基本命令搜索引擎

二、建立Elasticsearch的docker-compose.yml文件插件

version: '2'
services:
  elasticsearch:
    image: elasticsearch
    container_name: elasticsearch
    restart: always
    network_mode: "bridge"
    ports:
      - "9200:9200" #對外提供服務的 HTTP 端口
      - "9300:9300" #做爲交互的 TCP 端口
    volumes:
      - /本地磁盤目錄:/容器內目錄 #將日誌索引文件的存儲目錄掛載到主機的目錄,防止因容器掛掉活重啓致使歷史日誌文件丟失。

建立完成在文件目錄位置 運行命令  docker-compose up -d  其中 -d 表示後臺編排

三、建立Logstash的docker-compose.yml文件

version: '2'
services:
  logstash:
    image: logstash
    container_name: logstash
    restart: always
    network_mode: "bridge"
    ports:
      - "5044:5044"
      - "4560:4560"
      - "8060:8060"
    volumes:
      - ./conf:/config   #掛載關聯配置文件
      - ./patterns:/tmp/patterns#掛載關聯配置文件
    external_links: #external_links 
      - elasticsearch:elasticsearch
    command: logstash -f /config  #覆蓋容器啓動後默認執行的命令。

其中暴露的端口5044用於接收來着 Filebeat 收集的日誌數據;4560 用於接收來着 Log4j或logback 的日誌數據;8060用於接收來自插件 Logstash-input-http 的日誌數據;

external_links:連接到 docker-compose.yml 外部的容器,甚至 並不是 Compose 管理的容器。參數格式跟 links 相似。

具體功能做用請參考docker命令參考

3.1 在./conf目錄建立如下配置文件

input.conf

未完待續

相關文章
相關標籤/搜索