精华内容
下载资源
问答
  • docker安装ELK

    2019-11-16 00:48:57
    docker安装ELKELK常见问题安装拉取启动容器防火墙列外访问测试查找文件head完整集群 elasticsearch.yml 配置文件 ELK 使用的是 sebp/elk 具体可以参考 https://hub.docker.com/r/sebp/elk 常见问题 参考 ...

    ELK

    使用的是 sebp/elk 具体可以参考
    https://hub.docker.com/r/sebp/elk

    常见问题

    参考 https://elk-docker.readthedocs.io/

    安装

    拉取

    #拉取docker版本详见
    https://github.com/spujadas/elk-docker  
    https://hub.docker.com/r/sebp/elk
    #这里使用最新的版本
    docker  pull  sebp/elk
    # 或者目前最新版本是740
    docker  pull  sebp/elk:740
    ##############################
    #编辑 /etc/sysctl.conf
    vi /etc/sysctl.conf
    #注意编辑/etc/sysctl.conf加入下行 如不加入会造成容器无法启动
    vm.max_map_count=262144
    ##############################
    

    启动容器

    docker run -p 5601:5601 -p 9200:9200 -p 9300:9300 -p 5044:5044 -e ES_MIN_MEM=128m -e ES_MAX_MEM=1024m -itd -v elk-data:/opt/elasticsearch/data --restart=always --name elk sebp/elk:740
    

    防火墙列外

    firewall-cmd --permanent --zone=public --add-port=5601/tcp
    firewall-cmd --permanent --zone=public --add-port=9200/tcp
    firewall-cmd --permanent --zone=public --add-port=5044/tcp
    firewall-cmd --permanent --zone=public --add-port=9300/tcp
    firewall-cmd --permanent --zone=public --add-port=9100/tcp
    #防火墙重新启动    
    firewall-cmd --reload
    

    访问测试

    #es 
    curl http://127.0.0.1:9200/
    #Kibana 
    curl http://127.0.0.1:5601/
    

    查找文件

    #进入docker容器
    docker exec -it elk /bin/bash
    #查找elasticsearch.yml 找到的结果有2个 测试的时候好像两个都必须修改
    find / -name elasticsearch.yml
    
    vi /etc/elasticsearch/elasticsearch.yml
    vim /opt/elasticsearch/config/elasticsearch.yml
    ########配置重加入跨域####### 就两行
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    ########配置重加入跨域#######
    
    #复制文件
    cp /opt/elasticsearch/config/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml
    
    docker restart elk
    
    #复制yml文件
    docker cp /etc/elk/elasticsearch.yml elk:/opt/elasticsearch/config/elasticsearch.yml    
    docker cp /etc/elk/elasticsearch.yml elk:/etc/elasticsearch/elasticsearch.yml
    docker restart elk
    

    head

    #拉取镜像
    docker pull mobz/elasticsearch-head:5
    
    #创建运行容器
    docker run -d -p 9100:9100 --restart=always --name es-head docker.io/mobz/elasticsearch-head:5
    
    #查看
    curl http://127.0.0.1:9100/
    

    完整集群 elasticsearch.yml 配置文件

    docker 不建议配置集群,es本身就消耗资源多。docker本身的一大作用是用来压榨剩余服务器资源的。注意:docker的这个镜像貌似不能加入docker的集群不知道咋回事,坑了我半天。后来我配置的非docker的集群,也只能自动加入一个docker节点。

    cluster.name: cluster-es
    node.name: node-1
    network.host: 0.0.0.0
    network.publish_host: 192.168.100.100
    #是否有资格选举成master
    #node.master: true
    #node.data: true
    discovery.seed_hosts: ["192.168.100.100:9300","192.168.100.101:9300","192.168.100.102:9300"]
    #cluster.initial_master_nodes: ["node-1","node-2","node-3"]
    cluster.initial_master_nodes: ["node-1","node-2","node-3"]
    #discovery.zen.minimum_master_nodes: 2
    #cluster.remote.connect: true
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    
    展开全文
  • docker 安装elk

    2018-09-19 23:05:30
    记录一篇docker 安装elk的文章 https://www.cnblogs.com/soar1688/p/6849183.html

    记录一篇docker 安装elk的文章

    https://www.cnblogs.com/soar1688/p/6849183.html

    展开全文
  • Docker 安装 ELK

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

    环境
    虚拟机软件VmWare12 Centos7.6

    安装docker
    yum install docker

    在这里插入图片描述

    安装成功后,使用 docker --version

    在这里插入图片描述
    安装ELK
    前提条件(真机)
    1.Docker至少得分配3GB的内存;
    2.Elasticsearch至少需要单独2G的内存;
    3.防火墙开放相关端口;
    如果配置太差了,可以指定使用的配置参数
    vm.max_map_count至少需要262144

    下载镜像
    首先启动docker
    systemctl start docker
    下拉镜像

    docker pull sebp/elk:643

    在这里插入图片描述

    等待所有的下载完成,时间可能有点长,需要耐心等待。

    更改阿里源
    如果发现一只下载不成功,更换下阿里的源
    登录网址:https://cr.console.aliyun.com/

    在这里插入图片描述

    虚拟机中配置这个地址:
    vim /etc/docker/daemon.json
    {
    “registry-mirrors”:[“https://xxxxx.mirror.aliyuncs.com”]
    }
    重启docker
    sudo systemctl daemon-reload
    sudo systemctl restart docker

    运行

    docker run -p 5601:5601 -p 9200:9200 -p 9300:9300 -p 5044:5044 -e ES_MIN_MEM=128m -e ES_MAX_MEM=1024m -itd --name docker_elk6.4.3 --restart=always sebp/elk:643

    为了保证正常运行,指定最小内存和最大内存。

    在这里插入图片描述
    max_map_count问题以及解决
    vi /etc/sysctl.conf
    添加如下代码
    vm.max_map_count=262144

    ps:
    编辑完成配置文件之后要: sysctl -p (这个命令要加上,否则无效)
    可能还会看到未来的版本需要java11支持,这里不影响使用。

    在这里插入图片描述
    重新运行刚才的启动代码提示已经存在名称了,
    解决方案,查看所有的容器,删除之前的容器id
    docker ps -a

    在这里插入图片描述

    删除: docker rm 容器ID

    重新运行命令

    docker run -p 5601:5601 -p 9200:9200 -p 9300:9300 -p 5044:5044 -e ES_MIN_MEM=128m -e ES_MAX_MEM=1024m -itd --name docker_elk6.4.3 --restart=always sebp/elk:643


    浏览器访问: http://ip:5601
    出现如下界面就对了


    查看版本

    一般使用docker安装的是比较新的版本,对于测试阶段来说,影响并不大。

    展开全文
  • Docker安装ELK

    2020-12-08 14:47:20
    docker安装地址,要先配置镜像加速,不然下载好慢,ELK各个软件版本必须统一 ElasticSearch docker pull elasticsearch:7.7.1 Kibana docker pull kibana:7.7.1 Logstash docker pull logstash:7.7.1 Filebeat docker ...

    docker安装地址,要先配置镜像加速,不然下载好慢,ELK各个软件版本必须统一

    • ElasticSearch docker pull elasticsearch:7.7.1
    • Kibana docker pull kibana:7.7.1
    • Logstash docker pull logstash:7.7.1
    • Filebeat docker pull store/elastic/filebeat:7.7.1

    Elasticsearch

    按照官方文档

    # 创建自定义的网络(用于连接到连接到同一网络的其他服务(例如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.7.1
    
    

    检测elasticsearch是否运行,虚拟机运行curl,或者直接在浏览器,访问地址 http://{虚拟机ip}:9200

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

    在这里插入图片描述

    IK分词器

    #进入容器
    docker exec -it 容器名 bash
    #在elasticsearch目录 在线安装ik分词器,可能会有点慢,版本必须对应
    ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.7.1/elasticsearch-analysis-ik-7.7.1.zip
    #安装成功重启容器
    docker restart 容器名
    

    Kibana

    kibana启动需要指定elasticsearch地址,不指定默认访问 127.0.0.1:9200,再次强调,软件版本必须统一

    docker run --name kibana --net somenetwork -e ELASTICSEARCH_HOSTS=http://elasticsearch:9200 -p 5601:5601 -d kibana:7.7.1
    

    访问 http://{虚拟机ip}:5601 (启动可能会较慢,如失败等几秒再尝试刷新一下)
    在这里插入图片描述

    Logstash

    • 编辑配置文件 logstash.yml
    #写入内容
    path.config: /usr/share/logstash/conf.d/*.conf
    path.logs: /var/log/logstash
    
    • 编辑logstash.conf
    #读取配置文件
    input {
      file{
        path => "/data/amdox/static/warn.log"
        start_position => "beginning"
      }
    }
    filter {
      grok {
        match => { "message" => "%{COMBINEDAPACHELOG}" }
      }
      date {
        match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
      }
    }
     #输出到控制台
    #output {
    #  stdout { codec => rubydebug }
    #}
    #输出到elasticsearch 
    output {
      elasticsearch {
       hosts => [ "elsaticsearch:9200"]
      }
    }
    
    • 运行logstash
    • -v /data/amdox/static/:/data/amdox/static/ : 挂载日志文件到容器,我的日志文件在 /data/amdox/static/下,在filebeat.yml中的地址 也是一样,所有挂载主机地址和容器地址一样就行
      -v /mylocal/logstash.yml:/usr/share/logstash/config/logstash.yml : 挂载配置文件到容器
      -v /mylocal/conf.d/:/usr/share/logstash/conf.d/ : 挂载配置文件到容器
    docker run -d --name logstash --net somenetwork  -v /data/amdox/static/:/data/amdox/static/ -v /mylocal/logstash.yml:/usr/share/logstash/config/logstash.yml  -v /mylocal/conf.d/:/usr/share/logstash/conf.d/  logstash:7.7.1
    

    Filebeat

    • 创建filebeat配置文件
    # 打开配置文件
    vi filebeat.yml
    
    #复制以下内容到 filebeat.yml
    
    filebeat.inputs:
     - type: log   #指定使用log文件形式读取信息, 还有 stdin 类型, 从控制台读取信息
      enabled: true
      paths:
     - /data/amdox/static/error.log  #log文件地址
    setup.template.settings:
     index.number_of_shards: 3
    output.console:   #开启控制台输出读取信息,并且进行格式化
     pretty: true
     enable: true
     
    #下面的配置按需开启
    #output.elasticsearch: #往指定ES的信息,
    # hosts: ["192.168.1.7:9200","192.168.1.7:9201","192.168.1.7:9202"]
    #output.logstash:   #往指定logstash输入信息
    #  hosts: ['{ip}:5044']
    
    • 运行Filebeat

    • -v /data/amdox/static/:/data/amdox/static/ : 挂载日志文件到容器,我的日志文件在 /data/amdox/static/下,在filebeat.yml中的地址 也是一样,所有挂载主机地址和容器地址一样就行
      -v /mylocal/filabeat.yml:/usr/share/filebeat/filebeat.yml : 挂载配置文件到容器

    docker run -d --name filebeat --net somenetwork -v /data/amdox/static/:/data/amdox/static/ -v /mylocal/filabeat.yml:/usr/share/filebeat/filebeat.yml store/elastic/filebeat:7.7.1
    
    • 检测是否启动成功
    #查看实时日志
    docker logs -f filebeat
    
    #再打开一个ssh窗口,往对应的日志文件写入内容,写完稍等一下
    echo '这是个测试' >>error.log 
    
    

    在这里插入图片描述

    docker-componse部署以及权限配置

    elk部署的目录为 /data 目录下,以此为准。配置均已开启权限配置

    准备工作, 准备docker-compose文件,放在/data目录下

    #docker-compose版本
    version: '2'
    services:
      elasticsearch:
        image: elasticsearch:7.11.1
        #指定容器名字
        container_name: elasticsearch
        #开机自启
        restart: always
        #映射的数据持久化目录以及配置文件
        volumes:
          - /data/elasticsearch/data:/usr/share/elasticsearch/data
          - /data/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
       #指定环境变量内存限制,单节点
        environment:
          - "ES_JAVA_OPTS=-Xms1024m -Xmx1024m"
          - discovery.type=single-node
        #指定网络
        networks:
          - elk
       #映射出的端口
        ports:
          - 9200:9200
          - 9300:9300
      kibana:
        image: kibana:7.11.1
        container_name: kibana
        restart: always
        ports:
          - 5601:5601
        #链接到es容器,服务名:别名
        elasticsearch:
          - elasticsearch:es
        #映射配置文件
        volumes:
          - /data/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml
        #指定环境变量,配置es地址,使用容器别名
        environment:
          - ELASTICSEARCH_HOSTS=http://es:9200
        #在elasticsearch启动之后启动
        depends_on:
          - elasticsearch
         #指定网络
        networks:
          - elk
      logstash:
        image: logstash:7.11.1
        container_name: logstash
        restart: always
        #映射出n个端口,可用于后续使用
        ports:
          - 4561:4561
          - 4562:4562
        #在elasticsearch启动之后启动
        depends_on:
          - elasticsearch
        links:
        #链接到es容器,服务名:别名
          - elasticsearch:es
        #指定网络
        networks:
          - elk
       #/data/logstash/static/ 映射静态文件地址,用于读取宿主机文件时使用
       #/usr/share/logstash/config/logstash.yml 映射配置文件
       #/usr/share/logstash/conf.d/  映射配置文件目录,后面会有配置,路径可在logstash.yml中配
        volumes:
          - /data/logstash/static/:/data/logstash/static/
          - /data/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml
          - /data/logstash/conf.d/:/usr/share/logstash/conf.d/
    #指定elk的网络模式 为 bridge
    networks:
      elk:
        driver: bridge
    
    

    elasticsearch

    elasticsearch配置的所有密码均简单配置为 123456 ,后续会说怎么配置密码

    在/data/elasticsearch/config 目录下创建 elasticsearch.yml 配置文件,并输入以下内容

    cluster.name: "docker-cluster"
    network.host: 0.0.0.0
    #添加配置
    #开启自带的xpack的验证功能
    xpack.security.enabled: true
    #拒绝自定义密码
    xpack.security.authc.accept_default_password: false
    #添加单节点发现模式
    discovery.type: single-node
    
    

    kibana

    在/data/kibana 目录下创建 kibana.yml 配置文件,并输入以下内容

    #
    # ** THIS IS AN AUTO-GENERATED FILE **
    #
    
    # Default Kibana configuration for docker target
    server.name: kibana
    server.host: "0"
    elasticsearch.hosts: [ "http://elasticsearch:9200" ]
    monitoring.ui.container.elasticsearch.enabled: true
    #配置中文
    i18n.locale: "zh-CN"
    #配置elasticsearch中kibana的账号密码
    elasticsearch.username: "kibana"
    elasticsearch.password: "123456"
    xpack.security.encryptionKey: "something_at_least_32_characters"
    

    logstash

    在/data/logstash 目录下创建 logstash.yml 配置文件,并输入以下内容

    #写入内容
    path.config: /usr/share/logstash/conf.d/*.conf
    path.logs: /var/log/logstash
    
    #配置 elasticsearch 中logstash的密码
    xpack.monitoring.elasticsearch.password: 123456
    

    启动elk

    es的数据目录需要创建文件夹,赋予 /data/elasticsearch/data目录777权限

    chmod 777 /data/elasticsearch/data
    

    在/data目录下启动elk

    docker-compose -p elk up -d
    #查看启动情况
    docker-compose -p elk ps
    

    进入es容器,配置es默认用户的密码

    #进入容器
    docker exec -it elasticsearch /bin/bash
    #设置密码
    bin/elasticsearch-setup-passwords interactive
    #然后会出现让输入各个密码,这里默认输入123456
    

    进入kibana

    网页打开 http://****:5601/,使用超管用户登录,账号 elastic 密码为刚才配置的 123456
    在这里插入图片描述
    配置角色和用户
    在这里插入图片描述

    springboot记录日志

    使用logback调用tcp方式记录日志
    在pom中添加依赖

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

    在resources目录下创建 logback-spring.xml文件内容如下

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE configuration>
    <configuration>
        <!--引用默认日志配置-->
        <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
        <!--使用默认的控制台日志输出实现-->
        <include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
        <!--应用名称-->
        <springProperty scope="context" name="APP_NAME" source="spring.application.name" defaultValue="springBoot"/>
        <!--日志文件保存路径-->
        <!--    <property name="LOG_FILE_PATH" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/logs}"/>-->
        <property name="LOG_FILE_PATH" value="/var/log"/>
        <!--LogStash访问host-->
        <springProperty name="LOG_STASH_HOST" scope="context" source="logstash.host" defaultValue="localhost"/>
        <!--LogStash访问端口-->
        <springProperty name="LOG_STASH_PORT" scope="context" source="logstash.port" defaultValue="4561"/>
        <!--项目运行环境 dev不上传日志-->
        <springProperty name="PROJECT_ENV" scope="context" source="spring.profiles.active" defaultValue="test"/>
        <!--项目 -->
        <property  name="PROJECT"  value="cloud" />
        <!--DEBUG日志输出到文件-->
        <appender name="FILE_DETAILS"
                  class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!--输出DEBUG以上级别日志-->
            <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
                <level>TRACE</level>
            </filter>
            <encoder>
                <!--设置为默认的文件日志格式-->
                <pattern>${FILE_LOG_PATTERN}</pattern>
                <charset>UTF-8</charset>
            </encoder>
            <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
                <!--设置文件命名格式-->
                <fileNamePattern>${LOG_FILE_PATH}/${APP_NAME}/details-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
                <!--设置日志文件大小,超过就重新生成文件,默认10M-->
                <maxFileSize>${LOG_FILE_MAX_SIZE:-10MB}</maxFileSize>
                <!--日志文件保留天数,默认30天-->
                <maxHistory>${LOG_FILE_MAX_HISTORY:-30}</maxHistory>
            </rollingPolicy>
        </appender>
        <!--ERROR日志输出到文件-->
        <appender name="FILE_ERROR"
                  class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!--只输出ERROR级别的日志-->
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>ERROR</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>
            <encoder>
                <!--设置为默认的文件日志格式-->
                <pattern>${FILE_LOG_PATTERN}</pattern>
                <charset>UTF-8</charset>
            </encoder>
            <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
                <!--设置文件命名格式-->
                <fileNamePattern>${LOG_FILE_PATH}/${APP_NAME}/error-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
                <!--设置日志文件大小,超过就重新生成文件,默认10M-->
                <maxFileSize>${LOG_FILE_MAX_SIZE:-10MB}</maxFileSize>
                <!--日志文件保留天数,默认30天-->
                <maxHistory>${LOG_FILE_MAX_HISTORY:-30}</maxHistory>
            </rollingPolicy>
        </appender>
    
        <!--DEBUG日志输出到LogStash-->
        <appender name="LOG_STASH_DEBUG" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
            <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
                <level>TRACE</level>
            </filter>
            <destination>${LOG_STASH_HOST}:${LOG_STASH_PORT}</destination>
            <encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
                <providers>
                    <timestamp>
                        <timeZone>Asia/Shanghai</timeZone>
                    </timestamp>
                    <!--自定义日志输出格式-->
                    <pattern>
                        <pattern>
                            {
                            "project_env": "${PROJECT_ENV:-}",
                            "project": "${PROJECT:-}",
                            "level": "%level",
                            "service": "${APP_NAME:-}",
                            "pid": "${PID:-}",
                            "thread": "%thread",
                            "class": "%logger",
                            "message": "%message",
                            "stack_trace": "%exception{20}"
                            }
                        </pattern>
                    </pattern>
                </providers>
            </encoder>
        </appender>
        <!--ERROR日志输出到LogStash-->
        <appender name="LOG_STASH_ERROR" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>ERROR</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>
            <destination>${LOG_STASH_HOST}:${LOG_STASH_PORT}</destination>
            <encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
                <providers>
                    <timestamp>
                        <timeZone>Asia/Shanghai</timeZone>
                    </timestamp>
                    <!--自定义日志输出格式-->
                    <pattern>
                        <pattern>
                            {
                            "project_env": "${PROJECT_ENV:-}",
                            "project": "${PROJECT:-}",
                            "level": "%level",
                            "service": "${APP_NAME:-}",
                            "pid": "${PID:-}",
                            "thread": "%thread",
                            "class": "%logger",
                            "message": "%message",
                            "stack_trace": "%exception{20}"
                            }
                        </pattern>
                    </pattern>
                </providers>
            </encoder>
        </appender>
        <!--接口访问记录日志输出到LogStash-->
        <appender name="LOG_STASH_RECORD" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
            <destination>${LOG_STASH_HOST}:${LOG_STASH_PORT}</destination>
            <encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
                <providers>
                    <timestamp>
                        <timeZone>Asia/Shanghai</timeZone>
                    </timestamp>
                    <!--自定义日志输出格式-->
                    <pattern>
                        <pattern>
                            {
                            "product_env": "${PRODUCT_ENV:-}",
                            "project": "${PROJECT:-}",
                            "level": "%level",
                            "service": "${APP_NAME:-}",
                            "class": "%logger",
                            "message": "%message"
                            }
                        </pattern>
                    </pattern>
                </providers>
            </encoder>
            <!--当有多个LogStash服务时,设置访问策略为轮询-->
            <!--        <connectionStrategy>-->
            <!--            <roundRobin>-->
            <!--                <connectionTTL>5 minutes</connectionTTL>-->
            <!--            </roundRobin>-->
            <!--        </connectionStrategy>-->
        </appender>
        <!--控制框架输出日志-->
        <logger name="org.slf4j" level="INFO"/>
        <logger name="springfox" level="INFO"/>
        <logger name="io.swagger" level="INFO"/>
        <logger name="org.springframework" level="INFO"/>
        <!--mapper-->
        <logger name="com.*.mapper" level="DEBUG"/>
    	<!--根据环境指定是否发送日志到logstash,dev环境不发送-->
        <springProfile name="dev">
            <root level="INFO">
                <appender-ref ref="CONSOLE"/>
                <appender-ref ref="FILE_DETAILS"/>
                <appender-ref ref="FILE_ERROR"/>
                <appender-ref ref="FILE_ERROR"/>
            </root>
        </springProfile>
        <springProfile name="test">
            <root level="INFO">
                <appender-ref ref="CONSOLE"/>
                <appender-ref ref="FILE_DETAILS"/>
                <appender-ref ref="FILE_ERROR"/>
                <appender-ref ref="LOG_STASH_DEBUG"/>
                <appender-ref ref="LOG_STASH_ERROR"/>
            </root>
        </springProfile>
        <springProfile name="product">
            <root level="INFO">
                <appender-ref ref="CONSOLE"/>
                <appender-ref ref="FILE_DETAILS"/>
                <appender-ref ref="FILE_ERROR"/>
                <appender-ref ref="LOG_STASH_DEBUG"/>
                <appender-ref ref="LOG_STASH_ERROR"/>
            </root>
        </springProfile>
        <!--    <logger name="com.macro.mall.tiny.component" level="DEBUG" >-->
        <!--        <appender-ref ref="LOG_STASH_DEBUG"/>-->
        <!--        <appender-ref ref="LOG_STASH_ERROR"/>-->
        <!--        <appender-ref ref="LOG_STASH_RECORD"/>-->
        <!--    </logger>-->
    </configuration>
    
    

    配置application.yml添加logstash地址

    #logstash 地址
    logstash:
      host: 172.18.250.71
      port: 4561
    

    配置logstash,在/data/logstash/conf.d 目录下创建 springboot.conf,输入一下内容

    input {
      tcp {    
      	mode => "server"
        host => "0.0.0.0"
        #4561端口为容器映射出的端口
        port => 4561
        codec => json_lines    
        type => "error"
      }
     
    }
    filter {
      date {
       match => ["timestamp","MMM  d HH:mm:ss", "MMM dd HH:mm:ss", "ISO8601"]
      }
      mutate {      
          remove_field => "port"
          remove_field => "pid"
          remove_field => "@version"
      }
     if [type] == "record" {
           
        json {      
        	source => "message"
          remove_field => ["message"]
        }
       
      }
        
    }
        
    output {  
    	stdout { codec => rubydebug }
    	#es的地址
    	elasticsearch {    hosts => ["es:9200"]
    	#配置账号密码
    	user => elastic
    	password => "123456"
        action => "index"
        codec => json    
        #设置索引名
        index => "xd-log"
        template_name => "xd-log"
      }
    }
     
    
    

    重启logstash

    docker restart logstash
    

    启动springboot服务,打开kibana创建索引模式
    在这里插入图片描述
    在这里插入图片描述
    创建之后可以在Discover中查看日志
    在这里插入图片描述

    配置一下可见字段就完成了,完美
    在这里插入图片描述

    展开全文
  • docker 安装ELK

    2019-04-07 15:34:00
    参考文档: Docker ELK使用文档:http://elk-docker.readthedocs.io/ ...docker search elk 拉取镜像 sudo docker pull sebp/elk 2.启动容器 docker run -p 5601:5601 -p 9200:9200 -p 5044:504...
  • Docker安装 ELK

    2021-03-23 21:18:25
    docker pull sebp/elk 2.运行容器 sudo docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -it --name elk sebp/elk 5601(Kibana Web界面)。 9200(Elasticsearch JSON接口)。 5044(Logstash Beats界面...
  • docker 安装 elk

    2020-09-22 15:16:22
    docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -e ES_MIN_MEM=128m -e ES_MAX_MEM=1024m -it --name elk sebp/elk 2.使用单个镜像安装 docker run -itd --name es -p 9200:9200 -p 9300:9300 -e ...
  • docker安装elk

    2019-05-11 14:36:00
    docker pull sebp/elk docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -e ES_MIN_MEM=128m -e ES_MAX_MEM=2048m -it --name elk sebp/elk 5601:kibana web接口 9200:elasticsearch JSON接口 50...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,811
精华内容 5,924
关键字:

docker安装elk