越来越发觉硬盘不够用,发现是运行了2年的Nacos中存了很多log日志,具体如下:
于是得了解下各个日志中的作用,防止不必要的输出占用硬盘空间!
对于Nacos的相关知识可看我之前的文章:
日志 | 摘要 | 主要内容 |
---|---|---|
nacos-access.log | 记录所有访问 Nacos 服务器的 HTTP 请求信息。 | 每个传入 HTTP 请求的详细信息,包括请求方法、URI、状态码、客户端 IP、响应时间等详细信息,用于监控和分析 Nacos 服务器的使用模式。 |
nacos-config.log | 记录 Nacos Config 服务的启动过程、配置文件加载情况以及运行时各种异常、警告和信息 | Nacos Config 服务的启动详细信息;配置文件加载的相关信息;与异常、警告和其他运行时事件相关的日志;用于故障排除和了解 Nacos Config 的配置动态。 |
nacos-naming.log | 记录 Nacos Naming 服务的启动过程、服务注册、注销、发现过程以及运行时各种异常、警告和信息。 | Nacos Naming 服务启动的详细信息;与服务注册、注销和发现过程相关的日志。与异常、警告和其他运行时事件相关的日志。用于诊断问题和监控服务注册和发现的动态。 |
nacos-grafana.log | 记录 Nacos Grafana 的启动过程、数据查询、面板操作等过程以及运行时各种异常、警告和信息。 | Nacos Grafana 启动的详细信息;与数据查询、面板操作等过程相关的日志。与异常、警告和其他运行时事件相关的日志;用于了解 Nacos Grafana 的运行情况、故障排除和监控。 |
nacos-cluster.log | 在 Nacos 集群部署时,记录各节点之间通信的日志,包括节点之间的消息发送、接收、处理等过程以及运行时的异常、警告和信息。 | 节点之间通信的详细日志,包括消息发送、接收、处理等过程;与节点间通信相关的异常、警告和其他运行时事件的日志;用于监控集群节点间的通信情况,诊断通信问题和了解集群运行状态。 |
服务端的日志包括服务访问以及业务的日志。
nacos-access.log
:服务端的主要访问日志文件,记录tomcat的HTTP请求信息。内容大致如下:(关键信息已经用xxx代替)
127.0.0.1 - - [24/Dec/2023:12:00:00 +0800] "PUT /nacos/v1/ns/instance/beat?name=manongyanjiuseng&namespaceId=public&port=xxxx&clusterName=DEFAULT&ip=xxxxxxxxxx&serviceName=DEFAULT_GROUP%40%40blade-auth&encoding=UTF-8 HTTP/1.1" 200 75 0 Nacos-Java-Client:v1.2.1 -
通过上述链接可以看到前缀url,对应的log日志还有这些:
链接 | 含义 |
---|---|
/nacos/v1/ns/instance/beat | 心跳 |
/nacos/v1/ns/instance/list | 获取服务列表 |
/nacos/v1/ns/service/status | 状态检查 |
存储位置:xx\nacos-server-2.3.0\nacos\bin\logs
具体的配置文件位于:xx\nacos\conf\application.properties
,将其以下的配置改为false即可:server.tomcat.accesslog.enabled=false
如图所示:
生产日志不建议关,毕竟可排查。个人使用的环境可关闭
可以通过写一个脚本文件,定时删除日志文件:(此为linux文件)
#!/bin/bash
logFile="/data/nacos/bin/logs/nacos_del_access.log"
# 保留7天日志
date=`date -d "$date -7 day" +"%Y-%m-%d"`
# 具体位置可调整
delFilePath="/data/nacos/bin/logs/access_log.${date}.log"
if [ ! -f "${logFile}" ];then
echo 'access log文件打印日志频繁. /etc/cron.daily/nacosDelAccessLogs.sh 会定时删除access日志文件' >>${logFile}
fi
# 日志文件存在, 则删除
if [ -f "${delFilePath}" ];then
rm -rf ${delFilePath}
curDate=`date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"`
echo '['${curDate}'] 删除文件'${delFilePath} >>${logFile}
fi
对应的业务日志位于:xx\nacos\conf\logs
配置路径位于:xx\nacos\conf\logs\nacos-logback.xml
根据上述的参数设置日志格式、文件分割、保留日期及压缩等
减少控制台的心跳、轮询日志:
可以在业务代码模块中配置application.yml
配置文件
logging:
level:
com.alibaba.nacos: warn
也可设置jvm中的启动参数:-Dcom.alibaba.nacos.naming.log.level=warn -Dcom.alibaba.nacos.config.log.level=warn
(博主设置这个参数之后发现还是会有,可能是yaml的配置!)