系统日志工具 - 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
:指定日志级别,例如err
、crit
-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多平台发布
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。