当前位置: 首页 > article >正文

Docker 部署 plumelog 最新版本 实现日志采集

1.配置plumelog.yml

version: '3'
services:
  plumelog:
    #此镜像是基于plumelog-3.5.3版本
    image: registry.cn-hangzhou.aliyuncs.com/k8s-xiyan/plumelog:3.5.3
    container_name: plumelog
    ports:
      - "8891:8891"
    environment:
      plumelog.model: redis
      plumelog.queue.redis.redisHost: redis:6379
      plumelog.queue.redis.redisPassWord: W0CNwUW12eZe3sXynXSXIuqYpH3MBh7n
      plumelog.queue.redis.redisDb: 15
      plumelog.es.esHosts: elasticsearch:9200
      #日志保留天数,配置0或者不配置默认永久保留
      admin.log.keepDays: 7
      #链路保留天数,配置0或者不配置默认永久保留
      admin.log.trace.keepDays: 7
      #plumelog-ui的地址 如果不配置,报警信息里不可以点连接
      plumelog.ui.url: http://172.16.2.43:8891
      #管理密码,手动删除日志的时候需要输入的密码
      admin.password: 123456
      #登录配置,配置后会有登录界面
      login.username: admin
      login.password: admin

2.执行

docker-compose -f plumelog.yml up -d

3.JAVA整合

      <dependency>
            <groupId>com.plumelog</groupId>
            <artifactId>plumelog-logback</artifactId>
            <version>3.5.3</version>
        </dependency>

4.bootstrap.yml 配置

plumelog:
  env: dev
  redis-host: 172.16.2.43:6379
  redis-auth: W0CNwUW12eZe3sXynXSXIuqYpH3MBh7n

5.logback-spring.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <!-- 日志存放路径${LOG_PATH}为logging.file.path: logs/${spring.application.name} -->
    <property name="log.path" value="/opt/service/logs/portrait-model"/>
    <!-- 日志输出格式 -->
    <property name="log.pattern"
              value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] %-5level [%thread][%X{traceId}][%X{requestUser}][%X{requestUrl}] %logger{40}:%L - %msg%n"/>

    <!-- 控制台输出 -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
    </appender>

    <!-- 系统日志输出 -->
    <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}/info.log</file>
        <!-- 循环政策:基于时间创建日志文件 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${log.path}/info-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>512MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <maxHistory>7</maxHistory>
        </rollingPolicy>

        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>


        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 过滤的级别 -->
            <level>INFO</level>
            <!-- 匹配时的操作:接收(记录) -->
            <onMatch>ACCEPT</onMatch>
            <!-- 不匹配时的操作:拒绝(不记录) -->
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}/error.log</file>
        <!-- 循环政策:基于时间创建日志文件 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${log.path}/error-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>512MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <maxHistory>7</maxHistory>
        </rollingPolicy>

        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>

        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 过滤的级别 -->
            <level>ERROR</level>
            <!-- 匹配时的操作:接收(记录) -->
            <onMatch>ACCEPT</onMatch>
            <!-- 不匹配时的操作:拒绝(不记录) -->
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <!-- 环境配置 -->
    <springProperty scope="context" name="plumelog.appName" source="spring.application.name"/>
    <springProperty scope="context" name="plumelog.redisHost" source="plumelog.redis-host"/>
    <springProperty scope="context" name="plumelog.redisAuth" source="plumelog.redis-auth"/>
    <springProperty scope="context" name="plumelog.env" source="plumelog.env"/>
    <!-- 输出plumelog -->
    <appender name="plumelog" class="com.plumelog.logback.appender.RedisAppender">
        <appName>${plumelog.appName}</appName>
        <redisHost>${plumelog.redisHost}</redisHost>
        <redisAuth>${plumelog.redisAuth}</redisAuth>
        <redisDb>15</redisDb>
        <env>${plumelog.env}</env>
    </appender>

    <!--系统操作日志-->
    <root level="info">
        <appender-ref ref="console"/>
        <appender-ref ref="file_info"/>
        <appender-ref ref="file_error"/>
        <!-- 输出plumelog -->
        <appender-ref ref="plumelog"/>
    </root>

    <!-- 下面配置一些第三方包的日志过滤级别,用于避免刷屏 -->
    <!-- 系统模块日志级别控制  -->
    <logger name="com.qxsk" level="info"/>
    <logger name="org.apache" level="INFO"/>
    <!-- Spring日志级别控制  -->
    <logger name="org.springframework" level="info"/>
</configuration>

6.浏览器访问

在这里插入图片描述


http://www.kler.cn/a/452526.html

相关文章:

  • git设置项目远程仓库指向github的一个仓库
  • KAFKA 权威指南笔记(一)究竟应该配置多少个BROKER?
  • 一文掌握如何编写可重复执行的SQL
  • 基于推理的目标检测 DetGPT
  • C++ Eigen常见的高级用法 [学习笔记]
  • 【Linux】查询磁盘空间被谁占用了
  • 【前端必读】如何免费无限使用Cursor:AI编程工具的终极指南!
  • Merry Christmas HTML
  • Redis——缓存击穿
  • NetLimiter使用教程,并掌握其基本的网络管理和流量控制能力
  • 聊一聊 C#线程池 的线程动态注入 (下)
  • Flutter项目兼容鸿蒙Next系统
  • 外包干了27天,技术退步明显。。。。。
  • MyBatis-Plus分页拦截器,源码的重构(重构total总数的计算逻辑)
  • UDP传输层通信协议详解
  • 33 Opencv ShiTomasi角点检测
  • 获取 jakarta.servlet.http.HttpServletRequest请求IP
  • 【stm32can】
  • C# Winform打开和预览PDF,方法一:调用CefSharp包,内嵌浏览器
  • EMS(energy managment system)从0到1
  • 软考架构师笔记-计算机系统组成-1
  • 10. zynq应用开发--camke编译
  • 【每日学点鸿蒙知识】Charles抓包、lock文件处理、WebView组件、NFC相关、CallMethod失败等
  • Spring源码_05_IOC容器启动细节
  • Oracle 备份与恢复 (Docker部署版)
  • 单机服务和微服务