【ELK】docker-compose搭建ELK單機環境


ELK簡介

ELK主要由ElasticSearch、Logstash和Kibana三個開源工具組成,還有其他專門由於收集數據的輕量型數據采集器Beats。

Elasticsearch :分布式搜索引擎。具有高可伸縮、高可靠、易管理等特點。可以用於全文檢索、結構化檢索和分析,並能將這三者結合起來。Elasticsearch 是用Java 基於 Lucene 開發,現在使用最廣的開源搜索引擎之一,Wikipedia 、StackOverflow、Github 等都基於它來構建自己的搜索引擎。

Logstash :數據收集處理引擎。支持動態的從各種數據源搜集數據,並對數據進行過濾、分析、豐富、統一格式等操作,然后存儲以供后續使用。

Kibana :可視化化平台。它能夠搜索、展示存儲在 Elasticsearch 中索引數據。使用它可以很方便的用圖表、表格、地圖展示和分析數據。

Filebeat:輕量級數據收集引擎。相對於Logstash所占用的系統資源來說,Filebeat 所占用的系統資源幾乎是微乎及微。它是基於原先 Logstash-fowarder 的源碼改造出來。

版本

Elasticsearch、Logstash、Kibana、Filebeat安裝的版本號必須全部一致,不然會出現kibana無法顯示web頁面。

編寫docker-compose文件

准備工作:

  1. 創建elk目錄,並在elk目錄下創建四個子文件夾

    • es
    • logstash
    • kibana
    • filebeat
  2. 安裝docker及docker-compose

    安裝方法網上自行搜索,本文不做介紹

  3. 分別拉取所需鏡像,命令如下

docker pull elasticsearch:7.5.0
docker pull logstash:7.5.0
docker pull kibana:7.5.0
docker pull elastic/filebeat:7.5.0

編寫配置文件

filebeat配置文件

進入filebeat目錄,創建filebeat.yml文件,內容如下:

filebeat.config:
  modules:
    path: ${path.config}/modules.d/*.yml
    reload.enabled: false
processors:
- add_cloud_metadata: ~

filebeat.inputs:
- type: log
  paths: 
   -/*.log
output.logstash:
  hosts: ["logstash:5044"]

logstash配置文件

進入logstash目錄,創建logstash_stdout.conf文件,內容如下:

input {
	beats {
		port=>5044
		host=>"0.0.0.0"
	}
}

output {
	stdout {codec=>rubydebug}
}

yml文件

進入到elk文件夾,創建docker-compose.yml文件,文件內容如下

version: "3.0"
services:
  elasticsearch:
    image: elasticsearch:7.5.0
    environment:
      - "discovery.type=single-node"
    volumes:
      - ./es/data:/usr/share/elasticsearch/data
      - ./es/plugins:/usr/share/elasticsearch/plugins
    container_name: es
    restart: always
    ports:
      - "9200:9200"
      - "9300:9300"
    networks:
      - elk
  filebeat:
    image: elastic/filebeat:7.5.0
    volumes:
     - type: bind
       source: "./filebeat/test.log"
       target: "/test.log"
     - type: bind
       source: "./filebeat/filebeat.yml"
       target: "/usr/share/filebeat/filebeat.yml"
    networks:
      - "elk"
    depends_on:
      - "logstash"
  logstash:
    image: logstash:7.5.0
    container_name: logstash
    volumes:
      - type: bind
        source: "./logstash/logstash_stdout.conf"
        target: "/usr/share/logstash/pipeline/logstash.conf"
    networks:
      - "elk"
  kibana:
    image: kibana:7.5.0
    ports:
      - "5601:5601"
    networks: 
      - "elk"

networks:
  elk:
    driver: bridge

啟動容器

在文件夾里運行docker-compose up -d,運行完成后訪問:http://localhost:9200 ,顯示如下頁面表示安裝完成

{
  "name" : "e6c6ab6978c3",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "EmFmVBwBQzqHCE3xtDaRYA",
  "version" : {
    "number" : "7.5.0",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "e9ccaed468e2fac2275a3761849cbee64b39519f",
    "build_date" : "2019-11-26T01:06:52.518245Z",
    "build_snapshot" : false,
    "lucene_version" : "8.3.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

驗證Kibana

訪問http://localhost:5601,顯示kibana主界面


免責聲明!

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



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