CentOS7下日志轮转logrotate简单入门与实践

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: CentOS7下日志轮转logrotate简单入门与实践

CentOS7下日志轮转logrotate简单入门与实践


一、logrotate介绍


logrotate是一个日志文件管理工具。用来把旧文件轮转、压缩、删除,并且创建新的日志文件。我们可以根据日志文件的大小、天数等来转储,便于对日志文件管理,一般都是通过cron计划任务来完成的


1、CentOS7发行版上都默认安装有logrotate包


rpm -qa | grep logrotate
rpm -ql logrotate

640.jpg


2、logrotate的配置文件


logrotate的配置文件是/etc/logrotate.conf,通常不需要对它进行修改。

可以针对特定应用程序或服务日志文件的轮循设置在独立的配置文件中,放在/etc/logrotate.d/目录下


cat /etc/logrotate.conf
cd /etc/logrotate.d/
ls -l

640.jpg

3、以nginx的日志轮转配置为例


/var/log/nginx/*log {
    create 0664 nginx root
    daily
    rotate 10
    missingok
    notifempty
    compress
    sharedscripts
    postrotate
        /bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true
    endscript
}


640.jpg


参数说明:

  • create 0644 nginx root: 以指定的权限创建全新的日志文件,同时logrotate也会重命名原始日志文件
  • daily:日志文件将按日轮循
  • rotate 10: 一次将存储10个归档日志。对于第11个归档,时间最久的归档将被删除
  • missingok: 在日志轮循期间,任何错误将被忽略,例如“文件无法找到”之类的错误。
  • notifempty: 如果日志文件为空,轮循不会进行。
  • compress: 在轮循任务完成后,已轮循的归档将使用gzip进行压缩
  • postrotate/endscript: 在所有其它指令完成后,postrotate和endscript里面指定的命令将被执行


4、logrotate日志轮转实操举例

640.jpg

1)、排障过程中的最佳选择是使用‘-d’选项以预演方式运行logrotate


logrotate -d /etc/logrotate.d/nginx

640.jpg


从上面的输出结果可以看到的,logrotate判断该轮循是不必要的

2)、即使轮循条件没有满足,我们也可以通过使用‘-f’选项来强制logrotate轮循日志文件,‘-v’参数提供了详细的输出


logrotate -vf /etc/logrotate.d/nginx


640.jpg


640.jpg


二、crontab实现定时任务


linux内置的cron进程能帮我们实现定时执行某些任务的需求,cron搭配shell脚本,非常复杂的指令也没有问题。


cron介绍


cron守护进程是一个由实用程序和配置文件组成的小型子系统,在几乎所有类 UNIX 系统上都可以找到某种风格的cron,我们可以用ps aux|grep cron找到crond这个守护进程。我们经常使用的是crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件。


  • /var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名
  • /etc/crontab 这个文件负责调度各种管理和维护任务。
  • /etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。


我们还可以把脚本放在/etc/con.hourly、/etc/con.daily、/etc/con.weekly、/etc/con.monthly目录中,让它每小时/天/星期、月执行一次。

640.jpg


crontab的使用


我们常用的命令如下:


crontab [-u username]    //省略用户表表示操作当前用户的crontab
    -e      (编辑工作表)
    -l      (列出工作表里的命令)
    -r      (删除工作)


我们用crontab -e进入当前用户的工作表编辑,是常见的vim界面。每行是一条命令。crontab的命令构成为 时间+动作,其时间有分、时、日、月、周五种,操作符有


* 取值范围内的所有数字
/ 每过多少个数字
- 从X到Z
, 散列数字


aaaa


以下是几个例子


时间                  注释
0 0 25 12 *     //在12月25日的0时0分
*/5 * * * *     //每过5分钟
* 4-6 * * *     //每天的4 5 6点
* * * * 2,5     //每周二和周五


三、crontab与logrotate配合使用举例

例如:每10分钟轮转/opt/logs/下的日志文件 当日志文件大小达到100M时进行轮转,最多保留5个


crontab -l
*/10 * * * * /usr/sbin/logrotate  /etc/logrotate.d/optlogs
cat /etc/logrotate.d/optlogs 
'/opt/logs/*.log' {
    create 0664 root root
    size 100M 
    rotate 5
    missingok
    notifempty
    compress
    sharedscripts
    postrotate
     /usr/bin/killall -HUP rsyslogd
    endscript
}


640.jpg

640.jpg

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
6月前
|
存储 消息中间件 Java
Apache Flink 实践问题之原生TM UI日志问题如何解决
Apache Flink 实践问题之原生TM UI日志问题如何解决
60 1
|
6月前
|
存储 监控 数据库
Django 后端架构开发:高效日志规范与实践
Django 后端架构开发:高效日志规范与实践
135 1
|
1月前
|
存储 监控 安全
网络安全视角:从地域到账号的阿里云日志审计实践
日志审计的必要性在于其能够帮助企业和组织落实法律要求,打破信息孤岛和应对安全威胁。选择 SLS 下日志审计应用,一方面是选择国家网络安全专用认证的日志分析产品,另一方面可以快速帮助大型公司统一管理多组地域、多个账号的日志数据。除了在日志服务中存储、查看和分析日志外,还可通过报表分析和告警配置,主动发现潜在的安全威胁,增强云上资产安全。
140 11
|
3月前
|
Java 中间件
SpringBoot入门(6)- 添加Logback日志
SpringBoot入门(6)- 添加Logback日志
136 5
|
4月前
|
Rust 前端开发 JavaScript
Tauri 开发实践 — Tauri 日志记录功能开发
本文介绍了如何为 Tauri 应用配置日志记录。Tauri 是一个利用 Web 技术构建桌面应用的框架。文章详细说明了如何在 Rust 和 JavaScript 代码中设置和集成日志记录,并控制日志输出。通过添加 `log` crate 和 Tauri 日志插件,可以轻松实现多平台日志记录,包括控制台输出、Webview 控制台和日志文件。文章还展示了如何调整日志级别以优化输出内容。配置完成后,日志记录功能将显著提升开发体验和程序稳定性。
197 1
Tauri 开发实践 — Tauri 日志记录功能开发
|
26天前
|
存储 运维 监控
金融场景 PB 级大规模日志平台:中信银行信用卡中心从 Elasticsearch 到 Apache Doris 的先进实践
中信银行信用卡中心每日新增日志数据 140 亿条(80TB),全量归档日志量超 40PB,早期基于 Elasticsearch 构建的日志云平台,面临存储成本高、实时写入性能差、文本检索慢以及日志分析能力不足等问题。因此使用 Apache Doris 替换 Elasticsearch,实现资源投入降低 50%、查询速度提升 2~4 倍,同时显著提高了运维效率。
金融场景 PB 级大规模日志平台:中信银行信用卡中心从 Elasticsearch 到 Apache Doris 的先进实践
|
2月前
|
存储 数据采集 监控
云上数据安全保护:敏感日志扫描与脱敏实践详解
随着企业对云服务的广泛应用,数据安全成为重要课题。通过对云上数据进行敏感数据扫描和保护,可以有效提升企业或组织的数据安全。本文主要基于阿里云的数据安全中心数据识别功能进行深入实践探索。通过对商品购买日志的模拟,分析了如何使用阿里云的工具对日志数据进行识别、脱敏(3 种模式)处理和基于 StoreView 的查询脱敏方式,从而在保障数据安全的同时满足业务需求。通过这些实践,企业可以有效降低数据泄漏风险,提升数据治理能力和系统安全性。
466 12
云上数据安全保护:敏感日志扫描与脱敏实践详解
|
2月前
|
存储 监控 安全
网络安全视角:从地域到账号的阿里云日志审计实践
日志审计的必要性在于其能够帮助企业和组织落实法律要求,打破信息孤岛和应对安全威胁。选择 SLS 下日志审计应用,一方面是选择国家网络安全专用认证的日志分析产品,另一方面可以快速帮助大型公司统一管理多组地域、多个账号的日志数据。除了在日志服务中存储、查看和分析日志外,还可通过报表分析和告警配置,主动发现潜在的安全威胁,增强云上资产安全。
|
1月前
|
运维 安全 专有云
专有云CentOS迁移替换实践分享|飞天技术沙龙-CentOS迁移替换专场
本次方案的主题是专有云CentOS迁移替换实践分享 ,围绕用户上云/迁云、自动化迁移管理平台技术开发以及 OS 迁移产品化流程等方面展开详细介绍。得益于操作系统团队提供的技术优化能力,以及成熟的迁移技术工具,阿里云和龙蜥社区为用户提供成熟和稳定的迁移方案,帮助大家从 CentOS 7/8 迁移到 Alibaba Cloud Linux /Anolis OS。 1. 专有云一站式迁云服务 2. OS 迁移产品化流程 3. 客户案例
|
3月前
|
存储 数据采集 监控
云上数据安全保护:敏感日志扫描与脱敏实践详解
随着企业对云服务的广泛应用,数据安全成为重要课题。通过对云上数据进行敏感数据扫描和保护,可以有效提升企业或组织的数据安全。本文主要基于阿里云的数据安全中心数据识别功能进行深入实践探索。通过对商品购买日志的模拟,分析了如何使用阿里云的工具对日志数据进行识别、脱敏(3 种模式)处理和基于 StoreView 的查询脱敏方式,从而在保障数据安全的同时满足业务需求。通过这些实践,企业可以有效降低数据泄漏风险,提升数据治理能力和系统安全性。