系统出了状况,服务突然中断,或者某个功能行为异常——遇到这类问题,第一反应往往是“哪里出错了?”。在麒麟操作系统里,答案就藏在日志里。不过,日志并非只有一个入口,它像一套多层次的监控系统,从内核的底层硬件交互,到系统服务的运行状态,再到用户程序的执行轨迹,都被分门别类地记录下来。要想高效定位故障根源,就得知道去哪儿找、怎么看。下面这套方法,涵盖了从命令行到图形界面,从通用日志到专用记录的完整排查路径。
一、使用 journalctl 查看 systemd 管理的结构化日志
如今,journalctl 可以说是排查服务类问题的首选工具。它接管了由 systemd 启动的几乎所有组件的日志,包括内核消息、系统服务、用户会话等,并将其统一收集、索引。这种结构化的好处是,支持按时间、服务单元、优先级等多种维度进行精准筛选,非常适合快速缩小问题范围。
想看完整的系统日志流水账,按时间倒序排列(最新的在最后),直接运行:sudo journalctl。
如果日志太多,可以先只看最近的100条,避免信息过载:sudo journalctl -n 100。
当你在复现某个问题时,可以开启“实时追踪”模式,新产生的日志会持续滚动输出:sudo journalctl -f。
怀疑是某个特定服务(比如 sshd 或 docker)的问题?用 -u 参数限定查看范围:sudo journalctl -u sshd.service。
有时候,只想关注本次开机以来的日志,排除历史记录的干扰:sudo journalctl -b。
还可以用自然语言指定时间窗口,比如聚焦“过去30分钟”内发生的事件:sudo journalctl --since "30 minutes ago"。
二、直接读取 /var/log/ 目录下的持久化文本日志
尽管 journalctl 很方便,但传统的 /var/log/ 目录依然不可替代。这里存放着以纯文本格式持久化保存的各类日志文件,不依赖于 journald 服务是否运行。当系统严重故障导致 journalctl 无法使用时,或者需要进行离线审计、历史回溯时,这里就是最后的保障。
对于桌面版,系统通用事件通常记录在:sudo cat /var/log/syslog。
而在服务器版上,更常见的系统消息日志文件是:sudo cat /var/log/messages,里面包含了内核初始化、硬件检测等关键信息。
排查登录失败、权限问题,认证日志是关键:sudo cat /var/log/auth.log。
面对巨大的日志文件,用 less 命令分页浏览会更从容,支持上下滚动和搜索:sudo less /var/log/syslog。
想快速从海量日志中揪出错误线索?grep 命令是利器,比如搜索包含“error”、“failed”或“denied”的行:sudo grep -i "error\|failed\|denied" /var/log/syslog。
三、调用 dmesg 查看内核环形缓冲区日志
有些问题根子很深,比如硬件驱动加载失败、内存校验出错、存储设备识别异常。这时就需要请出 dmesg 了。它显示的是内核环形缓冲区里的信息,记录了从开机到运行时,内核与硬件打交道的所有细节。这部分日志默认不持久化到 /var/log/,但对于诊断底层故障无可替代。
直接运行 dmesg 输出的时间戳可能不太直观,加上 -T 参数,时间就变乘人类可读的格式了:sudo dmesg -T。
内核日志通常很冗长,可以先用 -l 参数过滤,只看错误(err)和警告(warn)级别的消息:sudo dmesg -l err,warn。
在插拔USB设备、安装新硬件时,可以开启“监控”模式,实时观察新出现的内核消息:sudo dmesg -w。
如果需要将当前内核日志保存下来,供后续分析或提交给技术支持,可以轻松导出到文件:sudo dmesg -T > ~/kernel_log.txt。
四、使用图形化日志查看器(桌面环境适用)
对于习惯图形化操作的用户,麒麟OS桌面版贴心地预装了图形日志查看器。它提供了可视化的日志分类树、关键词高亮、时间轴过滤等功能,让排查登录失败、应用启动异常、网络连接中断这类常见问题变得直观许多。
操作起来很简单:点击左下角的“开始菜单”,在“系统工具”或“控制中心”里找到并打开“日志查看器”。
在主界面左侧,你可以按类别选择,比如“系统日志”、“安全日志”或“应用程序日志”。
选中右侧列表中的任意一条日志,详细信息就会展开,其中关键字段(如优先级、服务单元、消息内容)会自动高亮显示,一目了然。
如果想快速定位,直接使用顶部的搜索框,输入“NetworkManager”、“failed”等关键词,结果会即时过滤出来。
排查完毕,还可以点击右上角的“导出”按钮,将当前视图保存为文本文件,方便分享或存档。
五、定位特定类型故障的专用日志路径
最后,还有一些子系统的日志比较“个性”,它们不走通用的 journalctl 或 syslog 通道,而是有自己独立的记录文件。排查特定问题时,如果主流路径找不到线索,别忘了去这些专用路径看看。
例如,定时任务(cron)的执行情况,通常有独立日志(如果存在的话):sudo cat /var/log/cron。或者在系统日志里搜索所有 CRON 相关的条目:sudo grep CRON /var/log/syslog。
如果系统启用了崩溃报告收集工具(如 ksysreport),可以查看崩溃摘要:sudo cat /var/crash/crash_summary.txt。
对于由 systemd-coredump 捕获的用户态程序崩溃,其元数据存放在:sudo ls -lt /var/lib/systemd/coredump/。
而对于更严重的内核崩溃(kernel panic),如果事先配置并启用了 kdump 服务,成功生成的内存转储镜像(vmcore)可以在 /var/crash/ 目录下找到:ls /var/crash/vmcore-*。

