全链路日志跟踪定位
李国平 2024/12/20 maven
# 一、全链路日志配置
# logback-spring.xml 配置
再每个web项目下的resources的“logback-spring.xml” 里添加如下内容:
<appender name="MOGN" class="com.itonghui.log.MongoDBAppender" >
<userName>${MQ_USER_NAME}</userName>
<password>${MQ_PASSWORD}</password>
<brokerURL>${MQ_BROKER_URL}</brokerURL>
<!-- 此日志文件只记录ERROR级别的 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>info</level>
</filter>
</appender>
<!--开发环境:打印控制台 -->
<springProfile name="dev">
<logger name="com.itonghui" level="DEBUG" />
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="ASYNC_LOG_DEBUG" />
<appender-ref ref="ASYNC_LOG_INFO" />
<appender-ref ref="ASYNC_LOG_WARN" />
<appender-ref ref="ASYNC_LOG_ERROR" />
<appender-ref ref="MOGN" />
</root>
</springProfile>
<springProfile name="prod">
<logger name="com.itonghui" level="WARN" />
<root level="WARN">
<appender-ref ref="ASYNC_LOG_WARN" />
<appender-ref ref="ASYNC_LOG_ERROR" />
<appender-ref ref="MOGN" />
</root>
</springProfile>
<springProfile name="test">
<logger name="com.itonghui" level="INFO" />
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="ASYNC_LOG_INFO" />
<appender-ref ref="ASYNC_LOG_WARN" />
<appender-ref ref="ASYNC_LOG_ERROR" />
<appender-ref ref="MOGN" />
</root>
</springProfile>
# nacos 链路日志配置
配置 “ith-service-document-{env}.yaml” ,该链路日志服务依赖mongodb 数据库服务:
spring:
data:
mongodb:
host: localhost #数据库ip
port: 27017 # 数据库端口
database: demo # 数据库库名
username: admin # 数据库账号(未设置认证可删除)
password: w3d56yu8r # 数据库密码 (未设置认证可删除)
启动 ith-service-document 服务
# 使用说明
接口响应报文结构:
{
"code": 0,
"ext": {},
"msg": "操作成功!",
"success": true,
"traceId": "dce641ae2c2424b9"
}
code: 响应状态码
ext: 业务数据
msg:响应状态码明文说明
success: 响应状态 true 成功 false失败
traceId:链路日志id 该参数用于链路日志定位跟踪唯一依据
登录管理平台 “系统监控>日志监控管理”,根据 traceId 的值可直接搜索到该接口在整个链路中(有关所有服务)的调用log记录:
# 二、API访问操作日志
数据可追溯性:有助于追踪系统中所有对 API 的操作,方便排查问题和审计。
安全性增强:通过记录操作,能够及时发现异常操作,保障系统安全。
# 1、站点参数和数据字典维护
- 数据字典:
类型(新增、查询、删除、修改)
INTERVIEW_HANDLE_TYPE
模块 (商品管理、订单管理、...)
INTERVIEW_TYPE
- 站点参数:
是否开启操作日志记录
LOG_REST_OPER = false
保留操作日志天数
LOG_REST_BACK_DAY = 15
# 2、更新产品服务
ith-service-document
ith-service-gateway
# 3、上传操作日志分类模块
excel模板上传:
# 三、云仓远程显示日志监控
# 1.插件采集插件安装
<!-- 再 “document-service” pom.xml 安装插件 -->
<dependency>
<groupId>com.ith.framework</groupId>
<artifactId>ith-collect-log</artifactId>
<version>1.0.1-SNAPSHOT</version>
</dependency>
# 2. 相关配置
线上项目 再nacos “ith-service-gateway.yaml” 新增 [th-service-document]路由转发 “/api/logrecord/**”
- id: ith-service-document
uri: lb://ith-service-document
predicates:
- Path=/api/logrecord/**,/api/admin/logrecord/**,/api/authen/doc/**,/api/authen/doc/formauto/**,/api/doc/**,/api/member/logrecord/**