• Docker安装部署ELK教程 (Elasticsearch+Kibana+Logstash+Filebeat)


    作者:万能付博 

    链接:Docker安装部署ELK教程 (Elasticsearch+Kibana+Logstash+Filebeat)

    Docker安装部署ELK教程 (Elasticsearch+Kibana+Logstash+Filebeat)

    ELK是由 Elasticsearch、Logstash和Kibana 三部分组件组成。

    Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

    Logstash 是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用 

    kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。

    +

    Filebeat 是用于单用途数据托运人的平台。它们以轻量级代理的形式安装,并将来自成百上千台机器的数据发送到 Logstash 或 Elasticsearch。

     Docker 镜像统一从 https://hub.docker.com/ 下载 (安装时请使用统一版本)

    、Docker 安装 Elasticsearch

    官网镜像地址:https://hub.docker.com/_/elasticsearch

    找到目前最新的(Tags)是 7.1.1

    # 下载镜像 查看镜像
    docker pull elasticsearch:7.1.1
    docker images

    复制代码
    # 创建自定义的网络(用于连接到连接到同一网络的其他服务(例如Kibana))
    docker network create somenetwork

    # 运行
    elasticsearch
    docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.1.1

    # 查看容器状态
    docker ps
    复制代码

    # 检测 elasticsearch 是否启动成功
    curl 127.0.0.1:9200

    Elasticsearch 安装启动完成

    安装ElasticSearch的中文分词器IK

    在线下载并安装

    ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.5.4/elasticsearch-analysis-ik-6.5.4.zip

    进入plugins可以看到IK分词器已经安装成功

    二、Docker 安装 Kibana

    官网镜像地址:https://hub.docker.com/_/kibana

    使用和 elasticsearch 相同版本镜像 7.1.1 (不一样可能会出现问题)

    # 下载镜像 查看镜像
    docker pull kibana:7.1.1
    docker images

    注意:在本例中,Kibana使用默认配置,并希望连接到正在运行的Elasticsearch实例http://localhost:9200

    # 运行 Kibana
    docker run -d --name kibana --net somenetwork -p 5601:5601 kibana:7.1.1

    # 查看容器启动状态
    docker ps

     

    访问 http://127.0.0.1:5601  (启动可能会较慢,如失败等几秒再尝试刷新一下)

    Kibana 安装启动完成

    三、Docker 安装 Logstash

    官网镜像地址:https://hub.docker.com/_/logstash

    使用同版本镜像 7.1.1 

    # 下载镜像 查看镜像
    docker pull logstash:7.1.1
    docker images

    我在工作目录建立一个 docker 目录 并在里面创建了 logstash 目录,用来存放所有配置

    1
    里面放了 logstash 的配置文件

     

    logstash.yml (文件内容)
    
    path.config: /usr/share/logstash/conf.d/*.conf
    path.logs: /var/log/logstash
    复制代码
    conf.d/test.conf (文件内容)
    
    input {
        beats {
        port => 5044
        codec => "json"
    }
    }
    
    output {
      elasticsearch { hosts => ["elasticsearch:9200"] }
      stdout { codec => rubydebug }
    }
    复制代码
    复制代码
    复制代码
    启动 Logstash 

    记得映射上面两个目录 {path}

    docker run -it -d -p 5044:5044 --name logstash --net somenetwork -v {path}/logstash.yml:/usr/share/logstash/config/logstash.yml -v {path}/conf.d/:/usr/share/logstash/conf.d/ logstash:7.1.1

    查看容器运行状态
    docker ps
    复制代码
    复制代码

    启动成功

    四、Docker 安装 Filebeat

    官网镜像地址:https://hub.docker.com/_/filebeat

    使用同版本镜像 7.1.1 

    # 下载镜像 查看镜像
    docker pull store/elastic/filebeat:7.1.1
    docker images

    复制代码
    复制代码
    # 下载默认官方配置文件 (暂时在当前目录创建一个 filebeat 目录 用来放 filebeat 配置文件)
    curl -L -O https://raw.githubusercontent.com/elastic/beats/7.1/deploy/docker/filebeat.docker.yml

    # 打开配置文件
    vim filebeat.docker.yml


    # 增加下面的配置 (收集 .log 数据 把数据发送到当前网络5044端口 (logstash 端口) )
    # 这个地方的 .log 要保证有几条测试数据

    filebeat.inputs:
    - type: log
    enabled: true
    paths:
    - /var/log/nginx/*.log

    output.logstash:
    hosts: ['{ip}:5044']
     

    # 运行Filebeat

    # 请更改下面两个路径
    {nginx-path} = 本地的日志文件目录(映射到容器中 作为数据源)
    {path} = Filebeat配置文件路径
    {ip} = elasticsearch 地址
    docker run --name filebeat --user=root -d --net somenetwork --volume="{nginx-path}:/var/log/nginx/" --volume="{path}/filebeat.docker.yml:/usr/share/filebeat/filebeat.yml:ro" --volume="/var/lib/docker/containers:/var/lib/docker/containers:ro" --volume="/var/run/docker.sock:/var/run/docker.sock:ro" store/elastic/filebeat:7.1.1
     
    复制代码
    复制代码

    # 查看容器启动状态
    docker ps

    启动成功 

    现在去 Kibana 查看数据,已经有数据了 

  • 相关阅读:
    3. 无重复字符的最长子串
    CentOS7 安装
    docker安装ES和kibana
    阿里云镜像加速(docker)
    虚拟机安装docker
    CentOS7 安装
    javaweb学习5——JSP
    javaweb学习4——HttpServletRequest的使用
    javaweb学习3——验证码
    javaweb学习2——HTTP协议
  • 原文地址:https://www.cnblogs.com/-wenli/p/12740368.html
Copyright © 2020-2023  润新知