在 Linux 中使用 journalctl 过滤、显示和维护日志

Linux 中的 journalctl 命令是查看、过滤和管理由 systemd-journald 管理的系统日志的最强大工具之一。

  • 允许管理员快速准确地搜索和过滤特定的系统事件。
  • 让用户可以自定义日志显示,以提高可读性并专注于分析。
  • 通过控制日志的大小、保留时间和持久性,帮助高效地管理日志存储。
  • 通过有条理且详细的日志洞察,简化系统监控和故障排除。

根据消息兴趣过滤日志

我们可以使用 journalctl 中的 -g 或 –grep 选项,根据特定的关键词或我们感兴趣的消息来过滤日志。这有助于我们只关注相关的日志条目,而无需阅读大量数据。

1. 根据关键词进行基本过滤

显示包含特定单词或消息的日志。

命令:

journalctl -g "error"
  • 显示所有包含单词 “error” 的日志条目。
  • 对于快速识别系统或服务错误非常有用。

输出:

!error

2. 在时间范围内根据关键词过滤

过滤在给定时间段内包含特定关键词的日志条目。

命令:

journalctl -g "error" --since "2024-06-01 08:00:00" --until "2024-06-01 10:00:00"
  • 显示 2024 年 6 月 1 日上午 8:00 到 10:00 之间所有包含 “error” 的日志条目。
  • 这有助于在对时间敏感的故障排查中缩小特定事件的范围。

输出:

!journalctl

3. 根据多个关键词过滤

我们可以搜索包含不止一个关键词的日志。

命令:

journalctl -g "error" -g "warning"
  • 显示所有包含 “error” 或 “warning” 的日志条目。
  • 非常适合识别关键和警告性的系统消息。

输出:

!abc

4. 根据精确匹配过滤

我们可以使用正则表达式过滤完全匹配短语的日志消息。

命令:

journalctl -g "^Service started$"
  • 仅显示与 “Service started” 完全匹配的日志消息。

修改日志显示

journalctl 命令提供了各种选项来自定义日志的显示方式,使其更具可读性,或更适合自动化的机器处理。

1. 默认输出

以默认的详细格式显示日志。

命令:

journalctl

输出:

!lala

  • 显示带有时间戳、服务名称和消息的日志。

2. 简短输出格式

以紧凑的格式显示日志,仅包含必要详细信息。

命令:

journalctl -o short

输出:

!efg

3. JSON 输出格式

以 JSON 格式显示日志,以便于程序解析。

命令:

journalctl -o json

输出(截断):

!json

4. JSON 美化格式

以人类可读的 JSON 格式显示日志。

命令:

journalctl -o json-pretty

输出:

!ctl

5. 详细输出

显示具有最大细节的日志,包括内部元数据。

命令:

journalctl -o verbose

输出:

!verbose

日志维护

维护系统日志有助于管理磁盘空间和性能。随着时间的推移,日志可能会变得很大——因此控制大小、保留时间和持久性非常重要。

1. 限制日志大小

限制日志日志使用的总空间。

命令:

sudo journalctl --vacuum-size=1G

输出:

!1g

  • 通过自动删除较旧的条目,将日志大小保持在 1 GB 以内。

2. 限制日志保留时间

删除早于特定时间的日志。

命令:

sudo journalctl --vacuum-time=2weeks

输出:

!2-weeks-

  • 保留最近 14 天的日志,删除较旧的日志。

3. 启用持久化日志存储

默认情况下,某些系统仅将日志保存在内存中(重启后丢失)。

  • 为了使日志在重启后依然保留:

命令:

sudo mkdir -p /var/log/journal
sudo systemctl restart systemd-journald
  • 创建一个用于永久存储日志的目录并重启 journald 服务。
  • 现在即使在系统重启后,日志也会保留。

4. 压缩旧日志

通过压缩旧日志来减少磁盘空间。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/22083.html
点赞
0.00 平均评分 (0% 分数) - 0