一、使用 journalctl 命令(systemd 日志管理工具)
journalctl 是 Ubuntu 系统默认的日志管理工具,可集中查看系统和服务的日志,支持按时间、服务、关键词过滤,功能强大。
sudo journalctl(需 root 权限,显示完整的日志流)。sudo journalctl -n 100(显示最近的 100 条日志,可替换为其他数字调整数量)。sudo journalctl -u <service_name>(如 sudo journalctl -u apache2 查看 Apache 服务日志,sudo journalctl -u mysql 查看 MySQL 服务日志)。sudo journalctl --since "2025-10-01" --until "2025-10-24"(查看 2025 年 10 月 1 日至 24 日的日志,支持“today”“yesterday”等快捷关键词)。sudo journalctl -f(类似“tail -f”,实时显示新产生的日志,按 Ctrl+C 退出)。二、查看 /var/log 目录下的文本日志文件
Ubuntu 的系统日志以文本形式存储在 /var/log 目录下,不同文件记录不同类型的事件,适合针对性查看。
/var/log/syslog(包含系统启动、守护进程运行、常规信息等,使用 sudo less /var/log/syslog 或 sudo tail -f /var/log/syslog 实时查看)。/var/log/auth.log(记录用户登录、sudo 使用、认证失败等事件,如 sudo grep "Failed password" /var/log/auth.log 可排查未授权登录尝试)。/var/log/kern.log(记录内核运行状态、硬件交互信息,如 sudo less /var/log/kern.log)。dmesg 命令(无需查看文件,直接显示内核环缓冲区中的消息,如 dmesg | less 分页查看,dmesg | grep -i error 筛选错误信息,常用于硬件故障排查)。/var/log/apache2/error.log(查看 Apache 错误日志)、Nginx 的 /var/log/nginx/error.log(查看 Nginx 错误日志),使用 sudo tail -f <日志路径> 可实时监控服务状态。三、使用命令行工具过滤日志内容
对于大型日志文件,可通过 grep、awk、sed 等工具快速筛选关键信息,提升排查效率。
sudo grep "ERROR" /var/log/syslog(在 syslog 中查找包含“ERROR”的行,突出显示错误信息)。sudo grep -c "ERROR" /var/log/syslog(统计 syslog 中“ERROR”的行数,快速了解错误频率)。awk '/ERROR/ {print $1, $2, $3}' /var/log/syslog(提取包含“ERROR”的行的时间戳(前三个字段),便于分析错误发生时间)。四、图形界面工具(适合偏好可视化操作的用户)
若不想使用命令行,可安装图形化日志查看工具,操作更直观。
sudo apt install gnome-logs;运行:在应用菜单搜索“Logs”,打开后可按时间、服务、日志级别(如“错误”“警告”)筛选日志,支持点击条目查看详情。sudo apt install ksystemlog;运行:在应用菜单搜索“System Log”。sudo apt install logwatch;运行:sudo logwatch(默认发送报告到邮件,若需终端查看可添加 --output mail 参数)。