银河麒麟 V10 出问题了该看哪个日志?secure 找不到、journalctl 查不到历史,一次解决

服务起不来,你敲 systemctl status 只看到一行 failed,提示去看日志。你打开 /var/log 一翻,别人教程里说的 /var/log/secure 根本没有,journalctl -u nginx 一片空白,重启之后连上次为什么崩都查不到了。

这三个现象在麒麟上不是个例。桌面版和服务器版的日志路径是分家的,journald 默认不落盘,yum.log 还是个空壳。这篇按症状给路径,对着查就行。

一、先确认日志到底记没记上

别急着翻 /var/log,先用一条命令判断日志有没有进 systemd:

bash 复制代码
journalctl -u nginx --since "10 min ago"

有输出,说明日志已经进 journald,直接跳到第三节按关键字检索。

没输出,屏幕上只有一行 -- No entries --,说明你要找的日志根本不在 journald 里,得去文件里翻。这时候先判型,路径分家就是从这儿开始的:

bash 复制代码
cat /etc/.kyinfo 2>/dev/null | head -3
echo '---'
[ -f /etc/yum.repos.d/kylin.repo ] && echo '服务器版(yum 系,日志走 RHEL 路径)' || echo '桌面版(apt 系,日志走 Debian 路径)'

服务器版有 /etc/yum.repos.d/kylin.repo,桌面版没有。判完型,回第二节按症状找文件。

二、按症状找文件,别按目录背

下面这张表是解题路径,不是目录清单。左边是你遇到的现象,右边是去哪看。

你遇到的现象 去哪个文件 / 命令 版本差异
SSH 登录失败、怀疑有人扫端口 /var/log/secure 桌面版这里没有,改看 /var/log/auth.log
服务起不来、进程莫名退出 journalctl -u 服务名 -b 两版通用
机器上次为什么崩的 /var/log/journal/(需手动开,见第四节) 两版通用
装包装崩了、想回滚 /var/log/dnf.log 桌面版改看 /var/log/dpkg.log
磁盘满、想查谁写的 du -sh /var/log/* 两版通用
等保要审计记录 /var/log/audit/audit.log 需 auditd 在跑
程序被麒麟安全模块拦了 /var/log/kysec 麒麟专属,不在 audit.log 里
开机卡住、进不了系统 journalctl -b -1 -p err 看上一次启动
定时任务没执行 journalctl -u cron/var/log/cron 桌面版可能只有 journald
内核报硬件错、驱动加载失败 dmesg -Tjournalctl -k 两版通用

有坑/var/log/yum.log 在麒麟服务器版上是个空壳。麒麟的包管理实际是 dnf,yum 只是个软链,真正的记录写在 /var/log/dnf.log。你 cat yum.log 看到空文件,不代表没装过包。

有坑/var/log/messages 在部分桌面版上是空的,甚至不存在。桌面版的系统日志走 /var/log/syslog,别死磕 messages。

三、日志进了 journald 怎么检索

确认日志在 journald 里,这四条组合拳基本够用:

bash 复制代码
# 只看某个服务本次启动之后的日志
journalctl -u nginx -b

# 只看错误级别往上(emerg/alert/crit/err)
journalctl -u nginx -b -p err

# 按时间段切,支持自然语言
journalctl --since "2026-09-01 09:00" --until "2026-09-01 10:00"

# 实时跟,等价于 tail -f
journalctl -u nginx -f

查上一次崩溃原因,关键在 -b -1

bash 复制代码
journalctl -b -1 -p err --no-pager | head -50

-b 是本次启动,-b -1 是上一次启动,-b -2 是上上次。机器只要重启过,查上辈子的日志就只能靠它,前提是 journald 落了盘。

按进程号或者命令名精确定位:

bash 复制代码
journalctl _PID=1234
journalctl _COMM=sshd

只看内核环缓冲(等价于 dmesg,但能带时间戳和过滤):

bash 复制代码
journalctl -k -p err

四、查不到历史日志?journald 默认不落盘

这是最要命的一个坑。麒麟默认配置里 Storage=auto,意思是 /var/log/journal 目录存在就落盘,不存在就只放内存,重启即焚。

先看你机器现在落没落盘:

bash 复制代码
ls -ld /var/log/journal

目录不存在,就是这个坑。开持久化只要三步:

bash 复制代码
sudo mkdir -p /var/log/journal
sudo systemd-tmpfiles --create --prefix /var/log/journal
sudo systemctl restart systemd-journald

有坑 :只 mkdir 不重启 journald 不生效,日志还是写内存,重启照样丢。

落盘之后日志会一直涨,用这几条管住体积:

bash 复制代码
journalctl --disk-usage                 # 看现在占多大
sudo journalctl --vacuum-size=1G        # 砍到 1G 以内
sudo journalctl --vacuum-time=30d       # 只留最近 30 天

有坑--vacuum-size 直接删落盘的日志文件。执行前确认有没有等保或者审计的留存要求,生产机器上先备份 /var/log/journal 再清。

想彻底固定策略,编辑 /etc/systemd/journald.conf

ini 复制代码
[Journal]
Storage=persistent
SystemMaxUse=1G
MaxRetentionSec=30day

改完 systemctl restart systemd-journald 生效。

五、这三个日志不能用 cat 看

/var/log 下面有三个文件是二进制的,直接 cat 出来是一堆乱码:

bash 复制代码
last          # 读 wtmp,谁登录过、机器什么时候重启过
lastb         # 读 btmp,谁登录失败过(查暴力破解)
lastlog       # 读 lastlog,所有用户最后一次登录时间

查 SSH 暴力破解,一条命令就够:

bash 复制代码
lastb | awk '{print $3}' | sort | uniq -c | sort -nr | head -20

输出里次数特别高的 IP,直接拉进 /etc/hosts.deny,或者交给 firewalld 封掉。

六、验证你这套日志链路是通的

改完别拍脑袋就走,按顺序验证一遍:

bash 复制代码
# 1. 确认 journald 在跑且已落盘
systemctl is-active systemd-journald
ls /var/log/journal/

# 2. 写一条测试日志
logger -t test "kylin log check 2026"

# 3. 确认能查到
journalctl -t test --since "1 min ago"

# 4. 开个新终端 ssh 本机失败一次,确认认证日志在写
sudo tail -5 /var/log/secure      # 服务器版
sudo tail -5 /var/log/auth.log    # 桌面版

第 3 步能查到你刚写的 test,说明 journald 链路通。第 4 步能看到失败记录,说明认证日志链路通。两条都通,下次出事你才有的查。

七、防复发:把两件事定成规矩

第一件,装机或者接手一台新机器,先把 journald 持久化打开。没有落盘日志,事后排查全靠猜。

第二件,日志轮转别全指望默认配置。麒麟上 /etc/logrotate.conf 默认按周轮转、保留 4 份,磁盘紧张的机器容易在第一轮就被撑满。对增长快的日志单独配一份:

bash 复制代码
sudo vi /etc/logrotate.d/kylin-custom
text 复制代码
/var/log/dnf.log /var/log/kysec/*.log {
    weekly
    rotate 8
    compress
    missingok
    notifempty
}

改完用 logrotate -d /etc/logrotate.d/kylin-custom 干跑一遍校验语法,不报错就生效。


附:/var/log 路径与 journalctl 参数速查

路径 作用 版本
/var/log/secure 认证、SSH 登录 服务器版
/var/log/auth.log 同上 桌面版
/var/log/messages 系统主日志 服务器版
/var/log/syslog 同上 桌面版
/var/log/kern.log 内核日志 桌面版
/var/log/dnf.log 包管理记录(真实) 服务器版
/var/log/yum.log 空壳,看 dnf.log 服务器版
/var/log/dpkg.log 包管理记录 桌面版
/var/log/audit/audit.log 审计记录 需 auditd
/var/log/kysec 麒麟安全模块拦截 麒麟专属
/var/log/journal/ journald 落盘目录 需手动开
/var/log/boot.log 启动过程 部分版本空
/var/log/cron 定时任务 服务器版

journalctl 常用参数:

text 复制代码
-u 服务名       按服务过滤
-f              实时跟随
-b              本次启动;-b -1 上一次启动
--since/--until 按时间切
-p err          按级别(emerg/alert/crit/err/warning/notice/info/debug)
-k              只看内核日志
_PID= / _COMM=  按进程号 / 命令名
--disk-usage    看占用
--vacuum-size=  按体积清理
--vacuum-time=  按时间清理
--no-pager      不进分页,方便管道

日志这东西,平时没人看,一出事就是唯一的线索。核心就一句:先确认记没记上,再按症状找文件,查不到历史就把 journald 落盘打开。现在花三分钟开持久化,比出事之后抓瞎强得多。

相关推荐
DolphinDB18 小时前
持续升级!DolphinDB 全面完成银河麒麟 V11 兼容性认证
时序数据库·信创·银河麒麟·dolphindb
企业通信技术笔记20 小时前
信创环境下企业即时通讯IM怎么部署?5类方案的架构与适配思路
架构·私有化部署·信息与通信·信创·企业即时通讯
羌俊恩1 天前
信创数据库之华为Gaussdb 概览
信创·gaussdb·国产化·数据库改造评估·gtm-lite
布裘6 天前
【银河麒麟】服务器系统开机黑屏故障排查与修复
linux·运维·服务器·银河麒麟·无法启动
小白不想画工图13 天前
银河麒麟V10系统安装QT5.12
linux·开发语言·qt·银河麒麟
fo安方13 天前
项目管理—高级集成项目管理师–认证考试–案例分析
项目管理·信创
三84413 天前
应急响应之服务、文件痕迹、网络、日志排查 + 工具清单
网络·应急响应·日志排查·文件痕迹排查·应急响应报告模板·服务排查
武汉唯众智创13 天前
云计算实训室建设实战指南(2026版):从课程体系到信创落地的完整路线
云计算·信创·云计算实训室·产教融合·职业教育·云计算教学平台·实训室建设
江厌0115 天前
金融大模型私有化:信创合规下,算力该按哪个口径配
人工智能·深度学习·大模型·私有化部署·gpu·信创·ai服务器