Logrotate日志切割工具的应用与配置

news2024/11/24 12:39:56

Logrotate日志切割工具的应用与配置,以下是公司生产环境亲测,跳了不少的坑,最后已经部署到生产了,可放心使用

简介

Logrotate是一个在Unix和类Unix系统(如Linux)上用于管理日志文件的实用程序。它可以帮助系统管理员自动地对日志文件进行轮转、压缩和删除,以避免日志文件不断增大占用过多的磁盘空间。

Logrotate的主要功能包括:
  1. 轮转日志文件:Logrotate可以按照一定的规则和时间间隔,将日志文件从当前时间点开始轮转,生成新的日志文件,同时保留一定数量的旧日志文件。这样可以让日志文件保持在一个可控的大小范围内,避免日志文件无限增长。
  2. 压缩日志文件:Logrotate可以对轮转后的日志文件进行压缩,以进一步减少磁盘空间的使用。压缩可以有效地减小日志文件的大小,同时保留文件的可读性,方便系统管理员进行故障排查和系统监控。
  3. 删除旧日志文件:Logrotate可以设置保留策略,自动删除过期或者不再需要的旧日志文件。这样可以避免过多的旧日志文件占用过多的磁盘空间。
  4. 配置灵活:Logrotate的配置文件可以根据不同的需求进行定制,可以灵活地设置日志文件的轮转规则、压缩方式、保留策略等。这使得Logrotate可以适应不同的系统和应用场景。

Logrotate是一个非常实用的工具,可以帮助系统管理员更好地管理和维护系统日志。通过Logrotate,系统管理员可以有效地控制日志文件的大小和数量,保证系统的稳定性和性能。

产生背景

1.线上nginx日志一天切割一次日志量10G左右,元旦至春节期间可达20G左右,服务器存储负载无法承受

2.切割后的日志不压缩,同步日志时间很长,日志归档相当不便,并且写入速度相当惊人,由此引发的思考是否要切割,是否要压缩

3.由于nginx产生的日志单体都比较大,为节省存储空间,方便查看,故此引入Logrotate做日志轮转切割处理

4.logrotate为linux原生工具,并且配合定时任务,稳定效果好,不存在安全问题

宗上所述,将nginx日志做切割、同步、删除处理,由此引入Logrotate

线上nginx日志现状:

测试

测试环境测试

测试节点:172.16.60.41

测试目录:/home/nginx/logs

测试时长:一周

测试用例:

测试问题一:执行脚本的时候清空原文件并压缩

测试问题二:压缩时间

测试问题三:压缩后的大小

测试问题四:压缩后的文件解压后是否与原文件大小和内容全部相同

测试问题五:在持续写入的情况下是否可以截断并压缩,如果不能需要先备份

测试问题六:是否按照规定周期压缩

测试问题七:是否需要设置定时任务

测试问题八:大数据量时操作时的效率问题

测试问题九:数据完整性

配置脚本:
/usr/local/nginx/logs/*.log {                           #日志文件所在的路径
        daily                                           #每天进行日志分割
        missingok                                       #在日志转储期间,任何错误将被忽略
        rotate 365                                      #保留365个备份
        compress                                        #通过gzip压缩转储以后的日志
        delaycompress                                   #delaycompress和compress一起使用时,转储的日志文件到下一次转储时才压缩,即这次切割的日志不压缩
        dateext                                         #日志后面带时间,如:nginx.access.log-20190516
        dateformat -%Y%m%d%s                            #日志时间格式
        dateyesterday                                   #如果定时任务时间设置的是0点就要配置此项,不然切割的内容是昨天的但是日志名却是当天的.
        notifempty                                      #当日志文件为空时,不进行轮转
        create 644 root root                            #轮转时指定创建新文件的属性
        sharedscripts                                   #运行postrotate脚本,作用是在所有日志都轮转后统一执行一次脚本。如果没有配置这个,那么每个日志轮转后都会执行一次脚本
            postrotate
                if [ -f /usr/local/nginx/nginx.pid ]; then
                    kill -USR1 `cat /usr/local/nginx/nginx.pid`
                fi
            endscript
}
定时任务:
#每天中午12点和0点各执行一次,可根据日志量调整时间
0 12,0 */1 * * /sbin/logrotate -f /etc/logrotate.d/nginx                              

测试结果:

#加了备份参数后源文件会被截断并清空后继续写入正常,截断后的文件压缩正常

#130M文件压缩需2秒,20G文件压缩大概需要3分钟,1G大小压缩不到10秒压缩后大小为1M

#130M文件压缩后大小为400k,20G文件压缩后大小为20M,根据写入内容不同稍有误差,后经实际信息测试误差在3倍左右

#经测试解压后文件大小相同

#测试中在持续写入的过程中可以正常截断压缩,7个文件每个300M生成压缩文件需要10几秒

#源文件inode号未变

#需要设置定任务并用绝对路径

#30个230M的文件执行一分钟,压缩后单个文件大小700K

#测试数据完整性得出的结论为,多次测试数据完整并无丢失现象出现

生产环境测试:

测试节点:172.16.4.116

测试目录:/home/nginx/logs

压缩比:1:36

脚本和定时任务同测试环境相同

结论:

测试结果与测试环境结果相同

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

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

相关文章

html书本翻页效果,浪漫表白日记本(附源码)

文章目录 1.设计来源1.1 书本正面1.2 界面1-21.3 界面3-41.4 界面5-61.5 界面7-81.6 界面9-101.7 界面11-121.8 书本结尾 2.效果和源码2.1 动态效果2.2 源代码 源码下载 作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/article/details/1…

Michael.W基于Foundry精读Openzeppelin第38期——AccessControlEnumerable.sol

Michael.W基于Foundry精读Openzeppelin第38期——AccessControlEnumerable.sol 0. 版本0.1 AccessControlEnumerable.sol 1. 目标合约2. 代码精读2.1 supportsInterface(bytes4 interfaceId)2.2 _grantRole(bytes32 role, address account)2.3 _revokeRole(bytes32 role, addre…

系列一、请谈谈你对JVM的理解?Java8的虚拟机有什么更新?

一、请谈谈你对JVM的理解?Java8的虚拟机有什么更新? JVM是Java虚拟机的意思。它是建立在操作系统之上的,由类加载器子系统、本地方法栈、Java栈、程序计数器、方法区、堆、本地方法库、本地方法接口、执行引擎组成。 (1&#xff0…

UniPro提高集成能力 让客户专注于交付价值

一千个哈姆莱特就有一千个读者,一千个开发团队,也会有各不相同的软件工具和工作流程。工具与工具之间,功能上的割裂亦或重叠,都会给企业和团队的协作带来阻塞,结果就会导致团队之间各自为战、信息孤岛的形成以及资源的…

TikTok与未来城市:数字社交如何影响城市发展

在数字化时代的浪潮中,社交媒体的兴起不仅仅改变了我们的个人生活,还深刻地影响了城市的发展和演变。其中,TikTok作为一款备受欢迎的短视频平台,正悄然改变着城市文化、社交互动和城市规划。本文将深入探讨TikTok对未来城市的影响…

Web server failed to start. Port 8080 was already in use.

Windows 服务端口被占用,杀死进程命令: netstat -ano | findstr 8080taskkill -PID [xxx] -F

电子科技大学 分布式系统 期末复习笔记

第一章 为什么需要分布式系统:功能分离,固有的分布性,负载均衡,可靠性,经济性。 定义:分布式系统是这样一种系统,其中位于联网计算机上的组件仅通过传递消息来通信和协调它们的操作。 特点&am…

Smart Tomcat的使用

文章目录 Smart Tomcat的作用Smart Tomcat的安装Smart Tomcat的配置Smart Tomcat的启动 Smart Tomcat的作用 我们知道使用Servlet来完成一个项目一共需要七个步骤,即创建maven项目、添加依赖、创建目录结构、编写代码、打包程序、部署程序、验证程序。这样的确是完…

Mysql之多表查询下篇

Mysql之多表查询下篇 满外连接的实现UNION关键字UNIONUNION ALL操作符 7种SQL JOINS的实现语法格式小结自然连接USING连接表连接的约束条件 满外连接的实现 在上篇博客中,我们可以了解到在Mysql中是不支持FULL JOIN来实现 满外连接的,那么我们在Mysql采用…

Leetcode—2760.最长奇偶子数组【简单】

2023每日刷题&#xff08;三十一&#xff09; Leetcode—2760.最长奇偶子数组 实现代码 #define MAX(a, b) ((a > b) ? (a): (b)) int longestAlternatingSubarray(int* nums, int numsSize, int threshold){int ans 0;int i 0;while(i < numsSize) {if(nums[i] >…

Wi-Fi 网络管理的最佳实践

无论是机场、银行、医院、IT 组织还是 MSP&#xff0c;如今 Wi-Fi 网络都在随处部署和使用。由于其成本效益、灵活性和简化的可扩展性&#xff0c;无线网络现已作为其 IT 基础设施的一部分被整合到许多网络中。但是&#xff0c;设置和管理 Wi-Fi 网络的任务并不像最终用户访问它…

【EI会议征稿】第五届人工智能与机电自动化国际学术会议(AIEA 2024)

第五届人工智能与机电自动化国际学术会议&#xff08;AIEA 2024&#xff09; 2024 5th International Conference on Artificial Intelligence and Electromechanical Automation 第五届人工智能与机电自动化国际学术会议&#xff08;AIEA 2024&#xff09;将于2024年3月8-10…

如何使用Matplotlib模块的text()函数给柱形图添加美丽的标签数据?

如何使用Matplotlib模块的text函数给柱形图添加美丽的标签数据&#xff1f; 1 简单引入2 关于text()函数2.1 Matplotlib安装2.2 text()引入2.3 text()源码2.4 text()参数说明2.5 text()两个简单示例 3 柱形图绘制并添加标签3.1 目标数据3.2 读取excel数据3.3 设置窗口大小和xy轴…

编译安装redis及配置多实例

yum安装是这种十分简单的方法我们就不在提及了&#xff0c;今天我们来做一下redis的编译安装 Redis源码包官方下载链接&#xff1a;http://download.redis.io/releases/ 一、编译安装&#xff1a; 安装依赖包 dnf -y install make gcc jemalloc-devel systemd-devel如果是…

配置环境-insightface-torch

1. 创建环境&#xff1a;conda create -n insightface2 python3.8 2.安装pytorch: 我的cuda 是 11.3 然后进入 pytorch 官网查找对应cuda 版本 pytorch 安装 建议使用 pip # CUDA 11.3 conda install pytorch1.12.1 torchvision0.13.1 torchaudio0.12.1 cudatoolkit11.3 -…

抖音订单列表查询api接口

怎么获取订单列表接口 请求地址&#xff1a;响应示例及参数

asp.net健身会所管理系统sqlserver

asp.net健身会所管理系统sqlserver说明文档 运行前附加数据库.mdf&#xff08;或sql生成数据库&#xff09; 主要技术&#xff1a; 基于asp.net架构和sql server数据库 功能模块&#xff1a; 首页 会员注册 教练预约 系统公告 健身课程 在线办卡 用户中心[修改个人信息 修…

数据结构--栈与队列

目录 前言 1.栈 1.1栈的概念及结构 1.2接口函数 1.3函数实现 1.4如何使用 2.队列 2.1队列的概念及结构 2.2接口函数 2.3函数实现 2.4如何使用 前言 前面我们已经学习了顺序表和链表&#xff0c;今天我们来学习栈与队列&#xff0c;这两种结构也属于线性表&#xff0c;实…

【数据结构初阶】单链表(附全部码源)

单链表 1&#xff0c;单链表的概念及结构2&#xff0c;单链表的实现2.1初始化内容&#xff08;所需文件&#xff0c;接口&#xff09;2.2申请结点2.3打印单链表2.4尾插2.5头插2.6尾删2.7头删2.8查找2.9在pos位置之后插入2.10在pos位置前面插入2.11删除pos之后的值2.12删除pos位…

2023亚太杯数学建模思路 - 案例:ID3-决策树分类算法

文章目录 0 赛题思路1 算法介绍2 FP树表示法3 构建FP树4 实现代码 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法&#xff0c;就是频繁模…