当前位置: 首页 > news >正文

systemd-journald和rsyslogd日志配置详解

        ubuntu20.04系统上存在多个日志收集工具,一个是systemd自带的sysemd-journaldrsyslogd。这两个日志工具并不冲突,当然也就意味着在某些配置下一条日志信息被存储了两遍即rsyslogd以文本的方式存储在/var/log/syslog文件中而systemd-journald以二进制的方式在/var/log/journal目录中也存储了一遍。rsyslogd是以文本方式存储日志,直接使用cat/tail -f 就可以查看日志内容,而systemd-journald是以二进制的方式存储日志,需要使用journalctl命令来查看日志。systemd服务(如 sshd、nginx)的日志会同时写入journald和syslog(通过 rsyslog转发)传统应用(如未适配 systemd 的脚本)可能仅写入 syslog。

        日志的配置重点如下:

                日志的大小(单个日志的大小或者整体日志的大小)

                日志轮转个数(能够存放几个日志)

                日志最大存储时间

1、rsyslogd日志配置详解

        syslog API​ 是Linux系统中应用程序与日志守护进程(如 syslogd、rsyslogd)通信的标准接口,通过一组C语言函数实现日志的发送、过滤和管理。它为应用程序提供了统一的日志记录方式,使得日志的格式、优先级和存储策略由系统级的配置文件统一控制,而非硬编码在应用程序中。

syslog API 包含以下核心函数,覆盖日志的初始化、发送、过滤和关闭操作:openlog():初始化日志连接(设置标识符、选项、设施),必须在 syslog() 前调用。syslog():发送日志消息到 syslog 守护进程(核心函数)。closelog():关闭日志连接(释放资源,可选,程序退出时自动调用)。setlogmask():设置日志掩码(过滤级别),控制哪些级别的日志会被发送。

下面是ubuntu下rsyslog的配置信息:/usr/sbin/rsyslogd -n -iNONE

root@mingl-ubuntu:/etc/rsyslog.d# cat 50-default.conf 
#  Default rules for rsyslog.
#
#            For more information see rsyslog.conf(5) and /etc/rsyslog.conf#
# First some standard log files.  Log by facility.
#
auth,authpriv.*            /var/log/auth.log
*.*;auth,authpriv.none        -/var/log/syslog
#cron.*                /var/log/cron.log
#daemon.*            -/var/log/daemon.log
kern.*                -/var/log/kern.log
#lpr.*                -/var/log/lpr.log
mail.*                -/var/log/mail.log
#user.*                -/var/log/user.log#
# Logging for the mail system.  Split it up so that
# it is easy to write scripts to parse these files.
#
#mail.info            -/var/log/mail.info
#mail.warn            -/var/log/mail.warn
mail.err            /var/log/mail.err#
# Some "catch-all" log files.
#
#*.=debug;\
#    auth,authpriv.none;\
#    news.none;mail.none    -/var/log/debug
#*.=info;*.=notice;*.=warn;\
#    auth,authpriv.none;\
#    cron,daemon.none;\
#    mail,news.none        -/var/log/messages#
# Emergencies are sent to everybody logged in.
#
*.emerg                :omusrmsg:*#
# I like to have messages displayed on the console, but only on a virtual
# console I usually leave idle.
#
#daemon,mail.*;\
#    news.=crit;news.=err;news.=notice;\
#    *.=debug;*.=info;\
#    *.=notice;*.=warn    /dev/tty8

在Linux中配置​rsyslog单个日志文件的大小,核心是通过logrotate工具​(Linux 日志轮转服务)实现,而非rsyslog自身直接控制
logrotate负责定期检查日志文件大小,超过阈值时自动轮转(重命名、压缩或删除旧日志),从而限制单个日志文件的大小。
rsyslog的日志轮转配置通常存放在/etc/logrotate.d/rsyslog(部分系统可能为 /etc/logrotate.conf或 /etc/logrotate.d/syslog)。

mingl@mingl-ubuntu:/etc/logrotate.d$ cat rsyslog 
/var/log/syslog
{rotate 7         #保留最近7个轮转后的日志文件daily              #每天检查一次(可选,若设置size则此参数可忽略)missingok        #若日志文件不存在,不报错notifempty      #若日志文件为空,不轮转delaycompress    #延迟压缩(下次轮转时压缩前一个日志,避免立即压缩)compress        #轮转后的旧日志压缩(生成.gz文件)postrotate        #轮转后执行的脚本/usr/lib/rsyslog/rsyslog-rotateendscript
}/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/debug
/var/log/messages
{rotate 4weeklymissingoknotifemptycompressdelaycompresssharedscriptspostrotate/usr/lib/rsyslog/rsyslog-rotateendscript
}

2、systemd-journald日志配置详解

        journald.conf配置文件内容如下,这些参数是systemd-journald的核心配置项,用于控制日志的速率、存储、保留、转发及级别过滤。


mingl@mingl-ubuntu:/var/log/journal$ cat /etc/systemd/journald.conf
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See journald.conf(5) for details.[Journal]
#Storage=auto		日志存储介质:- auto:优先使用持久化存储(/var/log/journal);- 若目录不存在,回退到内存(/run/log/journal);- 可选 volatile(仅内存)、none(禁用存储)。
#Compress=yes		是否压缩旧日志(节省磁盘空间,默认启用)
#Seal=yes			是否对日志文件进行加密密封(防篡改,默认启用,需 systemd-journald支持)
#SplitMode=uid		日志文件分割方式:- uid:按用户 ID 分割(默认);- none:不分割;- size:按大小分割(需配合 MaxFileSize)。
#SyncIntervalSec=5m		日志从内存缓冲区写入磁盘的最小时间间隔。速率限制L:防止日志"洪水",用于控制日志写入的频率,避免单个进程/服务疯狂写日志导致系统资源(磁盘、内存、CPU)耗尽。
#RateLimitIntervalSec=30s	日志速率限制的时间窗口​(默认 30 秒)
#RateLimitBurst=10000		每个时间窗口内允许的最大日志条数​(默认 10000 条)systemd-journald的日志分为持久化存储​(/var/log/journal)和内存临时存储​(/run/log/journal)
持久化存储(/var/log/journal)
#SystemMaxUse=		持久化存储的最大磁盘使用量​,超过则自动删除旧日志
#SystemKeepFree=		持久化存储需保持的最小空闲空间,不足则删除旧日志
#SystemMaxFileSize=		单个持久化日志文件的最大大小​,超过则轮转
#SystemMaxFiles=100		持久化日志文件的最大数量​(超过则删除最早的文件)内存临时存储(/run/log/journal)
#RuntimeMaxUse=		内存临时存储的最大使用量​,超过则删除旧日志
#RuntimeKeepFree=		内存临时存储需保持的最小空闲空间,不足则删除旧日志
#RuntimeMaxFileSize=		单个持久化日志文件的最大大小,超过则轮转
#RuntimeMaxFiles=100		持久化日志文件的最大数量​,超过则删除最早的文件日志保留策略,控制日志生命周期
#MaxRetentionSec=		日志的总保留时长​,如7d,保留最近7天的日志;未设置则由存储限制自动管理
#MaxFileSec=1month		单个日志文件的最大保留时长​,默认1个月,超过则轮转日志转发:控制日志流向,systemd-journald可将日志转发给其他服务如rsyslog、控制台,以下参数控制转发目标和行为
#ForwardToSyslog=yes		是否转发给rsyslogd,默认 yes,日志会写入 /var/log/syslog
#ForwardToKMsg=no 		是否转发给内核消息缓冲区(默认 no)
#ForwardToConsole=no		是否转发到物理控制台(默认 no)
#ForwardToWall=yes		是否转发到wall(控制台广播,默认 yes,紧急日志会显示在终端)
#TTYPath=/dev/console	wall消息的目标控制台路径(默认 /dev/console)日志级别过滤:控制存储/转发的详细程度
systemd-journald支持按日志级别过滤存储或转发的内容(级别从高到低:emerg> alert> crit> err> warning> notice> info> debug)#MaxLevelStore=debug		存储到journald的最高日志级别​(debug表示存储所有级别)
#MaxLevelSyslog=debug	转发给rsyslog的最高日志级别​(debug表示所有级别都转发)
#MaxLevelKMsg=notice		转发给内核消息的最高日志级别​(仅 notice及以上级别会被转发)
#MaxLevelConsole=info		转发到控制台的最高日志级别​(info及以上级别才会显示)
#MaxLevelWall=emerg		转发到wall的最高日志级别​(仅 emerg紧急级别会广播)#LineMax=48K		单条日志的最大长度​(超过部分会被截断,默认 48KB)
#ReadKMsg=yes		是否读取内核消息​(默认 yes,内核日志会进入 journald)

http://www.dtcms.com/a/471119.html

相关文章:

  • figma打开编辑器时发生错误
  • 网站备案有效期知乎问答网站开发教程
  • ArkTS 与 TypeScript:鸿蒙生态下的语言演进与实践指南
  • AI 赋能 IBMS 集成系统:从 “数据集成中枢” 到 “智慧决策大脑” 的跃升
  • 做医疗网站颜色选择杭州网页设计招聘网
  • 力扣面试经典150题day3第五题(lc69),第六题(lc189)
  • 做网站去哪好盘锦威旺做网站建设
  • 字符串相关的方法有哪些?
  • 标签预制体上的组件
  • cms免费企业网站湖南网站模板建站
  • 【流氓软件】流氓软件及处理方法
  • 网站开发职业怎么经营网店生意才会好
  • 自动化脚本矩阵运营
  • 《Effective Java》第一条:用静态工厂方法代替构造器
  • 怎么做可以访问网站连接加密互联网营销模式
  • Diff-Shadow阴影去除
  • 怎么去接网站来做天津手机网站建设制作
  • 引擎搜索入口aso优化重要吗
  • 做外贸 需要做网站吗知名网站定制报价
  • 四川刚刚发布的最新新闻seo标题优化
  • 一文读懂 Flink Exactly-Once 保证机制深度解析
  • wordpress批量发布内容好的seo平台
  • Unity框架YouYouFramework学习第1篇:游戏入口
  • 专业的建设网站服务公司.网站建设课程设计
  • lnmp利用wordpress网站内链优化策略
  • 宁波做网站的哪个好logo设计多少钱
  • 昂瑞微:科创板逐浪者,射频“芯”征程的领航旗舰
  • Cyanine5.5-PEG-OH,在近红外区发射可用于活体成像
  • 网站注册建设外网代理服务器网站
  • Python文件访问