系统日志工具 - systemd-journald

1. systemd-journald

systemd-journald是Systemd管理的日志服务工具,负责收集、记录和存储系统所有Unit的日志。通过journalctl命令,可以查看所有内核日志和应用程序日志。这些日志信息以二进制格式存储在内存中,记录内核信息、启动过程、守护进程等产生的日志,并输出标准化的系统日志和错误信息。

示例命令

  • 使用journalctl查看所有日志:

    journalctl

2. systemd-journald服务管理

可以通过以下命令来管理systemd-journald服务,包括启动、停止、重启或查看服务状态:

systemctl start systemd-journald.service
systemctl stop systemd-journald.service
systemctl restart systemd-journald.service
systemctl status systemd-journald.service

3. systemd的日志配置文件

systemd的日志配置文件位于/etc/systemd/journald.conf,通过编辑此文件可以配置日志的行为。

4. systemd的日志存储路径

  • 在内存中存储:/run/log/journal,系统重启时会清除
  • 在磁盘中存储:/var/log/journal,需要手动创建此目录以启用磁盘存储

示例

  • 创建日志存储目录并重新启动服务:

    mkdir -p /var/log/journal
    systemctl restart systemd-journald.service

系统日志工具 - journalctl命令

5. journalctl命令选项

  • -n:限制显示最新的日志行数
  • -b:显示特定于某次启动的日志
  • -f:实时监测日志内容,类似于tail -f
  • --since --until:查看某时间段的日志,例如 "2024-07-08 00:00:00""30 min ago"
  • -p:指定日志级别,例如errcrit
  • -u:查看特定服务的日志
  • -k:查看内核日志(等同于dmesg
  • _PID=pid:只显示指定PID号相关的日志信息
  • --disk-usage:查看日志占用的磁盘空间

示例

  • 查看最近20行日志:

    journalctl -n 20

6. 设置日志文件大小和保存时间

  • 设置日志占用的最大空间:

    journalctl --vacuum-size=500M
  • 设置日志保存的最长时间:

    journalctl --vacuum-time=1month

系统日志工具 - dmesg查看启动日志

7. dmesg命令

dmesg命令用于显示系统启动时内核的日志信息。内核将这些信息存储在环形缓冲区(ring buffer)中,这些信息包括系统架构、CPU、硬盘、网卡等硬件驱动产生的日志。环形缓冲区是物理内存的一部分。

8. dmesg命令的常用选项

  • -T:时间戳会以人类易读的格式输出
  • -x:显示日志的等级

示例

  • 查看dmesg日志:

    dmesg -T

9. dmesg输出格式解释

dmesg输出的每一行包含以下字段:

  • 时间戳
  • 服务名称
  • 日志等级
  • 设备信息
  • 操作信息

示例

kern :notice: [2024-07-08 10:12:45] sd 6:0:0:0: [sdb] Attached SCSI removable disk

解释:上述日志表示在2024年7月8日10:12:45,内核检测到SCSI可移动磁盘已连接到设备sdb

本文由mdnice多平台发布


逼格高的汤圆
7 声望2 粉丝