• ElK docker环境搭建


    环境信息

    Centos 7
    docker 20.10.18
    elasticsearch:7.17.4
    kibana:7.17.4
    logstash:7.17.4

    elasticsearch安装

    1. 拉取镜像
    docker pull elasticsearch:7.17.4
    
    • 1
    1. 创建映射目录(方便将对应的文件映射)
    mkdir -p /mydata/elasticsearch/config
    mkdir -p /mydata/elasticsearch/data/
    mkdir -p /mydata/elasticsearch/plugins
    
    • 1
    • 2
    • 3
    1. 写入配置信息elasticsearch.yml
    vim /mydata/elasticsearch/config/elasticsearch.yml
    
    • 1
    1. 配置elasticsearch.yml
    #写入配置信息
    vim /mydata/elasticsearch/config/elasticsearch.yml
    http.host: 0.0.0.0
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    #忽略安全认证
    xpack.security.enabled: false
    
    #给映射目录赋权限
    chmod -R 777 /mydata/elasticsearch
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    1. 启动docker 容器
    docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 \
    -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
    -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
    -v /mydata/elasticsearch/data/:/usr/share/elasticsearch/data \
    -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
    -d elasticsearch:7.17.4
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    docker安装kibana

    1. 拉取镜像
    docker pull docker.elastic.co/kibana/kibana:7.17.4
    
    • 1
    1. 启动镜像
    docker run -d --name kibana  -p 5601:5601 -e "ELASTICSEARCH_HOSTS=http://192.168.1.122:9200" docker.elastic.co/kibana/kibana:7.17.4
    
    • 1

    注意:需要将ELASTICSEARCH_HOSTS对应的ip地址改成你自己的es的ip

    docker安装head插件

    如果有谷歌插件的就不需要安装了

    docker pull mobz/elasticsearch-head:5
    docker run --restart=always --name elasticsearch-head -di -p 9100:9100 docker.io/mobz/elasticsearch-head:5
    
    • 1
    • 2

    docker安装 logstash

    1. 安装logstash时,需要先启动一下logstash,然后将对应的目录拷贝出来,拷贝出来后我们再将对应的容器删除后,再重新启动,并将对应的目录映射出来
    #拉取镜像
    docker pull logstash:7.17.4
    #启动镜像
    docker run -d --name=logstash logstash:7.17.4 
    #查看日志是否启动成功
    docker logs -f logstash
    
    #复制文件到本地
    docker cp logstash:/usr/share/logstash /mydata/logstash/
    
    #创建文件夹
    mkdir /mydata/logstash/config/conf.d
    
    #修改文件夹权限
    chmod 777 -R /mydata/logstash
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    1. vim /mydata/logstash/config/logstash.yml配置
    http.host: "0.0.0.0"
    #根据实际修改es的ip:port
    xpack.monitoring.elasticsearch.hosts: [ "http://192.168.1.122:9200" ]
    ## 主管道的Logstash配置路径,如果指定目录或通配符,配置文件将按字母顺序从目录中读取
    path.config: /usr/share/logstash/config/conf.d/*.conf
    ##Logstash将其日志写到的目录
    path.logs: /usr/share/logstash/logs
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    1. 配置输入输出vim /mydata/logstash/config/conf.d/test.conf
    input {
      tcp {
        port => 5044
    	#输入json格式
        codec => json_lines
      }
    }
    output {
      elasticsearch {
        hosts => ["http://192.168.1.122:9200"]
        index => "%{[server_name]}-log-%{+YYYY.MM.dd}"
        #user => "elastic"
        #password => "changeme"
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    1. 删除容器后重新启动容器
    #删除容器
    docker rm -f logstash 
    
    #重新映射目录启动docker镜像
    docker run -d --name=logstash -p 5044:5044 -v /mydata/logstash:/usr/share/logstash logstash:7.17.4 
    
    
    #有需要再 安装logstash插件 不是必须安装
    logstash-plugin install logstash-filter-multiline
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    项目配置

    1. 新建spring boot项目引入logstash对应的依赖
    
        net.logstash.logback
        logstash-logback-encoder
        4.9
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    1. logback-spring.xml 配置
    
    
    
    
    
    
        
        
        
        
        
        
        
            
            
                %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger -%msg%n
            
        
        
        
            
                %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger -%msg%n
            
            
            
            
                
                ${logPath}/info/es-demo-%d.log
                
                ${maxHistory}
            
            
            
        
        
        
            
            
                ERROR
            
            
                %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger -%msg%n
            
            
                ${logPath}/error/%d.log
                
                60
            
        
        
            192.168.1.122:5044
            
                {"server_name":"es-demo"}
            
        
        
        
        
            
            
            
            
            
        
    
    
    • 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
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    1. 需要将图片中对应的ip,端口号改成自己logstash对应的ip端口号
      在这里插入图片描述
  • 相关阅读:
    【SpringBoot】mockito+junit 单元测试
    i++与++i的运算和效率区别
    Axure原型设计:从零开始到精通中文版
    2013年12月1日 Go生态洞察:Go 1.2版本发布
    Ubuntu安装Jitsi Meet详细教程
    Transformer(一)—— Attention & Batch Normalization
    【Vue】创建项目
    英语语法 — 时态
    RockyLinux9.0系统在VMware虚拟机上【保姆级】安装步骤,并修改网络配置,使用固定IP进行SSH连接【47张过程图】
    浅谈-“指针”
  • 原文地址:https://blog.csdn.net/u011913691/article/details/126949500