Ubuntu 中如何查看系统日志(syslog)?
Ubuntu 系统日志在 /var/log/syslog,用 cat/tail/grep/journalctl 查看。本文介绍查看方法、常用过滤技巧及 /var/log 下其他重要日志文件。
Ubuntu 的主系统日志是 /var/log/syslog,用 tail -f /var/log/syslog 实时跟踪,或 grep 关键词 /var/log/syslog 过滤。systemd 系统也可以用 journalctl 查看。
基本查看命令
# 实时跟踪最新日志
tail -f /var/log/syslog
# 查看最近 100 行
tail -n 100 /var/log/syslog
# 搜索关键词
grep "error" /var/log/syslog
grep "ssh" /var/log/syslog
# 分页浏览
less /var/log/syslog # 按 / 搜索,q 退出
journalctl 方式(更现代)
journalctl # 全部日志
journalctl -n 100 # 最近 100 行
journalctl -f # 实时跟踪
journalctl -u nginx # 只看某个服务
journalctl --since "1 hour ago" # 按时间过滤
journalctl -p err # 只看错误级别
/var/log 下的其他重要日志
| 文件 | 内容 |
|---|---|
/var/log/syslog |
系统主日志 |
/var/log/auth.log |
认证/登录/sudo |
/var/log/kern.log |
内核消息 |
/var/log/dmesg |
启动硬件信息 |
/var/log/apt/ |
软件包安装记录 |
/var/log/nginx/ |
Nginx 访问/错误日志 |
注意 RHEL/CentOS 的主日志是 /var/log/messages(不是 syslog)。
观测云对照
逐台服务器 SSH 上去翻 syslog 效率低。观测云 DataKit 可以采集 syslog 到平台,多台机器的系统日志统一检索,还能配置关键字告警(如出现 OOM、磁盘错误时通知)。
常见问题(FAQ)
Q:syslog 文件很大怎么快速看?
A:用 grep 先过滤、tail 看末尾、less 分页;老日志在 syslog.1、syslog.2.gz 等轮转文件中(zgrep 可以直接搜压缩文件)。
Q:日志里的时间是什么时区?
A:系统本地时区。timedatectl 查看当前系统时区设置。
Q:没有权限读 syslog?
A:日志默认属于 syslog:adm 组,把用户加进 adm 组(sudo usermod -aG adm 用户名)或用 sudo。