位于/var/log目录下的20个Linux日志文件[译]
原文地址:20 Linux Log Files that are Located under /var/log Directory
如果你多数时间都在使用Linux系统,那么你有必要知道系统的日志文件位于哪里,以及每个日志文件是关于哪些内容的。在系统正常的时候学习理解各种日志文件的内容,有助于在遇到紧急情况时通过日志文件定位问题所在。
/etc/rsyslog.conf文件决定了哪些内容会被写入到对应的日志文件中,例如,这是/var/log/messages再rsyslog.conf中的相关内容:
1
2
|
$ grep "/var/log/messages" /etc/rsyslog.conf
*.info;mail.none;authpriv.none;cron.none /var/log/messages
|
上述的输出中:
- *.info 表明所有带有 INFO 标志的日志信息会被记录。
- mail.none,authpriv.none,cron.none 表明这三种错误信息不会在messages。
- 你也可以指定 *.none,这样将没有任何日志信息被记录
接下来我们介绍20个位于/var/log目录下的日志文件。一些文件值存在于某些发行版中,例如在Debian系的系统中(如Ubuntu),你可以找到dpkg.log。
- /var/log/messages – 包含整个系统的信息,包括系统启动期间被记录的日志。mail, cron, daemon, kern, auth等相关的日志信息在这里记录。
- /var/log/dmesg – 包含内核缓冲信息(kernel ring buffer information)。在系统启动时,屏幕上会显示关于内核在启动过程中探测到的硬件设备的信息,这些消息保存再内核缓冲区直到新的消息将它覆盖。使用dmesg命令可以查看该文件中的内容。
- /var/log/auth.log – 包括系统的授权信息,包括用户登陆和使用的权限机制等。
- /var/log/boot.log – 包含系统启动时记录的日志。
- /var/log/daemon.log – 包括多种后台守护进程的日志信息。
- /var/log/dpkg.log – 包括使用dpkg命令安装或删除包时记录的信息。
- /var/log/kern.log – 内核记录的信息。可以帮助定位定制内核的问题。(注:在ArchLinux中为kernel.log)
- /var/log/lastlog – 最近所有用户的登陆信息,这不是一个ascii文件,应该使用lastlog命令来查看文件信息。
- /var/log/maillog /var/log/mail.log – 包含系统中运行的邮件服务的日志。例如sendmail的日志信息都会在这里被记录。
- /var/log/user.log – 包括所有用户等级的日志
- /var/log/Xorg.x.log – X系统的日志信息
- /var/log/alternatives.log – 关于更新替代的信息,Ubuntu中,不同的默认命令,会有不同的符号链接到对应的文件(?)On Ubuntu, update-alternatives maintains symbolic links determining default commands.
- /var/log/btmp – 包含尝试登陆失败的信息,使用last 命令查看,例如 “last -f /var/log/btmp | more”
- /var/log/cups – 所有的打印机和打印相关的
- /var/log/anaconda.log – 存储安装相关的信息
- /var/log/yum.log – 使用yum安装包时的相关信息
- /var/log/cron – 每当cron守护进程(或anacron)开始cron定时操作时,都会将日志信息记录再这里。
- /var/log/secure – 包含认证和授权相关的信息。例如sshd登陆记录的所有信息,包括失败的信息。
- /var/log/wtmp 或 /var/log/utmp – 包含登陆记录。使用wtmp可以查出都有谁登陆过系统,非ASCII文件。who命令通过这个文件来显示信息。(wtmp 编程)
- /var/log/faillog – 包含用户的失败登陆尝试,使用faillog命令显示文件内容。非ASCII文件。
除了以上的日志文件,/var/log目录也包含一些子目录,这取决于你系统上运行的应用
- /var/log/httpd/ 或 /var/log/apache2 – 包括apache web服务器的access_log 和 error_log信息
- /var/log/lighttpd/ – 包含lighthttpd的access_log 和 error_log信息
- /var/log/conman/ – ConMan客户端的日志文件。(ConMan是一个console manager,需要有conmand守护进程运行)。
- /var/log/mail/ – 包含邮件服务的额外日志。例如,sendmain会收集邮件的统计信息保存在/var/log/mail/statistics文件中
- /var/log/prelink/ – 预链接(prelink program)修改(modifies? )已共享的库文件以及已链接的二进制文件来加速启动新的进程。/var/log/prelink/prelink.log 包含被prelink修改过的.so文件的信息。
- /var/log/audit/ – 包含 Linux audit daemon (auditd).存储的信息(?)
- /var/log/setroubleshoot/ – SELinux使用setroubleshootd (SE Trouble Shoot Daemon) 来通告关于文件的安全上下文问题,这里存储其日志信息。
- /var/log/samba/ – Samba的日志信息, Samba用来能使Windows连接到Linux的共享内容
- /var/log/sa/ – 包含sysstat软件包收集的每天的sar文件。
- /var/log/sssd/ – 系统安全服务守护进程的相关日志。它用来管理远端目录的访问和授权。
除了手工归档日志文件,也可以使用logrotate 工具,每几天或日志文件达到一定大小时自动归档 。使用vi,grep,tail,less来查看日志文件,而不是“cat | more”
PS1:查看系统的日志,就像编程的时候查看debug信息一样,可以更加清楚的了解系统的运行情况。很早就被告知查日志找问题,却从来没有去认真了解过应该去哪里查。今天看到这个文章,干脆就给翻译过来,因为文字水平优先,很多语句可能不如原文好理解,如果不排斥英文原文,可以直接看英文原文。
PS2:日志文件似乎跟发行版等有挺大关系(其实是发行版使用的日志记录软件不同,如rsyslog和syslog-ng),加上原日志是2011年的,所以要具体问题具体分析。比如文章开头的rsyslog.conf,在我的Archlinux中就没有这个文件,在Debian 6 中可以看到和原文类似的结果。