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

news2024/12/24 9:34:28

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
}

 

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

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

相关文章

mysql忘记密码重置密码步骤

1.使用管理员权限打开cmd窗口&#xff0c;winr后输入cmd&#xff0c;然后按CtrlShiftEnter. 2.停止mysql服务&#xff0c;如上图net stop mysql 3.找到mysql安装目录下的my.ini文件&#xff0c;使用管理员权限打开 4.在[mysqld]下面新增一行skip-grant-tables 5.启动mysql服务…

新的恶意软件 WikiLoader 针对意大利组织

研究人员发现了一种新的恶意软件&#xff0c;名为 WikiLoader 恶意软件。之所以这样命名&#xff0c;是因为它向维基百科发出请求&#xff0c;希望得到内容中包含 "The Free "字符串的响应。 WikiLoader 恶意软件的主要目标是意大利企业及组织。 WikiLoader 是一种…

微信到底可以添加多少好友?怎么避免加人频繁?

微信作为一款用户月活跃量超过10亿的社交聊天软件&#xff0c;已经成为人们生活中不可或缺的一部分。 微信好友上限1万个 01 不知道有没有小伙伴好奇&#xff0c;微信到底可以添加多少好友&#xff1f;正好这个话题也上热搜了&#xff0c;我们就来了解一下。 有网友表示&…

Android安卓实战项目(6)---健身运动 APP实现健身运动倒计时显示提醒(源码在文末)

Android安卓实战项目&#xff08;6&#xff09;—健身运动 APP实现健身运动倒计时&#xff08;源码在文末&#x1f415;&#x1f415;&#x1f415;&#xff09; 一.项目运行介绍 【bilibili演示】 https://www.bilibili.com/video/BV1414y167WH/?share_sourcecopy_web&…

接受平庸,特别是程序员

目录 方向一&#xff1a;简述自己的感受 方向二&#xff1a;聊聊你想怎么做 方向三&#xff1a;如何调整自己的心态 虽然清楚知识需要靠时间沉淀&#xff0c;但在看到自己做不出来的题别人会做&#xff0c;自己写不出的代码别人会写时还是会感到焦虑怎么办&#xff1f; 你是…

棕榈酰四肽-7——促进皮肤自然愈合和再生

简介 棕榈酰四肽-7&#xff08;Palmitoyl Tetrapeptide-7&#xff09;可以延缓和抑制过量细胞白介素的生成&#xff0c;从而抑制一些不必要不恰当的炎症反应和糖基化损伤。在体外实验中&#xff0c;科学家们发现在细胞白介素生成时&#xff0c;“棕榈酰四肽-7诱导呈现出一种显…

2023-08-02 LeetCode每日一题(翻转卡片游戏)

2023-08-02每日一题 一、题目编号 822. 翻转卡片游戏二、题目链接 点击跳转到题目位置 三、题目描述 在桌子上有 N 张卡片&#xff0c;每张卡片的正面和背面都写着一个正数&#xff08;正面与背面上的数有可能不一样&#xff09;。 我们可以先翻转任意张卡片&#xff0c;…

【Unity3D】Shader Graph简介

1 Shader Graph 简介 Shader Graph 是 Unity 官方在 2018 年推出的 Shader 制作插件&#xff0c;是图形化的 Shader 制作工具&#xff0c;类似于 Blender 中的 Shader Editor 和 UE 中的 Material Editor&#xff0c;它使用流程图的形式表达顶点变换和片元着色的流程。 Shader …

GC垃圾回收器【入门笔记】

GC&#xff1a;Garbage Collectors 垃圾回收器 C/C&#xff0c;手动回收内存&#xff1b;难调试、门槛高。忘记回收、多次回收等问题 Java、Golang等&#xff0c;有垃圾回收器&#xff1a;自动回收&#xff0c;技术门槛降低 一、如何定位垃圾&#xff1f; https://www.infoq.c…

<C++>二、 类和对象

1.面向对象和面向过程 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c; 通过函数调用逐步解决问题。 C是基于面向对象的&#xff0c;关注的是对象&#xff0c;将一件事情拆分成不同的对象&#xff0c;靠对象之间的交互完成。 2. C类 C…

直击运维痛点,大数据计算引擎 EasyMR 的监控告警设计优化之路

当企业的业务发展到一定的阶段时&#xff0c;在系统中引入监控告警系统来对系统/业务进行监控是必备的流程。没有监控或者没有一个好的监控&#xff0c;会导致开发人员无法快速判断系统是否健康&#xff1b;告警的实质则是“把人当服务用”&#xff0c;用告警通知人的方式去干预…

小研究 - 微服务系统服务依赖发现技术综述(二)

微服务架构得到了广泛的部署与应用, 提升了软件系统开发的效率, 降低了系统更新与维护的成本, 提高了系统的可扩展性. 但微服务变更频繁、异构融合等特点使得微服务故障频发、其故障传播快且影响大, 同时微服务间复杂的调用依赖关系或逻辑依赖关系又使得其故障难以被及时、准确…

SVN代码迁移到Git方法

1.在SVN上新增一个项目 一、点击新建项目 二、创建空白项目 三、填入项目信息 四、myProject项目模板创建成功 2.将代码提交到Git 一、新建一个文件夹myProject&#xff0c;将从SVN下载过来的代码复制一份拷贝到该文件夹下&#xff0c;注意&#xff1a;不要把.SVN文件拷…

兴达易控Profinet转Modbus RTU主站模式的配置流程

兴达易控Profinet转Modbus RTU主站网关&#xff0c;能够实现不同协议之间的设备数据传输。这种设备具有高度的可靠性和稳定性&#xff0c;能够满足工业领域对通信设备的严格要求。同时&#xff0c;兴达易控Profinet转Modbus RTU主站还具备简单易用的特点&#xff0c;使用现场能…

安防视频监控平台EasyCVR修改参数提示database or disk is full的原因排查

EasyDarwin开源流媒体视频EasyCVR安防监控平台可提供视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、云台控制、语音对讲、智能分析等能力。视频监控综合管理平台EasyCVR具备视频汇聚融合能力&#xff0c;平台基于云边端一体化架构&#xff0c;具有强大…

查看内存类型和频率 - Win系统

查看内存类型和频率 - Win系统 问题方法1&#xff08;推荐&#xff09;&#xff1a;使用命令行方法2&#xff1a;使用CPU-Z方法3&#xff1a;使用AIDA64 问题 我们在为电脑扩充内存时需要提前了解电脑内存的类型和频率&#xff0c;防止内存不兼容&#xff0c;但在设备管理器和…

从零实现深度学习框架——Transformer从菜鸟到高手(一)

引言 &#x1f4a1;本文为&#x1f517;[从零实现深度学习框架]系列文章内部限免文章&#xff0c;更多限免文章见 &#x1f517;专栏目录。 本着“凡我不能创造的&#xff0c;我就不能理解”的思想&#xff0c;系列文章会基于纯Python和NumPy从零创建自己的类PyTorch深度学习框…

Node版本的切换之Window

步骤一&#xff1a;按健winR窗口&#xff0c;键盘输入cmd,然后回车。 步骤二&#xff1a; 输入where node&#xff0c;显示 步骤三&#xff1a;进入node.exe目录&#xff0c;并且删除父目录文件夹即&#xff1a;nodejs文件夹 步骤四&#xff1a;从官网下载版本管理并安装&#…

亚马逊店铺的回款周期是多久?

现如今&#xff0c;开亚马逊店铺可是一个技术活&#xff0c;一旦有一个环节&#xff0c;或者是一件事情没有做好&#xff0c;对整个亚马逊店铺过程中影响都是十分巨大的&#xff0c;不少亚马逊卖家就吃过这方面的亏。 很多亚马逊卖家就是吃亏在这些方面&#xff0c;现在要想开…

线程数突增!领导:谁再这么写就滚蛋!

今天给大家分享一个线上问题引出的一次思考&#xff0c;过程比较长&#xff0c;但是挺有意思。 今天上班把需求写完&#xff0c;出于学习&#xff08;摸鱼&#xff09;的心理上skywalking看看&#xff0c;突然发现我们的一个应用&#xff0c;应用内线程数超过900条&#xff0c…