Linux中如何查看系统日志 快速定位和分析系统日志的方法

直接结论:
Linux系统日志主要在/var/log目录下。

/var/log/syslog/messages:主系统日志。

/var/log/auth.log:身份验证相关日志(Debian/Ubuntu)。

/var/log/secure:身份验证相关日志(CentOS/RHEL)。

/var/log/dmesg:内核启动日志。

/var/log/boot.log:启动日志(在某些系统上可能不可用)。

查看命令:
tail -n1 00 /var/log/syslog:查看日志的最后1 00行。

tail -f /var/log/syslog:实时跟踪日志。

journalctl -b:systemd系统启动日志。

journalctl -u ssh.service:查看SSH服务日志。

journalctl:过滤关键字,如grep 'sshd' /var/log/auth.log。

定位策略:
先看时间戳。

注意 error、fail、denied 等关键字。

应首先在 auth.log 或 secure 中检查身份验证日志。

systemctl status <服务名称>:查看服务日志摘要。

排除 SSH 故障:
grep '密码失败'/var/log/auth.log。

结合IP判断是暴力破解还是密码错误。

日志处理过多:
logrotate自动轮转。

配置日志级别。

定期归档或删除旧日志。

总结:
掌握日志位置、命令和定位策略,快速排查问题。

Linux如何查看系统日志_Linux系统日志查看的实用技巧

记得有一次,公司的服务器遇到了问题。
用户无法登录系统。
我就像锅里的蚂蚁一样着急。
那时我就​​知道必须在日志文件中找到答案。
首先我找到了auth.log文件,它是记录用户认证事件的日志。

我使用grep命令过滤了所有包含“密码失败”的行,果然,我看到了登录失败的记录。
这些记录告诉我用户的密码输入正确,但系统不接受。
我认为某些原因导致身份验证失败。

然后我使用journalctl命令检查systemd日志,看看是否有其他相关信息。
果然,我发现了systemd启动日志,显示有一个服务没有正常启动。
该服务负责用户身份验证。

所以我找出了问题所在,身份验证服务没有启动。
我立即联系系统管理员,要求他们重新启动服务。
过了一会儿问题解决了,用户又可以正常登录了。

这件事让我认识到日志文件的重要性。
如果当时我没有这些日志,我可能会花更多时间来解决问题。
因此,系统管理员掌握搜索和分析日志文件的技能至关重要。
等等,我突然想到,怎样才能保证日志文件不会被填满而导致系统空间不足呢?

linux查看log日志命令

查看Linux日志,确实有很多常用命令。

tail是最常用的实时读取日志的工具,比如tail -f /var/log/syslog,它总是刷新。
如果你想查看最后 1 00 行,只需 tail -n 1 00 /var/log/syslog。
要获取最后 2 0 行,请使用 tail -n 2 0 /var/log/syslog。

搜索grep关键字,如grep "error" /var/log/syslog。
不区分大小写,grep -i "warning" /var/log/syslog。
如果你想查看某个单词前后的几行, grep -A 3 -B 2 "crash" /var/log/syslog 就可以了。
它还可以与 tail 一起使用,tail -f /var/log/syslog | grep "error",用于实时过滤。

head 检查前几行,head -n 1 0 /var/log/syslog,查看前1 0行。
如果你想排除接下来的几行,head -n -5 /var/log/syslog 就可以了。

cat,直接阅读全文,cat /var/log/syslog。
要合并两个文件,请 cat file1 .log file2 .log >combine.log。
如果要删除日志,cat /dev/null > /var/log/syslog,注意不要误删除。

添加/删除分页以查看大文件,添加/var/log/syslog,按Enter键向下滚动行,空格键向下滚动页面,q退出。
越少越方便,使用上下键滚动和 / 搜索关键字。

sed 有点特别。
它是通过行号获得的。
例如 sed -n '5 ,1 0p' /var/log/syslog 获取第 5 到 1 0 行。
如果要按时间获取,则必须使用通常的规则,如 sed -n '/2 02 5 -08 -2 0 06 :00/,/2 02 5 -08 -2 0 06 :3 0/p' /var/log/syslog 来获取该时间段的内容。

journalctl 是一个特殊的 systemd 命令。
要查看系统日志,只需使用journal即可。
按时间、期间过滤 --从“2 02 5 -08 -2 0 06 :00”--直到“2 02 5 -08 -2 0 06 :3 0”。
检查服务日志,-u sshd 日志,就是这样。

常用的日志路径有/var/log/syslog、/var/log/secure 或 auth.log、kern.log、boot.log。
使用这些组合可以快速找到问题。