问题根因: - iot-device.out 涨到 613MB:systemd StandardOutput=append: 无任何轮转 - DEBUG 刷屏(单日 11521 条):logging.level.com.iot=DEBUG 使 MyBatis 每条 SQL 打印两遍 - 涂鸦 open-mq-sdk jar 自带 logback.xml 抢占日志配置(iot-data/rule/alarm 未声明 logging.config), 把日志写到 ./logs 相对目录且无总量上限 改动: - 新增 backend/iot-common/src/main/resources/logback-spring.xml(4 服务共用唯一真相源): RollingFileAppender 按日 + 50MB 双触发切分,保留 7 天,主日志总量上限 2GB, 错误日志单独一份(保留 30 天 / 512MB),并对涂鸦/MQTT/AMQP 等第三方 SDK 降噪 - 父 pom 增加 maven-resources-plugin,把该配置复制进各服务 BOOT-INF/classes - 4 个服务 application.yml 统一声明 logging.config,并把 com.iot 级别收敛为 INFO - 新增 backend/deploy/systemd/:4 个 unit 改为 StandardOutput=journal + 注入 LOG_DIR, 附 journald 限额(SystemMaxUse=1G / SystemMaxFileSize=50M / MaxRetentionSec=7day) - deploy-all.bat 增加日志治理步骤(同步 unit + journald + 清理历史 .out) 生产验证:日志落到 /opt/iotsaas/logs/app/*.log,DEBUG 计数 0,历史 .out 已清理, journal 776M 降到 552M,4 服务 active,9081/9083 文档返回 200
236 lines
8.7 KiB
XML
236 lines
8.7 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
|
||
http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||
<modelVersion>4.0.0</modelVersion>
|
||
|
||
<parent>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-starter-parent</artifactId>
|
||
<version>3.2.5</version>
|
||
<relativePath/>
|
||
</parent>
|
||
|
||
<groupId>com.iot</groupId>
|
||
<artifactId>iot-platform</artifactId>
|
||
<version>1.0.0</version>
|
||
<packaging>pom</packaging>
|
||
|
||
<name>IoT Platform</name>
|
||
<description>企业级物联网系统平台</description>
|
||
|
||
<properties>
|
||
<java.version>17</java.version>
|
||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||
<spring-boot.version>3.2.5</spring-boot.version>
|
||
<mybatis-plus.version>3.5.6</mybatis-plus.version>
|
||
<druid.version>1.2.21</druid.version>
|
||
<hutool.version>5.8.26</hutool.version>
|
||
<fastjson2.version>2.0.47</fastjson2.version>
|
||
<knife4j.version>4.4.0</knife4j.version>
|
||
<xxl-job.version>2.4.0</xxl-job.version>
|
||
<paho-mqtt.version>1.2.5</paho-mqtt.version>
|
||
<influxdb.version>6.12.0</influxdb.version>
|
||
<lombok.version>1.18.32</lombok.version>
|
||
</properties>
|
||
|
||
<modules>
|
||
<!-- 公共模块 -->
|
||
<module>iot-common</module>
|
||
|
||
<!-- 服务模块 -->
|
||
<module>iot-device</module>
|
||
<module>iot-data</module>
|
||
<module>iot-rule</module>
|
||
<module>iot-alarm</module>
|
||
</modules>
|
||
|
||
<dependencyManagement>
|
||
<dependencies>
|
||
<!-- Spring Boot -->
|
||
<dependency>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-dependencies</artifactId>
|
||
<version>${spring-boot.version}</version>
|
||
<type>pom</type>
|
||
<scope>import</scope>
|
||
</dependency>
|
||
|
||
<!-- MyBatis Plus -->
|
||
<dependency>
|
||
<groupId>com.baomidou</groupId>
|
||
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
|
||
<version>${mybatis-plus.version}</version>
|
||
</dependency>
|
||
|
||
<!-- Druid -->
|
||
<dependency>
|
||
<groupId>com.alibaba</groupId>
|
||
<artifactId>druid-spring-boot-3-starter</artifactId>
|
||
<version>${druid.version}</version>
|
||
</dependency>
|
||
|
||
<!-- Hutool工具类 -->
|
||
<dependency>
|
||
<groupId>cn.hutool</groupId>
|
||
<artifactId>hutool-all</artifactId>
|
||
<version>${hutool.version}</version>
|
||
</dependency>
|
||
|
||
<!-- FastJSON2 -->
|
||
<dependency>
|
||
<groupId>com.alibaba.fastjson2</groupId>
|
||
<artifactId>fastjson2</artifactId>
|
||
<version>${fastjson2.version}</version>
|
||
</dependency>
|
||
|
||
<!-- Knife4j API文档 -->
|
||
<dependency>
|
||
<groupId>com.github.xiaoymin</groupId>
|
||
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
|
||
<version>${knife4j.version}</version>
|
||
</dependency>
|
||
|
||
<!-- XXL-Job -->
|
||
<dependency>
|
||
<groupId>com.xuxueli</groupId>
|
||
<artifactId>xxl-job-core</artifactId>
|
||
<version>${xxl-job.version}</version>
|
||
</dependency>
|
||
|
||
<!-- MQTT -->
|
||
<dependency>
|
||
<groupId>org.eclipse.paho</groupId>
|
||
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
|
||
<version>${paho-mqtt.version}</version>
|
||
</dependency>
|
||
|
||
<!-- InfluxDB -->
|
||
<dependency>
|
||
<groupId>com.influxdb</groupId>
|
||
<artifactId>influxdb-client-java</artifactId>
|
||
<version>${influxdb.version}</version>
|
||
</dependency>
|
||
|
||
<!-- JWT -->
|
||
<dependency>
|
||
<groupId>io.jsonwebtoken</groupId>
|
||
<artifactId>jjwt-api</artifactId>
|
||
<version>0.12.5</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>io.jsonwebtoken</groupId>
|
||
<artifactId>jjwt-impl</artifactId>
|
||
<version>0.12.5</version>
|
||
<scope>runtime</scope>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>io.jsonwebtoken</groupId>
|
||
<artifactId>jjwt-jackson</artifactId>
|
||
<version>0.12.5</version>
|
||
<scope>runtime</scope>
|
||
</dependency>
|
||
</dependencies>
|
||
</dependencyManagement>
|
||
|
||
<dependencies>
|
||
<!-- Spring Boot Starter -->
|
||
<dependency>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-starter-web</artifactId>
|
||
</dependency>
|
||
|
||
<dependency>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-starter-validation</artifactId>
|
||
</dependency>
|
||
|
||
<!-- Lombok -->
|
||
<dependency>
|
||
<groupId>org.projectlombok</groupId>
|
||
<artifactId>lombok</artifactId>
|
||
<optional>true</optional>
|
||
</dependency>
|
||
|
||
<!-- Spring Boot Test -->
|
||
<dependency>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-starter-test</artifactId>
|
||
<scope>test</scope>
|
||
</dependency>
|
||
</dependencies>
|
||
|
||
<build>
|
||
<pluginManagement>
|
||
<plugins>
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-compiler-plugin</artifactId>
|
||
<configuration>
|
||
<annotationProcessorPaths>
|
||
<path>
|
||
<groupId>org.projectlombok</groupId>
|
||
<artifactId>lombok</artifactId>
|
||
<version>${lombok.version}</version>
|
||
</path>
|
||
</annotationProcessorPaths>
|
||
<source>${java.version}</source>
|
||
<target>${java.version}</target>
|
||
</configuration>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||
<configuration>
|
||
<excludes>
|
||
<exclude>
|
||
<groupId>org.projectlombok</groupId>
|
||
<artifactId>lombok</artifactId>
|
||
</exclude>
|
||
</excludes>
|
||
</configuration>
|
||
</plugin>
|
||
</plugins>
|
||
</pluginManagement>
|
||
<plugins>
|
||
<!-- 编译插件所有模块都需要 -->
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-compiler-plugin</artifactId>
|
||
</plugin>
|
||
<!--
|
||
统一日志配置:把 iot-common 的 logback-spring.xml 复制到各服务的 BOOT-INF/classes。
|
||
目的:让 4 个服务都带上同一份日志配置,从而稳定覆盖涂鸦 open-mq-sdk jar 内自带的
|
||
logback.xml(该配置 root=DEBUG 且只写 ./logs 相对目录,曾导致日志文件无限膨胀)。
|
||
-->
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-resources-plugin</artifactId>
|
||
<executions>
|
||
<execution>
|
||
<id>copy-logback-config</id>
|
||
<phase>process-resources</phase>
|
||
<goals>
|
||
<goal>copy-resources</goal>
|
||
</goals>
|
||
<configuration>
|
||
<outputDirectory>${project.build.outputDirectory}</outputDirectory>
|
||
<overwrite>true</overwrite>
|
||
<resources>
|
||
<resource>
|
||
<directory>${project.basedir}/../iot-common/src/main/resources</directory>
|
||
<includes>
|
||
<include>logback-spring.xml</include>
|
||
</includes>
|
||
<filtering>false</filtering>
|
||
</resource>
|
||
</resources>
|
||
</configuration>
|
||
</execution>
|
||
</executions>
|
||
</plugin>
|
||
</plugins>
|
||
</build>
|
||
</project>
|