0

0

Linux日志怎么切割_Linux日志使用logrotate按网络协议切割的详细配置方法

雪夜

雪夜

发布时间:2025-11-15 13:37:10

|

424人浏览过

|

来源于php中文网

原创

logrotate不直接支持按网络协议切割日志,但可通过服务配置将HTTP、TCP/UDP、SSH等协议日志分离至不同文件,并为每个文件创建独立的logrotate规则,实现分类切割。关键步骤包括:Nginx按scheme分离HTTP/HTTPS访问日志,rsyslog按%protocol%模板保存远程日志,SSH日志独立记录;随后在/etc/logrotate.d/下为每类日志配置相应策略,如nginx-http设为daily保留7天,remote-syslog weekly保留12周,auth.log weekly保留4周,并启用compress、create等选项;最后通过logrotate -d和-f测试配置并验证切割效果。该方法本质是基于日志路径和服务类型实现协议级管理。

linux日志怎么切割_linux日志使用logrotate按网络协议切割的详细配置方法

Linux系统中日志文件会随着时间不断增长,影响系统性能和管理效率。logrotate 是 Linux 下用于自动切割、压缩、归档日志的标准工具。虽然 logrotate 默认按时间或大小切割日志,但“按网络协议”切割并不是 logrotate 的原生功能。不过我们可以通过自定义配置,结合服务类型(如 TCP、UDP、HTTP 等)生成的日志路径,实现按协议分类并分别切割的目的。

理解“按网络协议切割”的实际含义

严格来说,logrotate 不直接识别网络协议来切割日志。所谓“按网络协议切割”,通常是指:

  • 不同网络服务(如 Nginx 处理 HTTP、rsyslog 接收 UDP 日志)写入不同的日志文件
  • 为每类协议对应的服务日志配置独立的 logrotate 规则
  • 实现按服务/协议分类管理日志生命周期

因此,关键是将不同协议相关的日志分离到不同文件,并为每个文件设置独立的切割策略。

配置步骤:以常见网络协议日志为例

假设我们有以下几种协议相关的日志需要独立切割:

  • HTTP/HTTPS:由 Nginx 记录访问日志
  • TCP/UDP Syslog:由 rsyslog 接收远程日志
  • SSH 登录:记录在 secure 或 auth.log 中

1. 确保日志按协议分离存储

先确认各服务已将日志写入独立文件:

# Nginx 配置(/etc/nginx/nginx.conf)
access_log /var/log/nginx/access-http.log;
error_log  /var/log/nginx/error.log;

若支持 HTTPS,可单独记录

access_log /var/log/nginx/access-https.log if=$scheme_https;

Rsyslog 接收远程 UDP/TCP 日志,按来源保存

/etc/rsyslog.conf

$ActionFileDefaultTemplate RSYSLOG_ForwardFormat module(load="imtcp" Port="514") module(load="imudp" Port="514")

按主机/IP或协议分类保存

$template RemoteLogs,"/var/log/remote/%fromhost%-%protocol%.log" . ?RemoteLogs

2. 为每类协议日志创建独立的 logrotate 配置

/etc/logrotate.d/ 下创建对应配置文件

Kacha
Kacha

KaCha是一款革命性的AI写真工具,用AI技术将照片变成杰作!

下载

HTTP 访问日志切割(/etc/logrotate.d/nginx-http)

/var/log/nginx/access-http.log {
    daily
    missingok
    rotate 7
    compress
    delaycompress
    notifempty
    create 0644 www-data adm
    sharedscripts
    postrotate
        systemctl reload nginx > /dev/null 2>&1 || true
    endscript
}

HTTPS 访问日志切割(/etc/logrotate.d/nginx-https)

/var/log/nginx/access-https.log {
    daily
    missingok
    rotate 10
    compress
    delaycompress
    notifempty
    create 0644 www-data adm
    sharedscripts
    postrotate
        systemctl reload nginx > /dev/null 2>&1 || true
    endscript
}

远程 UDP/TCP Syslog 切割(/etc/logrotate.d/remote-syslog)

/var/log/remote/*.log {
    weekly
    missingok
    rotate 12
    compress
    notifempty
    create 0644 syslog adm
    olddir /var/log/remote/archive
    prerotate
        mkdir -p /var/log/remote/archive
    endscript
}

SSH 登录日志切割(/etc/logrotate.d/ssh-auth)

/var/log/auth.log {
    weekly
    rotate 4
    compress
    missingok
    notifempty
    create 0640 root adm
    sharedscripts
    postrotate
        /usr/lib/rsyslog/rsyslog-rotate
    endscript
}

验证与调试 logrotate 配置

配置完成后,建议进行测试:

  • 语法检查logrotate -d /etc/logrotate.conf(dry-run 模式)
  • 手动执行logrotate -f /etc/logrotate.d/nginx-http
  • 查看状态cat /var/lib/logrotate/status

观察日志是否被正确切割、压缩,并确认 postrotate 脚本生效(如服务重载)。

总结:实现“按协议切割”的关键点

logrotate 本身不识别网络协议,但通过以下方式可实现按协议分类切割:

  • 服务端配置日志分离,如 Nginx、rsyslog 按协议写入不同文件
  • 每个协议对应一个或一组日志文件
  • 为每类日志编写独立的 logrotate 配置,灵活设置周期、保留策略等
  • 利用模板和变量(如 %protocol%)自动化命名和归档

基本上就这些。只要日志源头做好分类,logrotate 就能按需切割,达到“按网络协议管理日志”的效果。

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

227

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

490

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

496

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

223

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

329

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3505

2024.08.07

http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

270

2023.11.09

http请求415错误怎么解决
http请求415错误怎么解决

解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。更多http请求415错误怎么解决的相关内容,可以阅读下面的文章。

386

2023.11.14

php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

65

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 6.4万人学习

Git 教程
Git 教程

共21课时 | 2.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号