首页 > 其他分享 >Systemd日志管理服务:Journald以及重要配置选项

Systemd日志管理服务:Journald以及重要配置选项

时间:2025-01-07 10:12:36浏览次数:7  
标签:文件 Systemd journald log journal Journald systemd 日志

Journald是systemd引入的用于收集和存储日志数据的系统服务。它试图使系统管理员可以在越来越多的日志消息中更轻松地找到有趣且相关的信息。为了实现此目标,日记中的主要更改之一是用为日志消息优化的特殊文件格式替换简单的纯文本日志文件。这种文件格式使系统管理员可以更有效地访问相关消息。它还为单个系统带来了数据库驱动的集中日志记录实现的某些功能。

概览systemd-journald系统

Journald系统主要由三个主要的系统日记服务组件组成:

  • 守护程序:systemd日志服务由systemd-journald守护程序处理。
  • 配置文件:日志服务的配置在/etc/systemd/journald.conf里面设置。
  • 日志搜索程序:用于搜索日记日志文件的程序是journalctl。

本文主要介绍systemd-journald日志相关的重要配置选项:主要包括systemd-journald logrotate和存储类型选择功能。

Journald支持的不同类型的存储

我们可以通过修改/etc/systemd/journald.conf文件控制存储类型值,在[Journal]字符串下面可以修改存储类型。

[Journal]
#Storage=auto

Storage支持的值为volatile,persistent,auto和none,默认是auto,所有值的含义如下

  • 如果为volatile,则日志数据将仅存储在内存中,即在/run/log/journal目录下(根据需要创建)。
  • 如果是persistent,则数据将会存储在磁盘上,即/var/log/journal目录下,并且在早期引导阶段磁盘不可写的时候把数据保存到/run/log/journal目录下。
  • auto值意味着把日志数据存储在/var/log/journal/目录中。但是该目录必须已经存在并且设置了适当的权限。如果不存在,则日记数据将存储在易失性/run/log/journal/目录中,并且在系统关闭时会删除该数据。
  • none关闭所有存储,所有接收到的日志数据将被丢弃

对日志文件执行logrotate

systemd-journald日志文件的logrotate将基于以下值执行:

#SystemMaxUse=
#SystemKeepFree=
#SystemMaxFileSize=
#SystemMaxFiles=100
#RuntimeMaxUse=
#RuntimeKeepFree=
#RuntimeMaxFileSize=
#RuntimeMaxFiles=100
#MaxRetentionSec=
#MaxFileSec=1month

这些设置将会限制日志文件的大小上限。 以System开头的选项用于限制磁盘使用量, 也就是 /var/log/journal 的使用量。 以Runtime开头的选项用于限制内存使用量, 也就是 /run/log/journal 的使用量。

  • RuntimeMaxUse/SystemMaxUse= 控制日志最大可使用多少磁盘空间,然后对日志文件执行systemd-journald logrotate。默认为分配给节点的总物理内存的10%
  • RuntimeKeepFree/SystemKeepFree= 控制systemd-journald将为其他用途保留多少磁盘空间,之后将对日志文件执行systemd-journald logrotate。默认为分配给节点的总物理内存的15%
  • SystemMaxFileSize=/RuntimeMaxFileSize= 限制单个日志文件的最大体积, 到达此限制后日志文件将会自动滚动。 默认值是对应的 SystemMaxUse=/RuntimeMaxUse= 值的1/8 , 这也意味着日志滚动 默认保留7个历史文件。
  • SystemMaxFiles/RuntimeMaxFiles= 限制最多允许同时存在多少个日志文件, 超出此限制后, 最老的日志文件将被删除, 而当前的活动日志文件 则不受影响。 默认值为100个。
  • MaxRetentionSec=日志滚动的时间间隔。通常并不需要使用基于时间的日志滚动策略, 因为由SystemMaxFileSize/RuntimeMaxFileSize= 控制的基于文件大小的日志滚动策略已经可以确保日志文件的大小不会超标。 默认值是一个月, 设为零表示禁用基于时间的日志滚动策略。
  • MaxRetentionSec=日志文件的最大保留期限。 当日志文件的最后修改时间(mtime)与当前时间之差,大于此处设置的值时,日志文件将会被删除。 通常并不需要使用基于时间的日志删除策略。

如果我们检查systemd-journald的状态,那么我们可以看到它的报告日志已轮换:

$ systemctl status systemd-journald
● systemd-journald.service - Journal Service
   Loaded: loaded (/lib/systemd/system/systemd-journald.service; static; vendor preset: enabled)
   Active: active (running) since Sat 2019-11-23 08:34:43 CST; 3 months 14 days ago
     Docs: man:systemd-journald.service(8)
           man:journald.conf(5)
 Main PID: 404 (systemd-journal)
   Status: "Processing requests..."
    Tasks: 1 (limit: 9484)
   CGroup: /system.slice/systemd-journald.service
           └─404 /lib/systemd/systemd-journald

Nov 23 08:34:43 ubuntu systemd-journald[404]: Journal started
Nov 23 08:34:43 ubuntu systemd-journald[404]: Runtime journal (/run/log/journal/0bc1c3fec0b84c47ac1b0ea61a9db220) is 8.0M, max 79.5M, 71.5M free.
Nov 23 08:34:43 ubuntu systemd-journald[404]: Time spent on flushing to /var is 46.023ms for 1754 entries.
Nov 23 08:34:43 ubuntu systemd-journald[404]: System journal (/var/log/journal/0bc1c3fec0b84c47ac1b0ea61a9db220) is 504.0M, max 4.0G, 3.5G free.
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.

标签:文件,Systemd,journald,log,journal,Journald,systemd,日志
From: https://www.cnblogs.com/linhaostudy/p/18656990

相关文章

  • [读书日志]从零开始学习Chisel 第五篇:Scala面向对象编程——类继承(敏捷硬件开发语言Ch
    3.3类继承3.3.1Scala中的类继承为了节省代码量和反映实际各种类之间的联系,通常采取两种策略,包含和继承。包含是说明一个类中包含另一个类的对象,但两者之间没有必然联系。继承是从一个宽泛的类派生出更具体的类的过程,被继承的类称为“超类”或“父类”,而派生出来的类称为......
  • [读书日志]从零开始学习Chisel 第四篇:Scala面向对象编程——操作符即方法(敏捷硬件开发
    3.2操作符即方法3.2.1操作符在Scala中的解释在其它语言中,定义了一些基本的类型,但这些类型并不是我们在面向对象中所说的类。比如说1,这是一个int类型常量,但不能说它是int类型的对象。针对这些数据类型,存在一些基本操作符,比如算数操作符“+”。Scala所追求的是极致的面向对......
  • [读书日志]从零开始学习Chisel 第三篇:Scala面向对象编程——类和对象(敏捷硬件开发语言
    3.Scala面向对象编程3.1类和对象3.1.1类类是用class开头的代码定义,定义完成后可以用new+类名的方式构造一个对象,对象的类型是这个类。类中定义的var和val类型变量称为字段,用def定义的函数称为方法。字段也称为实例变量,因为每个被构造出来的对象都有自己的字段,但所有的对象公......
  • 云上数据安全保护:敏感日志扫描与脱敏实践详解
    作者:羿莉背景对企业数据进行敏感数据扫描和保护可以提升企业或组织的数据安全。一方面敏感数据可能包括个人身份信息、财务记录、医疗记录等,定期扫描这些数据可以防止未经授权的访问和泄露。另一方面,许多国家和地区都有关于数据保护的法律法规,如GDPR(通用数据保护条例)和数据安......
  • 操作日志记录
    操作日志一、基础准备(存储操作日志建议不要存储数据库,用户量和访问量大对性能影响很大,使用``logback-spring`把日志写进文件已经够用了,日志输出尽量详细点,直接下载日志文件就可以了)使用的操作记录日志表的建表SQLDROPTABLEIFEXISTS`t_operation_log`;CREATETABLE`t_o......
  • 定义自己的注解,用aop完成日志操作
    1.引入依赖<dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>${spring.version}</version></dependency>2.定义注解类//表示该注解使用的位置TYPE:类,接口FIELD:属性METHOD:方法......
  • Redis 服务器的日志文件
    这段日志是Redis服务器的日志文件,记录了Redis在运行过程中的一些事件和警告。下面是对日志中关键信息的分析:AsynchronousAOFfsyncistakingtoolong(diskisbusy?):这个警告表明Redis的异步AOF(AppendOnlyFile)持久化操作中的fsync调用花费了太长时间。这......
  • 关于 webservice 日志中 源IP是node IP的问题,是否能解决换成 真实的客户端IP呢
    本篇目录1.问题背景2.部署gitlab17.52.1添加repo源2.2添加repo源下载17.5.0的charts包2.3修改values文件2.3.1hosts修改如下2.3.2appConfig修改如下2.3.3gitlab下的sidekiq配置2.3.4certmanager修改如下2.3.5nginx-ingress修改如下2.3.6<可选>prometheus修......
  • Log Parser Lizard 8.7:一款用于高级日志分析的动态图形界面工具,使用 SQL 查询多种结构
    LogParserLizard:AdvancedSQLAnalysisforLogFiles LogParserLizard version 8.7lizardlabs(LizardLabsSoftware)·GitHubLogParserLizard:一款用于高级日志分析的动态图形界面工具使用SQL查询多种结构化日志数据,包括服务器日志和Windows事件日志。体......
  • 银河麒麟Linux同步时间:NTPd、Chrony、systemd-timesyncd 配置与使用
    1.时间同步协议服务对比在网络中,常用的时间同步协议服务主要有以下几种:特性NTPdsystemd-timesyncdChrony协议NTPSNTPNTP说明NTPd(NetworkTimeProtocoldaemon)是最经典的时间同步服务,使用NTP协议来同步系统时间。它支持复杂的配置,能够处理多个时间源,并且具有......