精华内容
参与话题
问答
  • 基于Docker快速搭建ELK

    万次阅读 2019-08-16 16:39:03
    【摘要】 本文基于自建的Docker平台速搭建一套完整的ELK系统,相关的镜像直接从Docker Hub上获取,可以快速实现日志的采集和分析检索。 准备镜像 l获取ES镜像:docker pull elasticsearch:latest l获取kibana镜像...

    【摘要】 本文基于自建的Docker平台速搭建一套完整的ELK系统,相关的镜像直接从Docker Hub上获取,可以快速实现日志的采集和分析检索。

    准备镜像

    l  获取ES镜像:docker pull elasticsearch:latest

    l  获取kibana镜像:docker pull kibana:latest

    l  获取logstash镜像:docker pull logstash:latest

    启动Elasticsearch

    官方镜像里面ES的配置文件保存在/usr/share/elasticsearch/config,如果有需要可以将该目录映射到宿主机上;数据文件目录/usr/share/elasticsearch/data,这里我们把数据目录映射出来;容器默认对外提供9200端口,用作API交互。

    docker run --name elasticsearch \
    -v "$PWD/esdata":/usr/share/elasticsearch/data \
    -p 9200:9200 \
    -d elasticsearch

    容器启动以后可以调用一把验证一下:

    image.png

    启动Kibana

    Kibana作为ES操作的UI,需要跟ES容器通信,所以这里要将ES的容器link一下,对外提供5601端口做页面交互。

    docker run --name kibana \
    --link elasticsearch:elasticsearch \
    -p 5601:5601 \
    -d kibana

    容器启动后用浏览器访问5601端口,可以看到kibana页面,首次访问的时候可能会提示没有建立默认索引,这里需要在管理页面上创建一个默认索引。默认索引通常叫做logstash-*,如下图所示创建一个默认索引。

    image.png

    启动Logstash

    Logstash主要作用是收集日志,这个组件有很多插件,可以支持大部分日志集成方式,如tcp、udp、jdbc、文件、队列等,他的配置非常简单,启动方式也很简单,这里以nginx的访问日志为例,我们配置logstash读取nginx的access.log,然后把日志转发到Elasticsearch

    首先编译一个logstash配置文件logstash.conf,内容如下:

    input{
    
          file{
    
                path=>"/tmp/nginx/logs/access.log"
    
          }
    
    }output{
    
          stdout{     } #日志输出到控制台
    
         
    
          #输出到es
    
          elasticsearch{
    
                hosts=>"100.100.x.231"
    
          }
    
    }

    启动容器,这里我们把nginx的日志放在/tmp/nginx/logs/access.log,为了让容器能读到这个日志,需要把日志目录映射到容器里面。

    docker run –it –rm  -v /tmp/nginx/logs/access.log:/tmp/nginx/logs/access.log -f /config-dir/logstash.conf

    接下来我们可以全流程测试一下日志收集展示的过程。首先在nginx里面造点访问日志,比如直接curl调nginx服务端口,或者直接往access.log里面写数据也行。这时候再logstash容器我们可以看到如下日志输出:

    image.png

    再往后,打开Kibana页面就可以看到实时写入的日志数据了:

    image.png

    总结

    Docker容器使ELK搭建变得非常便捷,通过ELK可以快速分析检索日志,发现问题,ELK的几个核心贡献者成立了一家公司叫Elastic,目前跟我司也有一些合作,在开源的基础上该公司也发布了一些商业产品,名为X-Pack,提供了机器学习、图算法以及安全技术上的诸多加强,有兴趣的同学可以自行了解。

    image.png

    展开全文
  • Docker+ELK搭建

    千次阅读 2019-06-06 18:54:02
    之前也搭过(可访问:https://yanganlin.com/31.html),最近做什么事情都想用Docker,这次也用Docker,还算顺利,没掉什么坑里,上次搭建,也用用的6.2+的版本,这都过了一年,Elk这三个产品,都已经上7了,用docker搭建的还是用...

    换了个运行环境,重新搭建一套公司本地内部的ELK,之前也搭过(可访问:https://yanganlin.com/31.html),最近做什么事情都想用Docker,这次也用Docker,还算顺利,没掉什么坑里,上次搭建,也用用的6.2+的版本,这都过了一年,Elk这三个产品,都已经上7了,用docker搭建的还是用6.2.4,稳定不落伍就好

    安装elasticsearch

    安装

    docker run \
        -d \
        --name elasticsearch \
        -p 9200:9200 \
        -p 9300:9300 \
        -e "discovery.type=single-node" \
        docker.elastic.co/elasticsearch/elasticsearch:6.2.4
    

    访问http://localhost:9200

    安装kibana

    安装

    docker run \
        -d \
        -u 0 \
        --name kibana \
        -p 5601:5601\
        docker.elastic.co/kibana/kibana:6.2.4
    

    进入到容器内部:docker exec -it kibana /bin/bash
    找到kibana的配置文件:/usr/share/kibana/config/ kibana.yml
    重启容器:doccker restart kibana

    修改配置文件,因为要绕过x-pack的安全检查

    elasticsearch.url: http://localhost:9200
    xpack.monitoring.ui.container.elasticsearch.enabled: false
    

    安装logstash

    安装

    docker run \
        -d \
        -u 0 \
        --name logstash \
        -p 5044:5044\
        docker.elastic.co/logstash/logstash:6.2.4
    

    进入容器:docker exec -it logstash /bin/bash

    找到文件:/usr/share/logstash/pipeline

    修改配置文件logstash.conf

    input {
        tcp {
            port => 5044
            codec => json_lines
        }
    }
    
    output{
        elasticsearch {
            hosts => ["localhost:9200"]
            action => "index"
            index => "%{[appname]}"
        }
      stdout { codec => rubydebug }
    }
    

    重启容器:doccker restart logstash

    SpringBoot配置Logstash

    logback.xml

    <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>localhost:5044</destination>
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
            <customFields>{"appname":"eureka-server"}</customFields>
        </encoder>
    </appender>
    
    <root level="INFO">
        <appender-ref ref="LOGSTASH"/>
    </root>
    

    pom.xml

    <dependency>
    	<groupId>net.logstash.logback</groupId>
    	<artifactId>logstash-logback-encoder</artifactId>
    	<version>4.9</version>
    </dependency>
    

    在Kibana创建索引

    参考:https://yanganlin.com/31.html

    展开全文
  • Docker下搭建ELK,超详细,亲测可用

    千次阅读 2019-05-11 21:28:48
    docker pull elasticsearch:7.0.0 下载好了ES的镜像然后继续执行下面代码 注意:(ES和kibana的版本要一致不然可能会出现问题) docker pull logstash:7.0.0 然后继续执行下面代码 docker pull kibana:7.0.0 然后...

    话不多说,直奔主题

    因为kibana要依赖ES所以要先启动ES在启动kibana
    首先执行

    docker pull elasticsearch:7.0.0
    

    下载好了ES的镜像然后继续执行下面代码 注意:(ES和kibana的版本要一致不然可能会出现问题)

    docker pull logstash:7.0.0
    

    然后继续执行下面代码

    docker pull kibana:7.0.0
    

    然后先启动ES

    docker run -d -e ES_JAVA_POTS="-Xms256m -Xmx256m" -e "discovery.type=single-node"   -p 9200:9200 -p 9300:9300 --name es01 8f46db60ddd6
    

    然后在浏览器输入云服务器的ip地址加9200端口访问出现下面就为启动成功
    在这里插入图片描述
    接下来执行下面命令启动kibana

    docker run --name kiba -e ELASTICSEARCH_HOSTS=http://192.168.111.136:9200 -e SERVER_PORT=5601  -e SERVER_HOST=0.0.0.0 -p 5601:5601 -d 7f92ab934206
    

    等待一会,然后进入浏览器访问出现下列现象就代表搭建好了
    在这里插入图片描述
    接下来最复杂的地方配置logstash

    docker pull Filebeat
    

    新建logstash文件夹,并在其下新建config、pipeline两个文件夹其中config文件夹下有文件logstash.conf、filebeat.yml。内容分别为:

    logstash.conf

    input {
      beats {
        host => "localhost"
        port => "5043"
      }
    }
    filter {
       if [fields][doc_type] == 'order' {
        grok {
                match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} %{JAVALOGMESSAGE:msg}" }
            }
       }
    
       if [fields][doc_type] == 'customer' { # 这里写两个一样的grok,实际上可能出现多种不同的日志格式,这里做个提示而已,当然如果是相同的格式,这里可以不写的
        grok {
                match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} %{JAVALOGMESSAGE:msg}" }
            }
       }
    }
    
    output {
      stdout { codec => rubydebug }
      elasticsearch {
            hosts => [ "localhost:9200" ]
            index => "%{[fields][doc_type]}-%{+YYYY.MM.dd}"
        }
    }
    

    filebeat.yml

    filebeat.prospectors:
    - paths:
        - /home/user/elk/logs/order/*.log
      multiline:
          pattern: ^\d{4}
          negate: true
          match: after
      fields:
        doc_type: order
    - paths:
        - /home/user/elk/logs/customer/*.log
      multiline:
          pattern: ^\d{4}
          negate: true
          match: after
      fields:
        doc_type: customer
    output.logstash: # 输出地址
      hosts: ["logstash:5043"]
    
    

    然后执行下面代码启动

    docker run --rm -it --name logstash --link elasticsearch -d -v ~/elk/logstash/config/logstash.conf:/usr/share/logstash/pipeline/logstash.conf logstash
    

    接下来执行下列代码

    docker run --name filebeat -d --link logstash -v ~/elk/logstash/config/filebeat.yml:/usr/share/filebeat/filebeat.yml -v ~/elk/logs/:/home/logs/ filebeat
    

    注意下-v参数挂载的几个本地盘的地址。还有filebeat收集的地址。
    好了,本期的内容就到这里了!

    展开全文
  • dockerELK

    2020-04-12 17:11:42
    docker run -d -p 9200:9200 -p 9300:9300 -e “ES_JAVA_OPTS=-Xms256m -Xmx256m” -e “discovery.type=single-node” --name elasticsearch java_opt为了小内存运行 single-node单节点 配置es跨域 docker exec -....

    docker pull daocloud.io/library/elasticsearch:7.3.2
    docker pull kibana:7.3.2
    docker pull logstash

    创建elasticsearch容器

    docker run -d -p 9200:9200 -p 9300:9300 -e “ES_JAVA_OPTS=-Xms256m -Xmx256m” -e “discovery.type=single-node” --name elasticsearch

    java_opt为了小内存运行 single-node单节点
    测试 host:9200 有内容就ok

    配置es跨域

    docker exec -it es /bin/bash

    cd /user/share/elasticsearch/config
    修改配置文件
    vi elasticsearch.yml
    加入跨域配置
    http.cors.enabled: true
    http.cors.allow-origin: “*”
    重启

    创建kibana容器

    注意要和elasticsearch版本一致
    docker run -d -it --name kibana -p 5601:5601 --link elasticsearch:elasticsearch kibana

    测试 host:5601 有内容就ok

    创建kafka与zookeeper容器

    https://editor.csdn.net/md/?articleId=105464996

    创建logstash容器

    在这里插入图片描述
    在工作目录建立一个 docker 目录 并在里面创建了 logstash 目录,用来存放所有配置

    logstash.yml (文件内容)
    
    path.config: /usr/share/logstash/conf.d/*.conf
    path.logs: /var/log/logstash
    http.host: "0.0.0.0"
    xpack.monitoring.elasticsearch.url: http://elasticsearch:9200
    xpack.monitoring.elasticsearch.username: elastic
    xpack.monitoring.elasticsearch.password: changeme
    xpack.monitoring.enabled: false
    
    conf.d/test.conf (文件内容)
    
    input{
            kafka {
    		bootstrap_servers => ["kafka:9092"]
    		auto_offset_reset => "latest" 
    		consumer_threads => 5
    		decorate_events => true
    		topics => ["user-info"]
    		type => "user-info"
            }
    
            kafka {
                    bootstrap_servers => ["kafka:9092"]
    		auto_offset_reset => "latest" 
    		consumer_threads => 5
    		decorate_events => true
    		topics => ["user-error"]
    		type => "user-error"
            }
    
    }
    
    output {
        elasticsearch {
    	   hosts => [ "elasticsearch:9200"]
    	   index => "%{[type]}log-%{+YYYY-MM-dd}"
        }
    }
    
    

    docker run -it -d -p 5044:5044 --name logstash -v /home/cyh/docker/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml -v /home/cyh/docker/logstash/conf.d/:/usr/share/logstash/conf.d/ --link elasticsearch:elasticsearch --link kafka:kafka logstash

    展开全文
  • docker-elk

    千次阅读 2019-01-23 21:39:25
    https://elk-docker.readthedocs.io/
  • 使用Docker搭建ELK日志系统

    千次阅读 2017-11-06 20:26:58
    使用Docker技术搭建ELK日志系统
  • 使用docker安装ELK

    千次阅读 2020-06-19 17:17:53
    安装ELK 前提条件(真机) 1.Docker至少得分配3GB的内存; 2.Elasticsearch至少需要单独2G的内存; 3.防火墙开放相关端口; 如果配置太差了,可以指定使用的配置参数 vm.max_map_count至少需要262144 下载镜像 首先...
  • Docker下搭建ELK

    2020-07-01 16:10:09
    整理了一下使用Docker来快速搭建一套ELK日志分析系统的方法。 1. 部署elk github上有人整理了一套使用docker compose来部署elk的配置,可直接下载使用。 git clone ...
  • Docker安装ELK

    2020-11-04 11:34:06
    Docker安装ELK 下载镜像,三个的版本一致,示例为版本6.2.2 docker pull docker.elastic.co/elasticsearch/elasticsearch:6.2.2 docker pull docker.elastic.co/kibana/kibana:6.2.2 docker pull docker.elastic....
  • Docker搭建ELK日志系列

    2019-06-11 16:24:46
    ELK镜像已经被docker官方收录,因此只需要一个命令就可以获取镜像,如下 docker pull sebp/elk 2.创建容器 使用镜像创建容器,为了保证ELK能够正常运行,加了-e参数限制使用最小内存及最大内存,命令如下: docker ...
  • 写在最前面 本文仅包含ELK7.3.0部署! 部署环境: 系统 CentOS 7 Docker Docker version 19.03.5 CPU 2核 内存 2.5G 磁盘 20G ELK部署
  • Docker搭建ELK集群

    千次阅读 2018-05-19 17:19:02
    1. 主机环境设置 insert in /etc/sysctl.conf vm.max_map_count = 262144 or run sysctl -w vm.max_map_count=262144 ...DOCKER: https://hub.docker.com/r/cdrocker/elk6/ 启动命令:docker run -d -p 5601:56...
  • CentOS7通过docker搭建ELK

    千次阅读 2019-04-30 15:34:35
    通过docker创建ELK: 前沿:ELK实际上是ElasticSearch + logstash + kibana,架构图如下 一、安装docker: yum install docker #设置开机启动 systemctl start docker systemctl enable docker 二、拉去elk镜像, ...
  • CentOS7 Docker 搭建ELK环境笔记 (适合新手看) 准备工作 1.调通网络,是主机能上网 2.安装好docker 3.将SELINUX=enforcing改为SELINUX=permissive(设置完成再往下看) [root@localhost /]# vim /etc/selinux/...
  • Docker搭建ELK环境

    2019-07-09 16:35:12
    1、安装jdk java -version ...(1)docker pull docker.elastic.co/elasticsearch/elasticsearch:7.2.0 (2)docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --name elasti...
  • 本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或重新修改使用,但需要注明来源。 署名 4.0 国际 (CC BY 4.0) ...本文链接: https://soulteary.com/2020/05/04/use-docker-to-build-elk-environm...
  • docker 搭建 elk

    2020-08-28 17:57:12
    docker 搭建 elk ELK是什么? “ELK”是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。Elasticsearch 是一个搜索和分析引擎。Logstash 是服务器端数据处理管道,能够同时从多个...
  • ELK日志分析 ElasticSearch+Logstash+Kibana 1.下载docker镜像 docker pull elasticsearch:5.6.11 docker pull kibana:5.6.11 docker pull logstash:5.6.15 2.创建ElasticSearch实例 #创建外部映射目录 mkdir -p /...
  • docker elk+kafka 搭建

    2019-09-21 23:56:48
    进行环境搭建前,需要设置vm.max_map_count(进程中内存映射区域的最大数量) ##默认值 65536 ##打开系统配置 vi /etc/sysctl.conf vm.max_map_count=655360 sysctl -p 进入文件夹 docker build -t ...
  • ELK即Elasticsearch、Logstash、Kibana,组合起来可以搭建线上日志系统,本文主要讲解使用ELK来收集SpringBoot应用产生的日志。 ELK中各个服务的作用 Elasticsearch:用于存储收集到的日志信息; Logstash:用于收集...
  • 基于docker容器的ELK日志收集系统
  • 因公司业务需求,现在架构采用spring cloud分布式,无论在开发、测试、生产环境上都需要根据日志来排查出现bug的原因,因此需要搭建elk日志分析系统,又因为才用docker更加方便,所以采用docker来搭建的elk。...
  • elk镜像仓库 2. 组件分工 filebeat:负责日志抓取与日志聚合 kafka: 削峰填谷 logstash:结构化日志信息,并把字段transform成对应的类型 elasticsearch:负责存储和查询日志信息 kibana:通过ui展示日志信息 二、...
  •  在docker搭建elasticsearch与kibana来展示日志,在微服务部署的机子上部署logstash来收集日志传到elasticsearch中,通过kibana来展示,logstash使用读取本地文件的方式来获取日志内容 1、在192.168.1.18机子中...
  • 使用docker搭建ELK日志分析系统ELK日志分析系统介绍原理搭建简单的elkelasticsearch介绍安装logstash介绍安装kibana介绍安装参考链接 ELK日志分析系统介绍 在小规模项目中,当我们需要查看运行日志时,通常只需查看...
  • 用最简单的方法做复杂的工作:基于Centos7.2+Docker18.03.1-ce快速搭建ELK6.7.0!
  • 为了在Docker集群中更好的管理查看日志 我们使用Docker搭建集群的ELK日志收集系统,这篇文章介绍了Docker构建ELK Docker集群日志收集系统的相关资料,需要的朋友可以参考下
  • Docker实战(九):Docker安装ELK环境

    万次阅读 2015-12-24 04:19:17
    Docker安装ELK环境
  • 系统环境谷歌云香港服务器centos7 ,2cpu 7.5G 废话不多说,先安装docker 一、docker 使用yum安装 ...拉取镜像,这里使用6.6.1版本,也可以使用其他版本,但elk版本最好相差不要太大 docker pull ...
  • Docker搭建ELK日志监控

    2019-04-13 01:37:56
    前言:Elasticsearch做日志存储、Logstash做日志收集、...1、下载elk镜像:docker pull sepb/elk 2、启动容器:docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -e ES_MIN_MEM=128m -e ES_MAX_MEM=2048m -it...

空空如也

1 2 3 4 5 ... 20
收藏数 10,966
精华内容 4,386
关键字:

docker elk