[Linux] 分析及存储Syslog日志
本文最后更新于 2024-04-16,文章内容可能已经过时。
前言
日志不用多说,这是在Linux中进行故障排除的重要消息来源。因此在操作Linux的时候学会如何查找和准确的解读系统事件日志是很重要的技能。当Linux出现任何问题的时候,这些日志或许可以救了我们的狗命(
本章将会了解Syslog的基本解读方法。
环境使用了Red Hat Enterprise Linux。
系统日志记录
系统级日志记录记录了系统内核和其他进程为系统运行时发生的事件记录日志,这些日志可以用于对系统进行故障排除。并可以使用less
或tail
命令来简化这些日志。
对于Red Hat Linux来说,一般是 systemd-journald 和 rsyslog 来处理syslog消息,对于其他Linux发行版可能会有些许不同。
systemd-journald 用于将日志重构为一种标准可读的格式,并写进带有索引的结构化系统日志中,但默认情况下这些日志在系统重启后并不会保留在系统上。
rsyslog 用于将从 systemd-journald 收到的 syslog信息进行排序,并将它们保存到/var/log
目录下。
以下是除了syslog消息以外的其他服务日志文件。
不仅仅是syslog,比如Niginx,Apache网页服务器会将它们的日志消息保存到/var/log目录中的其中一个子目录下。
Syslog 代码
Syslog会将事件根据生成的子系统设备代码和优先级进行分类,以下是一些标准的Syslog设备描述。
Syslog 优先级
下表是各类代码及其优先级解释
分析 Syslog 日志
日志的开头显示的是最旧最冷的消息,反之在日志的末尾则是最新最热的消息,一般阐述着问题发生的最后时刻这系统在干啥。
这是我们可以使用
tail -f /var/log/xxxxx
命令来输出指定文件的最后10行,这样我们看到的日志在大多数情况下就是最新最热的了!
以下是一个示例的日志消息:
Jun 16 12:44:48 localhost sshd[1433]: Failed password for japerz from 114.51.41.9 port 19810 ssh2
Jun 16 12:44:48
: 记录的日志的时间戳localhost
: 发送日志的主机sshd[1433]
: 发送日志的程序或者进程名及PID编号Failed password ...
: 发送的日志消息
解答:在6月16日 12点44分48秒由进程sshd,PID1433的程序从localhost主机发送了一条来自IP 114.51.41.9,端口19810的ssh2尝试登陆账号japerz但密码错误。
后记
看到很多人在用Linux的时候遇到错误就立刻准备开始重装。在重装前不如先通过这些简单易懂的日志文件找到问题的所在,尝试解决后如果还是不行再重装。但了解到问题所在之后,下一次你也许就不会再碰到这个问题了。经验就是如此累积下来的。
- 感谢你赐予我前进的力量