当前CentOS 7+、Ubuntu 16.04+、Debian 9+等均采用systemd管理系统,日志统一存储在journalctl的二进制文件中,查询更高效。
所有命令直接在终端输入即可,无需提前切换目录。
journalctl -f
按Ctrl+C退出实时滚动。
journalctl --since today
journalctl --since "2024-05-20 09:00:00" --until "2024-05-20 11:30:00"
journalctl -u nginx.service -f
journalctl -k
常用级别从高到低:emerg(系统不可用)、alert(必须立即处理)、crit(严重错误)、err(普通错误)、warning(警告)、notice(重要提示)、info(普通信息)、debug(调试信息),默认只显示warning及以上级别的实时信息。
仅查看错误及以上级别的日志
journalctl -p err -u sshd.service
journalctl -g "failed" --since yesterday
搜索支持正则表达式,比如搜索“connect refused”或“connection reset”:
journalctl -g "(connect refused|connection reset)"
Windows有两种查询方式:图形化界面适合新手,命令行/PowerShell适合批量或远程排查。
按Win+X组合键,选择「Windows PowerShell (管理员)」或「命令提示符 (管理员)」,输入eventvwr回车;或者右键点击「此电脑」→「管理」→左侧「事件查看器」。

左侧点击要查看的分类(如「系统」),右侧点击「筛选当前日志…」,在弹出的窗口中:
必须以管理员身份打开PowerShell。
Get-EventLog -LogName System -EntryType Error -After (Get-Date).AddDays(-1)
Get-WinEvent -FilterHashtable @{LogName='System';Id=6008;StartTime=(Get-Date).AddDays(-7)} | Format-List
Format-List 会输出所有详细信息,适合深度排查。
先回忆服务/系统故障的大概时间,用对应平台的时间过滤命令缩小范围,避免看大量无关日志。
Warning级别可能只是临时问题,Err/Crit/Alert/Emerg级别才是故障的直接线索。
找到第一条错误日志后,用关键词(如服务名、错误代码、IP地址)反向搜索,确认是否有前置或相关的触发日志。
journalctl -u nginx.service --since today > nginx-today.log
保存后的文件在当前终端目录,可用cat nginx-today.log查看。
图形化界面中右键点击要保存的分类→「将所有事件另存为…」,选择格式为「evtx」(可再次用Event Viewer打开)或「csv」(可用Excel查看)。
用命令journalctl -u sshd.service -g "Failed password" --since today查看,若有大量陌生IP尝试登录,说明是暴力破解,需修改SSH端口或配置防火墙。
事件ID 41是系统意外断电或重启,ID 6008是上次系统非正常关闭,可查看下方的「BugCheckCode」,复制代码到微软官方知识库(https://support.microsoft.com/zh-cn)搜索,获取具体的硬件/驱动故障原因。
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图