查看服务器主机日志是排查故障、监控安全和了解系统运行状态的核心技能,不同的操作系统(主要是 Linux 和 Windows)查看日志的方法截然不同。
以下是针对主流操作系统的详细指南:
Linux 系统(最常见)
Linux 的日志系统主要依赖 systemd 的 journalctl 工具,或者传统的 /var/log 目录文件。
使用 journalctl 查看系统日志(推荐)
这是现代 Linux 发行版(如 CentOS 7+, Ubuntu 16.04+, Debian 8+)的标准方式。
- 查看所有日志:
journalctl
- 实时跟踪日志(类似
tail -f):journalctl -f
- 查看最近 100 行日志:
journalctl -n 100
- 查看今天的日志:
journalctl --since today
- 查看指定时间范围的日志:
journalctl --since "2026-10-01 10:00:00" --until "2026-10-01 12:00:00"
- 查看特定服务的日志(Nginx):
journalctl -u nginx.service
- 查看错误级别及以上的日志:
journalctl -p err
直接查看 /var/log 下的文本文件
传统方式,适用于较旧的系统或特定应用日志。
-
常用日志文件位置:
/var/log/messages或/var/log/syslog:系统通用日志。/var/log/auth.log或/var/log/secure:认证日志(登录尝试、SSH 连接等)。/var/log/dmesg:内核环形缓冲区信息(硬件启动、驱动加载等)。/var/log/cron:定时任务日志。
-
常用查看命令:
# 查看文件内容 cat /var/log/syslog # 实时查看最后几行 tail -f /var/log/syslog # 搜索包含 "error" 的行 grep -i "error" /var/log/syslog # 搜索并高亮显示 grep -i --color "error" /var/log/syslog
查看内核日志
dmesg | less # 或者 cat /var/log/dmesg
Windows 系统
Windows 主要通过 事件查看器 (Event Viewer) 和 PowerShell 来查看日志。
使用图形界面:事件查看器
- 打开方式:
- 按
Win + R,输入eventvwr.msc,回车。 - 或在开始菜单搜索“事件查看器”。
- 按
- 关键日志位置:
- Windows 日志 -> 系统:驱动程序、系统组件、内核错误等。
- Windows 日志 -> 应用程序:应用程序崩溃、软件异常等。
- Windows 日志 -> 安全:登录尝试、权限变更、审计事件(需提前启用审计策略)。
- 操作技巧:
- 点击“筛选当前日志”,可以按事件级别(错误、警告)、事件 ID 进行过滤。
- 双击具体事件可查看详细信息和堆栈跟踪。
使用 PowerShell 查看日志
适合远程管理或自动化脚本。
- 查看最近 10 条系统错误:
Get-EventLog -LogName System -EntryType Error -Newest 10 - 查看特定事件 ID(如登录失败 ID 4625):
Get-EventLog -LogName Security -InstanceId 4625 -Newest 5
- 实时跟踪日志:
Get-EventLog -LogName System -Wait
查看 IIS 日志(Web 服务器)
如果运行的是 Web 服务,日志通常位于:%SystemDrive%inetpublogsLogFilesW3SVC1
文件名为 u_ex[日期].log,可用文本编辑器或 LogParser 工具分析。
通用排查技巧与最佳实践
明确你要找什么?
- 系统崩溃/重启? 查看内核日志(Linux:
dmesg,/var/log/kern.log; Windows: 系统日志中的“错误”级别)。 - 服务无法启动? 查看对应服务的日志(Linux:
journalctl -u <service>; Windows: 应用程序日志)。 - 安全入侵/暴力破解? 查看认证日志(Linux:
/var/log/auth.log; Windows: 安全日志中的 ID 4625)。 - 磁盘/硬件故障? 查看 SMART 信息或内核消息(Linux:
dmesg | grep -i error; Windows: 系统日志)。
高效搜索技巧
- 使用
grep(Linux) 或Select-String(PowerShell):# Linux: 查找包含 "panic" 或 "segfault" 的行 grep -E "panic|segfault" /var/log/syslog
- 结合时间过滤: 日志量巨大,务必先缩小时间范围。
- 关注“错误”和“警告”: 信息”级别日志噪音太大,优先排查
Error和
Warning。
日志轮转(Log Rotation)
- Linux 中,旧日志会被压缩保存,如
syslog.1,syslog.2.gz。 - 使用
zgrep或zcat查看压缩日志:zgrep "error" /var/log/syslog.2.gz
日志集中化管理(进阶)
当服务器数量增多时,建议部署日志收集系统:
- ELK Stack (Elasticsearch, Logstash, Kibana)
- Graylog
- Splunk
- Promtail + Loki (轻量级)
这些工具可以将分散的日志集中存储、搜索和可视化,极大提升排查效率。
快速自查清单
| 问题类型 | Linux 推荐命令 | Windows 推荐位置 |
|---|---|---|
| 系统启动失败 | journalctl -xb |
事件查看器 -> 系统 -> 启动 |
| SSH 登录失败 | grep "Failed password" /var/log/auth.log |
事件查看器 -> 安全 -> ID 4625 |
| 服务崩溃 | journalctl -u <service_name> -n 50 |
事件查看器 -> 应用程序 |
| 磁盘空间满 | df -h + du -sh / |
磁盘管理 + 系统日志 |
| 网络问题 | journalctl -k | grep -i error |
事件查看器 -> 系统 |
提示: 在生产环境中操作前,请确保你有足够的权限(Linux 用
sudo,Windows 用管理员身份运行),并避免在生产高峰期执行可能影响性能的日志导出操作。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/485033.html



