Logrotate日志工具对NginX进行日志管理

Logrotate日志工具对NginX进行日志管理

前几天到一台Nginx服务器上查询某个日志,查询半天都没有反应,后来发现是日志文件已经20G了,难怪半天没反应,反馈给相关负责的同事,他说等他配置一下定时任务,当时心想:为啥要这么麻烦?今天以NginX日志为例,讲解Logrotate管理工具在日常日志管理中的应用。

image-20231222090123406

一、为什么要做Nginx日志管理:

  1. 方便查询;
  2. 节省服务器空间;
  3. 日志留存180天符合网络安全法要求;
  4. 编不下去了...

二、 Logrotate工具简介

Logrotate 是 CentOS 操作系统内置日志管理工具,该工具可对系统中生成的大量日志文件进行归档管理,其允许对日志文件实行压缩、删除或邮寄等操作。Logrotate 可以按照每天、周、月或达到某一大小的日志文件进行归档操作,Logrotate 基于 anacrontab 实现计划任务,可以在无须人工干预使用自动化方式完成日志归档操作。

三、配置路径:

第一种方式: 在/etc/logrotate.conf文件中配置

image-20231222090156878

第二种方式:在/etc/logrotate.d 目录下编写相关日志管理配置文件(如果没有就新建一个文件

image-20231222090218578

四、用法:

先上一下我的配置(在上述两个配置路径中选一个进行配置即可。):

/var/log/nginx/*.log {
    create 0640 nginx nginx   #创建新的日志文件,并设置 权限为640,属于nginx用户,nginx组
    weekly      #每周进行轮换,简单理解为每周一个
    rotate 26   #最多保留26个,这里为了符合网络安全法及等保要求,留存180天。
    missingok   # 如果日志文件不存在,则忽略该错误
    notifempty   # 如果日志文件为空,则不执行轮换
    compress     # 压缩旧的日志文件
    delaycompress   # 在下次轮换时再压缩旧的日志文件,方便查询近期日志不用解压,看情况配置了。
    sharedscripts   # 所有轮换操作共用一个 postrotate 脚本,提高效率和可靠性
    postrotate      #在轮换前执行以下命令/脚本 
        /bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true
    endscript      #结束 prerotate 节点
}

详细参数:

daily    #指定转储周期为每天;

weekly    #指定转储周期为每周;

monthly    #指定转储周期为每月;

rotate 30 #保留30个备份;

compress #压缩转储的备份文件;

copytruncate #备份当前日志并截断;

nocreate #不创建新的日志文件;

create 0640 nginx nginx #创建新的日志文件,设置权限,用户及组;

notifempty #日志为空不转储;

dateext #为日志文件打上日期标签;

minsize 20M #日志大小大于20M后才能参与轮替;

ifempty #不论日志是否空,都进行轮替;

notifempty #若日志为空,则不进行轮替;

sharedscripts #作用域下文件存在至少有一个满足轮替条件的时候,所有轮换操作共用一个 postrotate 脚本,提高效率和可靠性

prerotate/endscript #在轮替之前执行之间的命令,prerotate与endscript成对出现。

配置完之后再强制执行一次(具体看你选择哪种方式配置执行):

使用第一种方式:logrotate -vf /etc/logrotate.conf

第二种方式:logrotate -vf /etc/logrotate.d/nginx(此处根据你实际配置文件名称)

以上就是使用Logrotate工具对nginx日志进行管理,如果其他的日志也可以按照这个方式进行配置,例如linux常用的审计日志

image-20231222090321318

这里采用第一种方式,在/etc/logrotate.conf文件中配置,当然,在配置之后也要执行 logrotate -vf /etc/logrotate.conf 。

扩展知识:Ubuntu安装

sudo apt update
sudo apt install logrotate

好了今天分享到此结束,有什么不同的看法或者好的建议,欢迎交流讨论,共同进步!

posted @ 2023-12-22 09:04  寻梦99  阅读(280)  评论(0)    收藏  举报