• 【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主界面

    专注于互联网、物联网技术架构及管理 https://www.cnblogs.com/csts
  • 相关阅读:
    PHP | 运算符优先级
    Docker配置PHP+Nginx+MySQL
    Windows下Mysql主从配置
    php-fpm重启配置修改无效
    MySQL事务
    hadoop伪集群搭建
    Springboot2.x源码下载安装
    微服务——服务之间访问,用Feign请求服务接口超时如何解决?
    Lua安装
    日期——计算每月第一天和最后一天
  • 原文地址:https://www.cnblogs.com/csts/p/14674141.html
Copyright © 2020-2023  润新知