Linux日志管理logrotate日志轮转

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 上篇文章学习了系统日志管理,对于日志来讲他是占内存的,当有大量的日志产生的时候,会有一天占满我们的内存,所以出现了日志轮转,轮转日志会删除时间久远的日志,来节省空间,这篇文章就是带大家了解学习日志轮转,通过本篇文章了解日志轮转的相关配置文件,学习怎么配置日志轮转,根据我们的需求进行配置,下面来进行学习吧。

前言


上篇文章学习了系统日志管理,对于日志来讲他是占内存的,当有大量的日志产生的时候,会有一天占满我们的内存,所以出现了日志轮转,轮转日志会删除时间久远的日志,来节省空间,这篇文章就是带大家了解学习日志轮转,通过本篇文章了解日志轮转的相关配置文件,学习怎么配置日志轮转,根据我们的需求进行配置,下面来进行学习吧。


日志轮转简介

日志   记录了程序运行时各种信息;

通过日志可以分析用户行为,记录运行轨迹,查找程序问题;

可磁盘的空间是有限的;

日志轮转就像飞机里的黑匣子,记录的信息再重要也只能记录最后一段时间发生的事;

为了节省空间和整理方便,日志文件经常需要按时间或大小等未读分成多分,删除时间久远的日志文件。


工作原理

  日志轮转是按照配置来激进行轮转的。


配置文件种类

主配置文件:/etc/logrotate.conf(决定每个日志文件如何轮转)。

子配置文件夹:/etc/logrotate.d/*(.d是子目录,自定义,后期出问题好管理,程序运行依靠主文件)。


观察主文件和子文件

[root@localhost ~]# ls /etc/logrotate.conf  /etc/logrotate.d

/etc/logrotate.conf

/etc/logrotate.d:

bootlog  firewalld    libvirtd       ppp     syslog

chrony   httpd        libvirtd.qemu  psacct  wpa_supplicant

cups     iscsiuiolog  numad          samba   yum

每安装一个程序都可能生成一个配置文件。


主配置文件介绍

主配置文件路径为:/etc/logrotate.conf


[root@localhost ~]# vim /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly
# 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
}


  首先我们忽略#注释部分,主配置文件分为两个部分,一部分是全局设置,一部分是对某日志设置轮转,下面来详细介绍这些配置。

====================全局设置========================

weekly                                 //轮转的周期,一周轮转

rotate 4                               //保留4份

create                                  //轮转后创建新文件

dateext                               //使用日期作为后缀

#compress                          //是否压缩

include   /etc/logrotate.d                      //包含改目录下的子配置文件

=================================================

var/log/wtmp{                 //对某日志文件设置轮转的方法

monthly                               //一月轮转一次

minsize 1M                      //最小达到1M才轮转,monthly and minsize

create 0664 root utmp       //轮转后创建新文件,并设置权限

rotate 1                                  //保留一份

}

===================================================

/var/log/btmp{

missingok                       //丢失不提示

monthly                         //每月轮转一次

create 0600 root utmp              //轮转后创建新文件,并设置权限

rotate 1                               //保留一份

}


yum日志轮转示例

轮转的目标文件/var/log/yum.log


配置轮转规则

vim /etc/logrotate.d/yum


/var/log/yum.log{
missingok                     //丢失不执行
#notifempty                 //空文件不论转
#size 30k                  //达到30k轮转,daily or size
#yearly                       //或者一年一轮转
daily                              //缩小周期到1天
rotate 3                           //轮转保留3次
create 0600 root root     
}

rotate 3演示

设置每天轮转一次并且会创建新文件,所以每天都会有一个文件生成,因为只保留三份,所以只会保留最近三个,如图红框内是保留部分,灰色字体部分是会被删除部分,这就是轮转节省空间的实质,不会保留所有日志,会指定保存分数以及轮转周期,节省日志空间。


09512e4c37c541ceb24538fe9d116fae.png


总结

通过本篇文章带大家了解学习日志轮转,了解日志轮转的优点以及对日志轮转的配置。



相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
6天前
|
SQL 存储 JSON
更快更强,SLS 推出高性能 SPL 日志查询模式
从海量的日志数据中,按照各种灵活的条件进行即时查询搜索,是可观测场景下的基本需求。本文介绍了 SLS 新推出的高性能 SPL 日志查询模式,支持 Unix 风格级联管道式语法,以及各种丰富的 SQL 处理函数。同时通过计算下推、向量化计算等优化,使得 SPL 查询可以在数秒内处理亿级数据,并支持 SPL 过滤结果分布图、随机翻页等特性。
231 66
|
5天前
|
数据采集 监控 数据安全/隐私保护
掌握Selenium爬虫的日志管理:调整–log-level选项的用法
在Selenium Web数据采集时,日志管理至关重要。通过调整`–log-level`参数可优化日志详细度,如设置为`INFO`记录一般操作信息。结合代理IP、Cookie及user-agent配置,不仅能提高采集成功率,还能规避反爬机制。合理选择日志级别有助于调试与性能平衡,在复杂的数据采集任务中保持程序稳定与可控。
掌握Selenium爬虫的日志管理:调整–log-level选项的用法
|
3天前
|
XML Java Maven
Spring5入门到实战------16、Spring5新功能 --整合日志框架(Log4j2)
这篇文章是Spring5框架的入门到实战教程,介绍了Spring5的新功能——整合日志框架Log4j2,包括Spring5对日志框架的通用封装、如何在项目中引入Log4j2、编写Log4j2的XML配置文件,并通过测试类展示了如何使用Log4j2进行日志记录。
Spring5入门到实战------16、Spring5新功能 --整合日志框架(Log4j2)
|
8天前
|
监控 关系型数据库 Linux
Linux日志管理工具:Logrotate(二)
Linux日志管理工具:Logrotate(二)
12 2
|
4天前
|
存储 Kubernetes Java
阿里泛日志设计与实践问题之在写多查少的降本场景下,通过SLS Scan方案降低成本,如何实现
阿里泛日志设计与实践问题之在写多查少的降本场景下,通过SLS Scan方案降低成本,如何实现
|
4天前
|
弹性计算 监控 索引
阿里泛日志设计与实践问题之SLS Scan服务的稳定性和可用性如何保证
阿里泛日志设计与实践问题之SLS Scan服务的稳定性和可用性如何保证
|
4天前
|
存储 SQL JSON
阿里泛日志设计与实践问题之SLS Scan的语法该如何定义
阿里泛日志设计与实践问题之SLS Scan的语法该如何定义
|
6天前
|
应用服务中间件 Linux nginx
Nginx log 日志文件较大,按日期生成 实现日志的切割
Nginx log 日志文件较大,按日期生成 实现日志的切割
27 0
|
6天前
|
Java
Intellij IDEA 显示 access.log 日志
Intellij IDEA 显示 access.log 日志
4 0
|
8天前
|
存储 监控 安全
Linux日志管理工具:Logrotate(一)
Linux日志管理工具:Logrotate(一)
31 0