Ubuntu虚拟机查看系统日志的常用方法
journalctl是systemd的日志管理工具,适用于大多数现代Ubuntu版本(16.04及以上),支持强大的过滤和实时查看功能。
journalctl,会显示系统自启动以来的所有日志(按时间倒序排列)。-u参数指定服务名称,例如查看Nginx服务的日志:journalctl -u nginx。--since(开始时间)和--until(结束时间)参数,例如查看2025年10月1日至10月24日的日志:journalctl --since "2025-10-01 00:00:00" --until "2025-10-24 23:59:59"。-f参数,类似tail -f,实时显示新增的日志条目(常用于监控服务异常):journalctl -f。Ubuntu系统将大部分日志存储在/var/log目录下,通过命令行工具可直接查看:
/var/log/syslog包含系统启动、服务运行、用户操作等通用日志,使用cat /var/log/syslog查看全部内容,或tail -f /var/log/syslog实时跟踪。/var/log/auth.log记录用户登录、权限变更、sudo使用等认证相关信息,例如查看最近的登录记录:grep "session opened" /var/log/auth.log。/var/log/kern.log包含内核启动、硬件检测、驱动加载等内核层事件,也可通过dmesg命令直接查看内核环缓冲区内容(效果等同)。/var/log/apache2/error.log,Nginx的访问日志:/var/log/nginx/access.log。若虚拟机安装了图形桌面环境(如GNOME、KDE),可通过以下工具直观查看日志:
grep命令过滤特定关键词,例如查找/var/log/syslog中包含“error”的日志:grep "error" /var/log/syslog(忽略大小写加-i参数:grep -i "error")。/var/log/syslog中的错误数量:grep -c "error" /var/log/syslog。tail命令查看文件末尾的若干行,例如查看/var/log/syslog的最后50行:tail -n 50 /var/log/syslog(实时跟踪加-f参数)。