处理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 {dailyrotate 7compressmissingoknotifemptycopytruncate
}

其中:

  • /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 {dailyrotate 7compressmissingoknotifemptycopytruncate
}/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
{dailyrotate 7compressmissingoknotifempty
}

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 
{dailyrotate 7missingoknotifemptycompressdelaycompresssharedscriptspostrotate/usr/local/nginx/sbin/nginx -s reopenendscript
}

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Securinets CTF Quals 2023] PolyLCG DigestiveV2

PolyLCG 第1个题是个LCG问题,通过一堆参数生成两个序列&#xff0c;如果flag位为1则输出x序列为0则输出 y序列 from random import randintxcoeff[2220881165502059873403292638352563283672047788097000474246472547036149880673794935190953317495413822516051735501183996…

设计实现数据库表扩展的7种方式

设计实现数据库表扩展的7种方式 在软件开发过程中&#xff0c;数据库是一项关键技术&#xff0c;用于存储、管理和检索数据。数据库表设计是构建健壮数据库系统的核心环节之一。然而&#xff0c;随着业务需求的不断演变和扩展&#xff0c;数据库表中的字段扩展变得至关重要。 …

[OnWork.Tools]系列 06-屏幕水印

简介 屏幕水印功能主要是在开会分享屏幕的时候在屏幕上增加水印 水印使用 水印启用和颜色设置 水印文字和大小设置 水印间距,透明度,角度调整

centos安装python3的多个版本

标题 原本安装了python3.6&#xff0c;但是又有一个项目需要py3.7&#xff0c;所以需要让两个版本共存 操作 1、下载py3.7 wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz2、解压 tar -xzvf Python-3.7.3.tgz进入到文件夹 cd Python-3.7.33、安装 本人c…

day10 快速排序 方法重载 和 方法递推

方法重载 斐波拉契数列问题 使用重载思想解决 public static int method(int n){if (n 2 ){return 1 ;}return (n-1)*2method(n-1);}public static int f(int n){if (n 1){return 1;}if (n 2){return 2;}return f(n-1)f(n-2);} 快速排序 思维很简单&#xff0c;类似二…

【从零单排Golang】第十三话:使用WaitGroup等待多路并行的异步任务

在后端开发当中&#xff0c;经常会遇到这样的场景&#xff1a;请求给了批量的输入&#xff0c;对于每一个输入&#xff0c;我们都要给外部发请求等待返回&#xff0c;然后才能继续其它自己的业务逻辑。在这样的case下&#xff0c;如果每一个输入串行处理的话&#xff0c;那么很…

C语言进阶-4

1、常用位操作符 1.1、位与& (1)注意&#xff1a;位与符号是一个&&#xff0c;两个&&是逻辑与。 (2)真值表&#xff1a;1&00 1&11 0&00 0&10 (3)从真值表可以看出&#xff1a;位与操作的特点是&#xff0c;只有1和1位于结果为1&…

Zookeeper 面试题

一、ZooKeeper 基础题 1.1、Zookeeper 的典型应用场景 Zookeeper 是一个典型的发布/订阅模式的分布式数据管理与协调框架&#xff0c;开发人员可以使用它来进行分布式数据的发布和订阅。 通过对 Zookeeper 中丰富的数据节点进行交叉使用&#xff0c;配合 Watcher 事件通知机…

【java】【maven】【高级】MAVEN聚合继承属性等

目录 1、模块开发与设计 2、聚合 2、继承 3、属性 4、版本管理 5、资源配置 6、多环境配置 7、多环境开发配置 8、跳过测试 9、私服 前言&#xff1a;maven的高级使用包含分模块开发与设计、聚合、继承、属性、版本管理、资源配置、多环境配置、多环境开发配置、跳过…

Github 80 个键盘快捷键和一些搜索技巧的备忘清单

文章目录 键盘快捷键站点范围的快捷方式资料库源代码编辑源码浏览注释问题和拉取请求列表问题和拉取请求拉取请求的变化项目板通知网络图搜索技巧范围搜索文件路径完全符合布尔运算符基于仓库的条件基于 issue 的条件基于用户的条件参考网址键盘快捷键 站点范围的快捷方式 S …

Spring Cloud 的版本和SpringBoot的版本

Spring Cloud 的版本选择 Spring Cloud 和SpringBoot的版本存在对应关系 Spring Cloud 的版本和SpringBoot的版本&#xff0c;存在对应关系。最新的SpringCloud版本&#xff08;发布文章时为2022.0.3&#xff09;&#xff0c;需要SpringBoot&#xff08;3.0.9&#xff09; 的…

数据分析DAY1

数据分析 引言 这一周&#xff1a;学习了python的numpy和matplotlib以及在飞桨paddle上面做了几个小项目 发现numpy和matplotlib里面有很多api&#xff0c;要全部记住是不可能的&#xff0c;也是不可能全部学完的&#xff0c;所以我们要知道并且熟悉一些常用的api&#xff0…

IDEA常用插件介绍

1.CodeGlance&#xff08;CodeGlance Pro&#xff09; 安装后&#xff0c;重新启动编译器即可。 CodeGlance是一款非常好用的代码地图插件&#xff0c;可以在代码编辑区的右侧生成一个竖向可拖动的代码缩略区&#xff0c;可以快速定位代码的同时&#xff0c;并且提供放大镜功能…

Flutter:文件读取—— video_player、chewie、image_picker、file_picker

前言 简单学习一下几个比较好用的文件读取库 video_player 简介 用于视频播放 官方文档 https://pub-web.flutter-io.cn/packages/video_player 安装 flutter pub add video_player加载网络视频 class _MyHomePageState extends State<MyHomePage> {// 控制器late…

centos8.5本地yum源报错

在下载文件出现以下错误 [rootserver ~]# yum install gcc Updating Subscription Management repositories. Unable to read consumer identity This system is not registered with an entitlement server. You can use subscription-manager to register. RHEL8.5-BaseOS …

rust实践-异步并发socket通信

客户端 [package] name "rust_client" version "0.1.0" edition "2021"[dependencies] tokio { version "1.14.0", features ["full"] }use tokio::io::{self, AsyncReadExt, AsyncWriteExt}; use tokio::net::TcpSt…

典型移动APP安全风险提醒

研究背景 随着互联网和移动设备的发展&#xff0c;手机已成为人人都拥有的设备&#xff0c;各式各样的App更是丰富了人们的生活&#xff1a;从社交到出行、从网购到外卖&#xff0c;从办公到娱乐等&#xff0c;App已成为大众生活必需品。然而&#xff0c;App的流行使人们对App…

rust基础

这是笔者学习rust的学习笔记&#xff08;如有谬误&#xff0c;请君轻喷&#xff09; 参考视频&#xff1a; https://www.bilibili.com/video/BV1hp4y1k7SV参考书籍&#xff1a;rust程序设计语言&#xff1a;https://rust.bootcss.com/title-page.htmlmarkdown地址&#xff1a;h…

Blazor前后端框架Known-V1.2.11

V1.2.11 Known是基于C#和Blazor开发的前后端分离快速开发框架&#xff0c;开箱即用&#xff0c;跨平台&#xff0c;一处代码&#xff0c;多处运行。 Gitee&#xff1a; https://gitee.com/known/KnownGithub&#xff1a;https://github.com/known/Known 概述 基于C#和Blazo…

跨境电商中的安全挑战与隐擎Fox指纹浏览器的应用

随着全球互联网的蓬勃发展&#xff0c;跨境电商已经成为了国际贸易的重要组成部分。然而&#xff0c;跨境电商的迅速崛起也伴随着一系列安全挑战&#xff0c;其中之一就是恶意活动和隐私泄露。为了应对这些挑战&#xff0c;诸多技术手段被开发出来&#xff0c;其中隐擎Fox指纹浏…