当前位置:   article > 正文

【ELK】docker-compose搭建ELK单机环境_docker-compose部署单机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
  • 1
  • 2
  • 3
  • 4

编写配置文件

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"]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

logstash配置文件

进入logstash目录,创建logstash_stdout.conf文件,内容如下:

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

output {
	stdout {codec=>rubydebug}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48

启动容器

在文件夹里运行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"
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

验证Kibana

访问http://localhost:5601,显示kibana主界面

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号