处理nacos、tomcat、nginx日志增长过快问题

1.nacos日志清理

修改nacos-logback.xml

将日志级别改为error级,减少info级日志产生量

将<maxHistory>调整为2以下,将 <totalSizeCap>调整为2GB左右

比如:

[root@iZ0jlapur4hqjezy8waee0Z logs]# ll -h

total 2.1G

-rw-r--r-- 1 root root  13K Aug  1 13:18 alipay-jraft.log

-rw-r--r-- 1 root root    0 Aug  1 13:36 cmdb-main.log

-rw-r--r-- 1 root root 519M Aug  1 13:36 config-client-request.log

-rw-r--r-- 1 root root 1.3M Aug  1 13:36 config-memory.log

-rw-r--r-- 1 root root 444M Aug  1 13:36 config-pull-check.log

-rw-r--r-- 1 root root 608M Aug  1 13:36 config-trace.log

-rw-r--r-- 1 root root  20M Aug  1 13:36 nacos.log

-rw-r--r-- 1 root root  51M Aug  1 08:36 nacos.log.2023-08-01.10

-rw-r--r-- 1 root root  51M Aug  1 09:23 nacos.log.2023-08-01.11

-rw-r--r-- 1 root root  51M Aug  1 10:10 nacos.log.2023-08-01.12

-rw-r--r-- 1 root root  51M Aug  1 10:57 nacos.log.2023-08-01.13

-rw-r--r-- 1 root root  51M Aug  1 11:44 nacos.log.2023-08-01.14

-rw-r--r-- 1 root root  51M Aug  1 12:31 nacos.log.2023-08-01.15

-rw-r--r-- 1 root root  51M Aug  1 13:18 nacos.log.2023-08-01.16

-rw-r--r-- 1 root root  51M Aug  1 06:15 nacos.log.2023-08-01.7

-rw-r--r-- 1 root root  51M Aug  1 07:02 nacos.log.2023-08-01.8

-rw-r--r-- 1 root root  51M Aug  1 07:49 nacos.log.2023-08-01.9

-rw-r--r-- 1 root root  808 Jul 31 10:29 naming-event.log

-rw-r--r-- 1 root root 236K Aug  1 13:35 naming-performance.log

-rw-r--r-- 1 root root  38K Jul 31 10:37 naming-push.log

-rw-r--r-- 1 root root 7.1K Jul 31 10:31 naming-server.log

通过ll -h命令查出config-trace.log和config-pull-check.log比较大,在nacos-logback.xml中查找相关日志的配置:

把相应的日志文件大小改小:

<appender name="traceLog"

              class="ch.qos.logback.core.rolling.RollingFileAppender">

        <file>${LOG_HOME}/config-trace.log</file>

        <append>true</append>

        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">

            <fileNamePattern>${LOG_HOME}/config-trace.log.%d{yyyy-MM-dd}.%i</fileNamePattern>

            <maxFileSize>50MB</maxFileSize>

            <maxHistory>7</maxHistory>

            <totalSizeCap>512MB</totalSizeCap>

            <cleanHistoryOnStart>true</cleanHistoryOnStart>

        </rollingPolicy>

        <encoder>

            <Pattern>%date|%msg%n</Pattern>

            <charset>UTF-8</charset>

        </encoder>

    </appender>

<appender name="pullCheckFile"

              class="ch.qos.logback.core.rolling.RollingFileAppender">

        <file>${LOG_HOME}/config-pull-check.log</file>

        <append>true</append>

        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">

            <fileNamePattern>${LOG_HOME}/config-pull-check.log.%d{yyyy-MM-dd}.%i</fileNamePattern>

            <maxFileSize>50MB</maxFileSize>

            <maxHistory>7</maxHistory>

            <totalSizeCap>512MB</totalSizeCap>

            <cleanHistoryOnStart>true</cleanHistoryOnStart>

        </rollingPolicy>

        <encoder>

            <Pattern>%msg%n</Pattern>

            <charset>UTF-8</charset>

        </encoder>

    </appender>

调整日志级别为error级,以减少日志产生量:

    <logger name="com.alibaba.nacos.config.traceLog" additivity="false">

        <level value="error"/>

        <appender-ref ref="traceLog"/>

    </logger>

<logger name="com.alibaba.nacos.config.pullCheckLog" additivity="false">

        <level value="error"/>

        <appender-ref ref="pullCheckFile"/>

    </logger>

这样就能及时清理日志,减小日志占用的空间

改后重启nacos

[root@iZ0jlapur4hqjezy8waee0Z nacos]# cd bin

[root@iZ0jlapur4hqjezy8waee0Z bin]# ls

derby.log  file:  logPath_IS_UNDEFINED  logs  shutdown.cmd  shutdown.sh  startup.cmd  startup.sh  work

[root@iZ0jlapur4hqjezy8waee0Z bin]# ./shutdown.sh

The nacosServer(20623) is running...

Send shutdown request to nacosServer(20623) OK

[root@iZ0jlapur4hqjezy8waee0Z bin]# ./startup.sh (这是集群启动方式,不应该用集群方式启动)

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372.b07-1.el7_9.x86_64/bin/java -Djava.ext.dirs=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372.b07-1.el7_9.x86_64/jre/lib/ext:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372.b07-1.el7_9.x86_64/lib/ext  -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/nacos/logs/java_heapdump.hprof -XX:-UseLargePages -Dnacos.member.list= -Xloggc:/home/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/home/nacos/plugins,/home/nacos/plugins/health,/home/nacos/plugins/cmdb,/home/nacos/plugins/selector -Dnacos.home=/home/nacos -jar /home/nacos/target/nacos-server.jar  --spring.config.additional-location=file:/home/nacos/conf/ --logging.config=/home/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288

nacos is starting with cluster

nacos is starting,you can check the /home/nacos/logs/start.out

需要使用单例方式启动:

[root@iZ0jlapur4hqjezy8waee0Z bin]# ./startup.sh -m standalone   

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372.b07-1.el7_9.x86_64/bin/java -Djava.ext.dirs=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372.b07-1.el7_9.x86_64/jre/lib/ext:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372.b07-1.el7_9.x86_64/lib/ext  -Xms512m -Xmx512m -Xmn256m -Dnacos.standalone=true -Dnacos.member.list= -Xloggc:/home/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/home/nacos/plugins,/home/nacos/plugins/health,/home/nacos/plugins/cmdb,/home/nacos/plugins/selector -Dnacos.home=/home/nacos -jar /home/nacos/target/nacos-server.jar  --spring.config.additional-location=file:/home/nacos/conf/ --logging.config=/home/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288

nacos is starting with standalone

nacos is starting,you can check the /home/nacos/logs/start.out

Nacos系列(4)-Nacos各种日志太多问题的终极解决办法_nacos日志_云烟成雨TD的博客-CSDN博客

2.设置自动删除定时任务(旧方法,不推荐)

打开终端并输入 crontab -e 命令来编辑 crontab 文件。

在文件末尾添加以下行(将 /path/to/access_log 替换为您的 access_log 文件的实际路径):

0 1 * * * find /home/nacos/logs -mtime +2 -type f -delete

复制

保存并关闭文件。

这样,每天凌晨 1 点,find 命令将搜索 access_log 目录中修改时间超过 2 天的文件,并将其删除。

3.有比 crontab更好的工具 logrotate

logrotate实现日志切割和清理(清晰易懂)_Smart_Maggie的博客-CSDN博客

logrotate实现日志切割和清理(清晰易懂)_Smart_Maggie的博客-CSDN博客

使用时需配置:vim /etc/logrotate.conf

# keep 4 weeks worth of backlogs

rotate 4

# create new (empty) log files after rotating old ones

create

# use date as a suffix of the rotated file

dateext

# uncomment this if you want your log files compressed

#compress

# RPM packages drop log rotation information into this directory

include /etc/logrotate.d

# no packages own wtmp and btmp -- we'll rotate them here

/var/log/wtmp {

    monthly

    create 0664 root utmp

        minsize 1M

    rotate 1

}

/var/log/btmp {

    missingok

    monthly

    create 0600 root utmp

    rotate 1

}

# system-specific logs may be also be configured here.

# nginx big log

/usr/local/nginx/logs/webaccess.log {

    daily

    rotate 7

    missingok

    notifempty

    compress

    delaycompress

    sharedscripts

    postrotate

        /usr/local/nginx/sbin/nginx -s reopen

    endscript

}

"/etc/logrotate.conf" 49L, 895C

无需运行logrotate,在系统的/etc/cron.daily/logrotate默认配置中,已经设定为每天执行一次。

logrotate在很多Linux发行版上都是默认安装的。系统会定时运行logrotate,一般是每天一次。系统是这么实现按天执行的。crontab会每天定时执行​​/etc/cron.daily​​​目录下的脚本,而这个目录下有个文件叫​​logrotate​​。在centos上脚本内容是这样的:

/etc/cron.daily/logrotate

/usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1

EXITVALUE=$?

if [ $EXITVALUE != 0 ]; then

    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"

fi

exit 0

logrotate机制与原理

logrotate机制与原理_wx61ee58d59725e的技术博客_51CTO博客

4.tomcat日志清理

  1. 创建一个logrotate配置文件来管理Tomcat日志。在/etc/logrotate.d/目录下创建一个新文件并将其命名为tomcat,例如:

Copy

sudo nano /etc/logrotate.d/tomcat
  1. 在文件中添加以下内容:

Copy

/path/to/tomcat/logs/catalina.out {
  daily
  rotate 7
  compress
  missingok
  notifempty
  copytruncate
}

其中:

  • /path/to/tomcat/logs/catalina.out 是Tomcat日志文件的路径。如果您的Tomcat配置文件中指定了不同的日志文件名,请相应地更改路径。

  • daily - 每天轮换日志文件。

  • rotate 7 - 保留7个旧日志文件。

  • compress - 压缩旧的日志文件。

  • missingok - 如果日志文件丢失,不要给出错误。

  • notifempty - 如果日志文件为空,不要轮换日志文件。

  • copytruncate - 不关闭Tomcat进程,直接拷贝并截断日志文件。

  • 保存并关闭文件。

  • 测试logrotate配置是否正确。使用以下命令手动运行logrotate:

Copy

sudo logrotate -vf /etc/logrotate.d/tomcat

-vf参数用于输出日志并强制执行logrotate。

[root@iZ8vb2ef68w87mgjcj9m06Z logrotate.d]# cat tomcat 
/app/web-5210/logs/catalina.out {
    daily
    rotate 7
    compress
    missingok
    notifempty
    copytruncate
}

/app/web-5210/logs/catalina.*.log
/app/web-5210/logs/localhost.*.log
/app/web-5210/logs/localhost_access_log.*.txt 
/app/web-5210/logs/manager.*.log
{
    daily
    rotate 7
    compress
    missingok
    notifempty
}

5.nginx日志清理

[root@iZ8vb2ef68w87mgjcj9m06Z logrotate.d]# cat nginx 
# nginx big log
/usr/local/nginx/logs/access.log
/usr/local/nginx/logs/nginx_error.log
/usr/local/nginx/logs/webaccess.log 
{
    daily
    rotate 7
    missingok
    notifempty
    compress
    delaycompress
    sharedscripts
    postrotate
        /usr/local/nginx/sbin/nginx -s reopen
    endscript
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/56301.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

pip安装lap出现问题

解决方法一 用conda安装&#xff0c;用以下命令&#xff1a; conda install -c conda-forge lap解决方法二 用pip安装&#xff0c;用以下命令&#xff1a; pip install gitgit://github.com/gatagat/lap.git文章目录 解决方法一解决方法二摘要YoloV8改进策略&#xff1a;基…

pointpillars的demo过程记录

1、进入pp conda activate pp 2、cd到/home/fyy/OpenPCDet-master/tools打开终端 python demo.py --cfg_file cfgs/kitti_models/pointpillar.yaml --ckpt /home/fyy/OpenPCDet-master/pointpillar_7728\ \(1\).pth --data 000009.bin 直接就可以demo显示了

(自控原理)自动控制的分类与基本要求

一、分类 1、线性连续控制系统 2、非线性控制系统 判断是时变时不变看的是系数&#xff0c;判断线性还是非线性看的是变量 二、基本要求 三、自动控制的分析方法

抄写Linux源码(Day1:获取并运行 Linux0.11)

Day1&#xff1a;获取并运行 Linux0.11 参考资料&#xff1a;https://zhuanlan.zhihu.com/p/438577225 这是我参考的一个别人写的 Linux0.11 解读&#xff1a;https://github.com/dibingfa/flash-linux0.11-talk 我获取 Linux-0.11 源码的链接&#xff1a;https://github.com/…

LabVIEW开发航天器动力学与控制仿真系统

LabVIEW开发航天器动力学与控制仿真系统 计算机仿真是工程设计和验证的非常有用的工具。它节省了大量的时间、金钱和精力。航天器动力学与控制仿真系统由LabVIEW程序开发&#xff0c;它是模拟航天器等动态系统的有用工具。还可轻松与硬件连接并输出真实信号。 项目采用系统工…

【Linux】git三板斧教程(免密提交配置)

git 什么是git&#xff1f;Linux下安装git基于git的一些商业网站介绍在gitee上创建仓库注册账号创建项目将仓库克隆到本地 git三板斧git三板斧第一招&#xff1a;git add三板斧第二招&#xff1a;git commit三板斧第三招&#xff1a;git push git免密码提交git log查看提交日志…

拿捏--->逻辑推断问题(猜凶手+猜名次)

文章目录 猜凶手问题题目描述算法思路代码实现 猜名次问题题目描述算法思路代码实现 猜凶手问题 题目描述 算法思路 代码实现 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() {char killer 0;for (killer A; killer < D; killer){if ((killer ! …

react中的高阶组件理解与使用

一、什么是高阶组件&#xff1f; 其实就是一个函数&#xff0c;参数是一个组件&#xff0c;经过这个函数的处理返回一个功能增加的组件。 二、代码中如何使用 1&#xff0c;高级组件headerHoc 2&#xff0c;在普通组件header中引入高阶组件并导出高阶组件&#xff0c;参数是普…

【 Redis】的乱码问题

问题描述&#xff1a; 使用RedisTemplate存储的数据&#xff0c;在 redis-cli 客户端查看时&#xff0c;key 和 value 都会携带类似\xac\xad\这样的字符串。 原因&#xff1a; 由于默认使用了 jdk 的序列化方式。以下是支持的序列化方式 项目一般都会有缓存&#xff0c;常常…

【elasticsearch系】1.初识玩转elasticSearch

首先给大家介绍下我使用的版本是7.17.3这个版本&#xff0c;关于之前6.x的版本还是有些区别的。 elasticSearch Elasticsearch 是一个分布式文档存储。Elasticsearch 不是将信息存储为列式数据行&#xff0c;而是存储已序列化为 JSON 文档的复杂数据结构。存储文档时&#xff0…

uC-OS2 V2.93 STM32L476 移植:系统移植篇

前言 上一篇已经 通过 STM32CubeMX 搭建了 NUCLEO-L476RG STM32L476RG 的 裸机工程&#xff0c;并且下载了 uC-OS2 V2.93 的源码&#xff0c;接下来&#xff0c;开始系统移植 开发环境 win10 64位 Keil uVision5&#xff0c;MDK V5.36 uC-OS2 V2.93 开发板&#xff1a;NUC…

软件测试面试总结——http协议相关面试题

前言 在PC浏览器的地址栏输入一串URL&#xff0c;然后按Enter键这个页面渲染出来&#xff0c;这个过程中都发生了什么事?这个是很多面试官喜欢问的一个问题 如果测试只是停留在表面上点点点&#xff0c;不知道背后的逻辑&#xff0c;是无法发现隐藏的bug&#xff0c;只能找一…

Spring MVC程序开发

目录 1.什么是Spring MVC? 1.1MVC定义 1.2MVC和Spring MVC的关系 2.为什么要学习Spring MVC? 3.怎么学Spring MVC? 3.1Spring MVC的创建和连接 3.1.1创建Spring MVC项目 3.1.2RequestMapping 注解介绍 3.1.3 RequestMapping 是 post 还是 get 请求&#xff1f; ​…

聊聊工程化 Docker 的最新趋势以及最佳实践

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

【Linux】Centos7 的 Systemctl 与 创建系统服务 (shell脚本)

Systemctl systemctl 命令 # 启动 systemctl start NAME.service # 停止 systemctl stop NAME.service # 重启 systemctl restart NAME.service # 查看状态 systemctl status NAME.service # 查看所有激活系统服务 systemctl list-units -t service # 查看所有系统服务 syste…

怎么查看企业的征信报告

一、企业征信报告是什么&#xff1f; 企业征信报告是对企业信用状况、财务状况和经营状况等信息进行综合评估的重要工具&#xff0c;为合作伙伴、供应商、投资者等提供了重要的参考并做出明智的决策。企业信用报告记录了企业的信用记录、债务情况以及过往的经营表现等&#xf…

【Ajax】笔记-JQuery发送jsonp请求

前端 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>jQuery-jsonp</title><style>#re…

腾讯地图点标记加调用

先看效果 PHP代码 <?phpnamespace kds_addons\edata\controller;use think\addons\Controller; use think\Db;class Maps extends Controller {// 经纬度计算面积function calculate_area($points){$totalArea 0;$numPoints count($points);if ($numPoints > 2) {…

【MySQL】视图与用户管理

【MySQL】视图 视图视图概念使用基表与视图的相互影响 用户管理新增用户删除修改密码 用户权限授予权限回收权限 视图 视图概念 视图就是一张虚拟表&#xff0c;其内容由查询定义。与真实的表一样&#xff0c;视图包含一系列带有名称的列和行数据。视图的数据变化影响到基表&…

Linux下.py文件只读问题以及解决过程

一、问题描述 如图&#xff0c;在Ubuntu Linux系统中使用pycharm管理项目文件时&#xff0c;无法编辑&#xff0c;提示文件为只读&#xff1a; 点击"OK"后仍旧无法清除只读模式&#xff0c;并报错&#xff1a; 二、问题解决 将问题定性为文件权限相关问题&#…