Skip to content

系统运维

一、应用打包(生产环境)

1.1 打包命令说明 执行以下 Maven 命令完成生产包构建,关键参数及作用如下:

参数作用说明
-Pprod指定生产环境配置,对应文件:/cn-universal-web/src/main/resources/application-prod.properties
shell
# 生产环境打包命令
mvn clean package -Dmaven.test.skip=true -Pprod -U

1.2 打包产物与部署步骤 构建完成后生成压缩包:cn-universal-web.tar.gz

部署操作步骤:

shell
# 1. 解压打包产物
tar -zxvf cn-universal-web.tar.gz

# 2. 进入应用根目录
cd cn-universal-web

# 3. 重启应用(执行自动化脚本)
./bin/restart.sh

1.3 应用目录结构(参考)

shell
root@AeolianqbUtdduE6y:~/cn-universal-web# ll
total 212
drwxr-xr-x  5 root root   4096 Dec 25 16:08 ./          # 应用根目录
drwx------ 10 root root   4096 Dec 25 16:06 ../         # 上级目录
drwxr-xr-x  2 root root   4096 Dec 24 16:11 bin/        # 启停脚本目录(含restart.sh)
-rw-r--r--  1 root root 165256 Dec 24 16:10 cn-universal-web.jar  # 应用核心JAR包
drwxr-xr-x  2 root root   4096 Dec 24 16:11 config/     # 配置文件目录
drwxr-xr-x  2 root root  28672 Dec 24 16:10 lib/        # 第三方依赖包目录
-rw-r--r--  1 root root    325 Dec 24 16:10 version.json # 应用版本信息文件

二、日志管理

2.1 日志文件目录与说明

日志路径说明: 日志存储路径可通过以下配置确认:

  • 配置文件:logback-spring.xml
  • 核心配置项:
xml
<springProperty scope="context" name="log.path" source="logging.file.path" defaultValue="./logs"/>
shell
nexiot@iot:~/logs/cn-universal2$ ll
total 408
drwxrwxr-x 2 nexiot nexiot   4096 Nov 29 18:49 ./
drwxrwxr-x 4 nexiot nexiot   4096 Nov 21 19:49 ../
-rw-rw-r-- 1 nexiot nexiot 361177 Nov 29 19:07 all.log    # 全量日志(包含所有模块)
-rw-rw-r-- 1 nexiot nexiot      0 Nov 29 18:49 api.log    # API接口请求/响应日志
-rw-rw-r-- 1 nexiot nexiot    704 Nov 29 18:58 http.log   # HTTP协议交互日志
-rw-rw-r-- 1 nexiot nexiot  12545 Nov 29 19:06 mqtt.log   # MQTT协议通信日志
-rw-rw-r-- 1 nexiot nexiot   9730 Nov 29 18:58 tcp.log    # TCP协议通信日志
-rw-rw-r-- 1 nexiot nexiot   3882 Nov 29 18:58 third-party.log # 第三方服务交互日志
-rw-rw-r-- 1 nexiot nexiot   2974 Nov 29 18:58 udp.log    # UDP协议通信日志
-rw-rw-r-- 1 nexiot nexiot   2422 Nov 29 18:58 video.log  # 视频模块相关日志
nexiot@iot:~/logs/cn-universal2$

2.2 日志查看常用命令(补充)

shell
# 实时查看全量日志
tail -f ~/logs/cn-universal2/all.log

# 查看指定模块日志(如MQTT)
cat ~/logs/cn-universal2/mqtt.log | grep "错误关键词"

# 按时间筛选日志(近1小时)
grep "$(date -d '1 hour ago' +'%Y-%m-%d %H')" ~/logs/cn-universal2/api.log

2.3 动态开启/关闭 SQL 打印(调试专用)

⚠️ 重要提醒:

  1. 生产环境禁止开放核心端口,该操作仅用于临时调试
  2. 调试完成后必须立即关闭 SQL 打印,避免敏感信息泄露/性能损耗

开启 SQL 打印(DEBUG 级别):

shell
curl "http://localhost:9092/test/v1/debug/log?name=cn.universal.persistence.mapper&level=DEBUG"

关闭 SQL 打印(恢复 INFO 级别):

shell
curl "http://localhost:9092/test/v1/debug/log?name=cn.universal.persistence.mapper&level=INFO"

参数说明:

参数说明
name指定Mapper包路径,仅打印该包下的SQL日志
level日志级别:DEBUG(开启打印)、INFO(关闭打印)