linux系统日志排查需结合journalctl(systemd日志)和/var/log/下syslog文件:前者支持时间过滤、服务筛选与实时追踪;后者含messages、secure等文本日志,可用less/grep分析;启用journald持久化可跨重启保留日志;rsyslog服务状态与配置亦需检查。

如果您需要排查Linux系统中的异常行为或服务故障,查看系统日志是关键步骤。Linux提供多种日志机制,包括传统的syslog(如rsyslog、syslog-ng)和现代的systemd-journald日志服务。以下是针对不同日志系统的具体查看方法:
一、使用journalctl查看systemd日志
journalctl是systemd提供的原生日志查询工具,所有由systemd管理的服务日志默认由journald收集并存储在二进制格式中,支持时间过滤、服务筛选与实时跟踪。
1、查看全部日志(从最早到最新):journalctl
2、查看最近一次启动的日志:journalctl -b
3、查看指定服务的日志(例如sshd):journalctl -u sshd.service
4、实时追踪新增日志(类似tail -f):journalctl -f
5、按优先级过滤(例如只显示错误及以上):journalctl -p err
二、查看传统syslog文件(/var/log/)
rsyslog或syslog-ng等守护进程将结构化日志写入纯文本文件,位于/var/log目录下,适合直接用文本工具读取和分析。
1、查看内核环形缓冲区日志(启动阶段关键信息):dmesg
2、查看系统引导和硬件检测日志:cat /var/log/dmesg
3、查看系统常规消息(等效于syslog):cat /var/log/messages
4、查看认证相关日志(登录、sudo、SSH):cat /var/log/secure
5、查看系统启动过程详细记录:cat /var/log/boot.log
三、使用less或grep辅助分析日志
原始日志文件通常较大,需借助分页或搜索工具定位关键事件,避免人工扫描全量内容。
1、分页查看messages并高亮关键词“failed”:less +/failed /var/log/messages
2、搜索过去24小时内包含“Connection refused”的日志行:journalctl --since "24 hours ago" | grep "Connection refused"
3、统计auth日志中失败登录次数:grep "Failed password" /var/log/secure | wc -l
4、按时间倒序显示最近100行系统消息:tail -100 /var/log/messages | tac
四、启用持久化journal日志存储
默认情况下,journald仅将日志保存在内存或/run/log/journal(重启后丢失),启用持久化可确保日志跨重启保留,便于事后回溯。
1、创建日志存储目录:mkdir -p /var/log/journal
2、设置目录归属:chown root:systemd-journal /var/log/journal
3、设置访问权限:chmod 2755 /var/log/journal
4、重启journald服务使配置生效:systemctl restart systemd-journald
五、检查rsyslog服务状态与配置
若系统仍运行rsyslog,则其主配置文件决定日志分类、输出路径及远程转发策略,确认其运行状态是验证日志是否正常写入的前提。
1、检查rsyslog服务是否正在运行:systemctl is-active rsyslog
2、查看rsyslog当前配置文件路径:rsyslogd -N1
3、手动重载rsyslog配置而不中断服务:systemctl reload rsyslog
4、验证配置语法是否正确:rsyslogd -f /etc/rsyslog.conf -t










