0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用journalctl来读取、监控和分析Linux中的日志

CHANBAEK 来源:myfreax 作者:myfreax 2022-12-23 16:44 次阅读

Systemd是大多数主要Linux发行版的默认的初始化程序。Systemd的主要功能之一收集日志以及为分析日志提供工具。

在传统的SysV 初始化系统中,将日志存储在纯文本文件。读取和分析这些文件需要使用find、grep、cut和许多其他命令组合。

Systemd比Syslogs从更多的来源收集日志,以二进制格式保存日志,并为您提供命令行工具来读取、分析和操作日志。这比系统日志更精简。

journald是Systemd的守护进程,它从各种日志源收集日志,如syslog。journalctl是一个命令行工具,可让您与日志进行交互。

使用journalctl命令可以读取日志,实时监控日志,根据时间、服务、严重性等参数过滤日志。

在本教程中,我将向您展示如何使用journalctl来读取、监控和分析Linux中的日志。

启用journald服务

一些Linux发行版,特别是桌面发行版,默认情况下不启用日志。日志的默认目录是/var/log/journal

接下来,在etc/systemd/journald.conf文件中确保将值Storage设置为autopersistent

journald.conf文件包含默认值。因此,配置行前面有#符号,也意味着这些配置选项使用默认设置。如果要更改任何内容,请从该行中删除#。

阅读日志

我们向您展示一些journalctl命令最基本但最有用的示例。如果您只是在终端中输入journalctl命令,它将按时间顺序显示日志日志。

journalctl命令在将会调用less命令来向您显示日志。这意味着您可以与使用less命令相同的按键来移动日志。

如果您不希望日志以less命令的模式显示,则可以使用journalctl命令的--no-pager选项,这将直接在屏幕上显示整个日志。

journalctl
journalctl --no-pager

按时间倒序显示日志

默认情况下,journalctl命令按时间顺序显示日志。这意味着最早的存储日志首先显示。

如果您想首先查看最近的日志,可以使用journalctl命令的-r选项以相反的顺序显示日志。

journalctl命令它仍然使用less命令,显示日志,因此你可按快捷键q退出日志查看模式。

journalctl -r

查看最近 N行日志

您可以使用journalctl命令的-n选项选择仅显示指定行数最近的日志,而不是显示所有日志。

例如命令journalctl -n 25显示最近的 25 行日志。

journalctl -n 25

实时查看日志

现在你已经学会查看最近的日志,如果要实时查看日志,可以使用journalctl命令的-f选项。

与tail命令的-f选项一样,这将在追踪模式下实时显示日志。可以使用快捷键Ctrl+C命令退出实时视图。

journalctl -f

查看内核日志

Systemd会累积来自不同来源的日志。如果您只想查看Linux内核日志,可以使用journalctl命令的-k选项。

journalctl -k

查看所有日志

Systemd会根据当前用户权限是否显示用户可查看的日志。如果您是普通用户,它可能会显示一些日志,但不会显示所有日志。

如果您想访问所有日志,则应使用sudo运行journalctl命令。例如命令sudo journalctl

sudo journalctl

查看服务日志

journalctl命令的-u选项。可让您可以根据Systemd服务过滤日志。例如,你想查看 SSH服务生成的日志。请运行命令journalctl -u ssh

journalctl -u ssh

查看指定时间间隔的日志

这是日志的过滤功能的另一个示例。您可以过滤指定时间段的日志,并且有多种方法可以做到这一点。

您可以使用自然语言来过滤日志。像yesterday、today和tormrow这样的术语也会被识别。您还可以指定日期或日期时间组合。使用日期和时间指定时间段。

您甚至还可以使用-1h20min等相对时间来指定过去的1小时20分钟。journalctl命令的--since选项表示开始时间。--until选项表示结束时间。

journalctl --since=yesterday --until=now
journalctl --since "2020-07-10"
journalctl --since "2020-07-10 15:10:00" --until "2020-07-12"

根据UID、GID和PID过滤日志

如果您正在调试程序问题,您可能希望使用进程的PID查看日志。还可以根据用户 ID (UID)、组ID (GID) 和进程 ID (PID) 过滤日志日志。

journalctl _PID=1234

journalctl -xe

您经常会发现有人建议使用journalctl -xe命令。-e跳转到日志分页的末尾。-x选项添加日志的额外的消息解释。

某些日志消息具有正常日志查看中未显示的附加信息。使用-x选项可能会显示此类信息。附加信息有助于解释错误或日志事件的上下文以及可能的解决方案。

查看指定日志级别日志

您还可以使用日志级别来获取调试、警告甚至关键级别的日志。这里列出了所有日志级别和优先级。

0表示emerg紧急,1表示alert警报,2表示crit关键。3表示错误。4表示警告。5表示注意。6表示普通信息。7表示调试消息。

要查看当前会话中的所有错误级别的日志,可以运行命令journalctl -p 3 -xb-p选项指定日志级别,这里指定为3,也就是错误级别。

-x选项添加日志的附加信息。-b选项自上次启动,即当前会话以来。

journalctl -p 3 -xb

您还可以指定多个日志级别。例如您想查看当前会话中的所有警告、通知和信息日志,请运行命令journalctl -p 4..6 -b0

journalctl -p 4..6 -b0

查看日志大小

journald从各种来源收集日志,并存储包括调试日志在内的各种级别的日志。虽然保留日志有助于分析和审计,但它们会占用大量磁盘空间。

您可以运行命令journalctl --disk-usage检查日志占用多少磁盘空间。当您看到输出时,它将打印消息Archived and active journals take up 2.8G in the file system.。

journalctl --disk-usage

结论

journalctl命令还有很多选项和用法,这里不可能全部介绍。如果您想了解更多详细信息,建议您阅读其手册页。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11044

    浏览量

    207368
  • 命令
    +关注

    关注

    5

    文章

    638

    浏览量

    21895
  • 日志
    +关注

    关注

    0

    文章

    127

    浏览量

    10561
收藏 人收藏

    评论

    相关推荐

    Linux日志分析工具logwatch的安装及使用

    日志是非常重要的系统文件,管理员每天的重要工作就是分析和查看服务器的日志,判断服务器的健康状态。但是日志管理又是一项非常枯燥的工作,如果需要管理员手工查看服务器上所有的
    发表于 08-24 10:08 339次阅读

    flume监控nginx日志的使用和提交

    使用flume监控nginx日志并且提交到kafka里面
    发表于 04-16 07:33

    java 日志框架Spring Boot分析

    应用程序输出相应的日志。 在传统Java应用程序,我们一般会使用类似Log4j这样的日志框架输出
    发表于 09-28 14:58 0次下载

    linux系统日志在哪里

    Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息。日志文件的默认路径是:/var/log下面是几个重要的日志文件的路径及其包含的信
    发表于 11-03 12:25 3526次阅读
    <b class='flag-5'>linux</b>系统<b class='flag-5'>日志</b>在哪里

    对于大规模系统日志日志模式提炼算法的优化

    LARGE框架是部署在中国科学院超级计算环境日志分析系统,通过日志收集、集中分析、结果反馈等步骤对环境
    发表于 11-21 14:54 7次下载
    对于大规模系统<b class='flag-5'>日志</b>的<b class='flag-5'>日志</b>模式提炼算法的优化

    基于Hadoop与聚类分析的网络日志分析模型

    针对海量web日志数据在存储和计算方面存在的问题,结合当前的大数据威廉希尔官方网站 ,提出一种基于Hadoop与聚类分析的网络日志分析模型。利用Hadoop
    发表于 12-07 15:40 0次下载
    基于Hadoop与聚类<b class='flag-5'>分析</b>的网络<b class='flag-5'>日志</b><b class='flag-5'>分析</b>模型

    NAS日志分析用户指南

    摘要: NAS“日志分析”新功能,旨在帮助用户更好地监控文件系统资源。通过该功能,用户可以方便地跟踪系统性能问题,记录文件系统上的数据操作情况,审计文件删除等相关操作,有效监控各区域
    发表于 08-08 17:44 382次阅读

    Linux系统日志文件的JFS文件系统

    嵌入式linux中文站向大家介绍一下JFS文件系统。Linux系统日志文件的JFS系统, JFS 由IBM 公司开发,最初出现在AIX 操作系统之上,它提供了基于
    发表于 05-05 14:10 4868次阅读
    <b class='flag-5'>Linux</b>系统<b class='flag-5'>日志</b>文件<b class='flag-5'>中</b>的JFS文件系统

    学会用日志了解你的 Linux 系统

    Linux 系统日志非常重要,后台运行的程序(通常被称为守护进程或者服务进程)处理了你 Linux 系统的大部分任务。
    发表于 05-06 16:39 662次阅读

    Linux 中使用日志排错

    人们创建日志的主要原因是排错。通常你会诊断为什么问题发生在你的 Linux 系统或应用程序。错误信息或一系列的事件可以给你提供找出根本原因的线索,说明问题是如何发生的,并指出如何解
    发表于 04-02 14:33 272次阅读

    文件系统日志系统是如何实现的

    日志 本文聊聊文件系统日志系统,来看一个简单的日志系统是如何实现的。本文是接着前面的 xv6 系列,用到的一些前导知识不再说明,没看的
    的头像 发表于 09-29 11:04 1994次阅读
    文件系统<b class='flag-5'>中</b>的<b class='flag-5'>日志</b>系统是如何实现的

    嵌入式linux设备应用运行日志的实现

    嵌入式linux设备应用运行日志的实现      最近在做一个项目时,需要记录设备运行中情况,以方便对故障进行跟踪定位,完善.所以决定采用记录程序运行日志,经过在网上搜索,采用
    发表于 11-01 17:22 8次下载
    嵌入式<b class='flag-5'>linux</b>设备<b class='flag-5'>中</b>应用运行<b class='flag-5'>日志</b>的实现

    一个简单的日志分析工具Wbread介绍

    Wbread是一个简单的日志分析工具,设计初衷是为了方便安全人员日常工作,或者应急响应时的日志分析工具。
    的头像 发表于 10-27 10:18 893次阅读

    解析Linux系统日志

    日志记录了系统每天发生的各种各样的事情,比如监测系统状况、排查系统故障等。你可以通过日志检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。日志的主要功能是审计和监测,还可以实时地监
    的头像 发表于 01-05 09:41 1254次阅读

    log4j日志框架分析

    og4j是Apache下的一款开源的日志框架,能够满足我们在项目中对于日志记录的需求。log4j提供了简单的API调用,强大的日志格式定义以及灵活的扩展性。使用者可以自己定义Appender
    的头像 发表于 02-28 14:32 862次阅读
    log4j<b class='flag-5'>日志</b>框架<b class='flag-5'>分析</b>