Linux系统日志

Linux系统拥有非常灵活和强大的日志功能,几乎可以保存所有操作记录,日常维护时,可以使用各种工具从中检索出需要的信息。

默认配置下,日志文件通常都保存在/var/log目录下。系统日志守护进程(参见命令:man syslog)可以根据日志的类型级别将日志保存到不同的文件中。

日志类型

下面是常见的日志类型,但并不是所有的Linux发行版都包含这些类型:

类型说明
auth用户认证时产生的日志,如login命令、su命令。
authpriv与 auth 类似,但是只能被特定用户查看。
cron系统定期执行计划任务时产生的日志。
daemon某些守护进程产生的日志。
ftpFTP服务。
kern系统内核消息。
local0.local7由自定义程序使用。
lpr与打印机活动有关。
mail邮件日志。
mark产生时间戳。系统每隔一段时间向日志文件中输出当前时间
每行的格式类似于 May 26 11:17:09 rs2 -- MARK --
news网络新闻传输协议(nntp)产生的消息。
syslogdsyslogd产生的日志
user用户进程。
uucpUUCP子系统。

日志级别

常见的日志级别如下:

级别说明
emerg紧急情况,系统不可用(例如系统崩溃),一般会通知所有用户。
alert需要立即修复,例如系统数据库损坏。
crit危险情况,例如硬盘错误,可能会阻碍程序的部分功能。
err一般错误消息。
warning警告。
notice不是错误,但是可能需要处理。
info通用性消息,一般用来提供有用信息。
debug调试程序产生的信息。
none没有级别,不记录任何日志消息。

常用日志文件

日志文件说明
/var/log/boot.log录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息
/var/log/messages记录Linux操作系统常见的系统和服务错误信息
/var/log/syslog只记录警告信息,常常是系统出问题的信息,使用lastlog查看
/var/log/secureLinux系统安全日志,记录用户和工作组变坏情况、用户登陆认证情况
/var/log/wtmp该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件,使用last命令查看
/var/run/utmp该日志文件记录有关当前登录的每个用户的信息。如 who,w,users 等就需要访问这个文件
/var/log/lastlog记录最后一次用户成功登陆的时间、登陆IP等信息
/var/log/btmp记录Linux登陆失败的用户、时间以及远程IP地址
  • /var/log/syslog/var/log/messages 存储所有的全局系统活动数据,包括开机信息。基于 Debian 的系统如 Ubuntu 在 /var/log/syslog 中存储它们,而基于 RedHat 的系统如 RHEL 或 CentOS 则在 /var/log/messages 中存储它们。

  • /var/log/auth.log/var/log/secure 存储来自可插拔认证模块(PAM)的日志,包括成功的登录,失败的登录尝试和认证方式。Ubuntu 和 Debian 在 /var/log/auth.log 中存储认证信息,而 RedHat 和 CentOS 则在 /var/log/secure 中存储该信息。

  • /var/log/wtmp,/var/run/utmp,/var/log/lastlog三个文件记录的都是系统登陆记录,以二进制形式保存,所以不能使用cat,more,less之类的工具直接查看,这些文件可以通过who,w,users,lastlog等命令来查看解析结果。