zoukankan      html  css  js  c++  java
  • Logback日志输出到ELK

    用docker-compose本机部署elk

    docker-compose.yml

    version: "3"
    services: 
      es01:
        image: docker.elastic.co/elasticsearch/elasticsearch:7.3.0
        container_name: es01
        volumes:
          - ./esdata:/usr/share/elasticsearch/data
        environment:
          - discovery.type=single-node
        ports:
          - "9200:9200"
          - "9300:9300"
        networks:
          - elk
    
      kibana:
        image: docker.elastic.co/kibana/kibana:7.3.0
        links:
          - es01
        environment:
          ELASTICSEARCH_HOSTS: http://es01:9200
        ports:
          - "5601:5601"
        depends_on:
          - es01 
        networks:
          - elk
        container_name: kibana
    
      logstash:
        image: docker.elastic.co/logstash/logstash:7.3.0
        links:
          - es01
        command: logstash -f /etc/logstash/conf.d/logstash.conf  #logstash 启动时使用的配置文件
        volumes:
          - $PWD/logstash/conf.d:/etc/logstash/conf.d  #logstash 配文件位置
          - $PWD/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml  #logstash 配文件位置
        depends_on:
          - es01  #后于elasticsearch启动
        ports:
          - "4560:4560"
          - "9600:9600"
        networks:
          - elk 
        container_name: logstash
    
    networks:
      elk:
    

    logstash.conf

    input {
      tcp {
        port => 4560
        codec => json_lines
      }
    }
    
    filter {
    }
    
    output {
      stdout {
        codec => rubydebug
      }
      elasticsearch {
        hosts => ["http://es01:9200"]
        action => "index"
        index => "%{[appname]}-%{+YYYY.MM.dd}"
      }
    }
    

    logstash.yml

    http.host: "0.0.0.0"
    xpack.monitoring.elasticsearch.hosts: [ "http://es01:9200" ]
    
    ## X-Pack security credentials
    #
    xpack.monitoring.enabled: true
    # xpack.monitoring.elasticsearch.username: elastic
    # xpack.monitoring.elasticsearch.password: changeme
    

    docker-compose 命令

    docker-compose up -d   		# 启动
    docker-compose down 			# 停止
    docker logs -f logstash   # 查看 logstash 输出的日志,这个方便调试
    

    Spring boot 项目配置

    依赖包

    compile 'net.logstash.logback:logstash-logback-encoder:6.1'
    

    Logback.xml 配置

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration debug="false">
        <logger name="org.springframework" level="WARN" />
        <logger name="org.hibernate" level="WARN" />
        <logger name="tk.mybatis" level="WARN" />
        <logger name="org.mongodb" level="WARN" />
        <logger name="springfox.documentation" level="ERROR" />
        <logger name="org.apache" level="WARN" />
        <logger name="io.netty" level="WARN" />
    
        <property name="log.path" value="logs/log.log" />
        <property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n" />
    
        <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
            <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
                <pattern>${log.pattern}</pattern>
            </encoder>
        </appender>
    
        <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>${log.path}</file>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${log.path}.%d{yyyy-MM-dd}.zip</fileNamePattern>
            </rollingPolicy>
            <encoder>
                <pattern>${log.pattern}</pattern>
            </encoder>
        </appender>
    		<!-- logstash 配置部分 appanme 根据实际情况修改 -->
        <appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
            <destination>127.0.0.1:4560</destination>
            <encoder class="net.logstash.logback.encoder.LogstashEncoder">
                <includeContext>false</includeContext>
                <customFields>{"appname": "cs-elk", "server": "${HOSTNAME}"}</customFields>
            </encoder>
        </appender>
    
        <root level="debug">
            <appender-ref ref="stdout" />
            <appender-ref ref="file" />
            <appender-ref ref="logstash" />
        </root>
    </configuration>
    

    日志查看

    在浏览器中打开 http://127.0.0.1:5601/kibana,查看汇总的日志信息!

  • 相关阅读:
    观察OnPaint与OnIdle与OnSize事件
    wxPython的Refresh与事件双重响应
    DLL的静态调用和动态调用
    Delphi String的散漫记录,真是知识无数,陷阱无数
    VC调用Delphi DLL
    终于理解了什么是LGPL
    安装postgresql碰到Unable to write inside TEMP environment path
    图解:Activity生命周期
    Dephi泛型
    传递双重指针申请内存,典型用法
  • 原文地址:https://www.cnblogs.com/warrior/p/11349891.html
Copyright © 2011-2022 走看看