Linux日志实时监控常用五种方法:一、tail -f跟踪日志;二、journalctl -f查看systemd日志;三、less +F交互式监控;四、tail -f | grep条件过滤;五、multitail多文件分屏监控。

如果您需要在Linux系统中查看日志文件并实现实时监控,通常是因为排查服务异常、分析用户行为或追踪系统事件。以下是几种常用且有效的操作方式:
一、使用tail命令实时跟踪日志
tail命令默认显示文件末尾内容,配合-f参数可实现持续输出新增行,适用于监控正在写入的日志文件。
1、打开终端,输入以下命令以实时查看/var/log/syslog文件:
2、tail -f /var/log/syslog
3、如需限制初始显示行数(例如只看最后50行),可使用-n参数:
4、tail -n 50 -f /var/log/auth.log
5、按Ctrl+C可退出实时监控模式。
二、使用journalctl查看systemd日志
对于使用systemd初始化系统的Linux发行版(如Ubuntu 16.04+、CentOS 7+),journalctl是管理和查询日志的统一接口,支持时间过滤、服务筛选和实时滚动。
1、查看全部日志并实时跟随新条目:
2、journalctl -f
3、仅监控特定服务(如nginx)的日志:
4、journalctl -u nginx.service -f
5、从最近10分钟开始实时查看系统日志:
6、journalctl --since "10 minutes ago" -f
三、使用less命令交互式查看大日志文件
当需要翻阅历史日志内容(尤其是超大文件)时,less比cat更高效,且支持搜索与实时刷新功能。
1、启动less并打开日志文件:
2、less +F /var/log/kern.log
3、执行后会自动进入“follow”模式(等效于tail -f),按Ctrl+C退出该模式。
4、退出follow模式后,可使用/键进行正向搜索,例如输入/error查找包含error的行。
5、按Shift+F可重新进入实时跟踪状态。
四、使用grep配合tail实现条件实时监控
在海量日志中聚焦特定关键词(如错误码、IP地址或模块名)时,可通过管道组合tail与grep完成动态过滤。
1、实时监控access.log并仅显示含“500”状态码的请求行:
2、tail -f /var/log/apache2/access.log | grep " 500 "
3、忽略大小写并高亮匹配项:
4、tail -f /var/log/messages | grep -i --color=always "kernel"
5、若需同时显示上下文行(例如匹配行前1行、后2行),使用-A、-B参数:
6、tail -f /var/log/secure | grep -A1 -B2 "Failed password"
五、使用multitail合并监控多个日志文件
multitail是一款增强型日志查看工具,支持分屏、颜色高亮、过滤规则及多文件同步滚动,适合运维人员同时关注多个服务日志。
1、安装multitail(以Debian/Ubuntu为例):
2、sudo apt install multitail
3、启动并同时监控两个日志文件:
4、multitail /var/log/syslog /var/log/nginx/error.log
5、在运行界面中按数字键切换窗口,按l键加载过滤器,按b键开启/关闭背景高亮。

















