引导我了解Linux日志文件(请)


11

我只是尝试在gedit中加载2MB的文件,但它对我无声地死了。我想知道日志文件中是否有任何内容可以帮助我进行诊断:我检查syslog并发现它已分段。这样做的时候,我意识到我对* nix机器上的日志组织方式一无所知。

我所知道的是

  1. 日志通常存储在/var/log/...我应该知道的其他地方吗?

  2. 我熟悉特定于应用程序的日志,例如apache的日志。

  3. 我了解这dmesg是启动日志,并且syslog是常规系统日志...是吗?编辑:鲍比说dmesg也是通用的...两者之间有什么区别?

那么有人介意带我浏览最有用的日志吗?最后一点,我提到的两个日志是唯一的常规日志吗?在行首的时髦数字是dmesg什么?自启动以来几秒钟?

请在您的答案中包括您认为会增进我的理解并帮助我追踪异常的任何内容!

TIA

安迪


dmesg或者/var/log/messages是常规消息日志,不仅用于引导。另外,从终端启动应用程序可以帮助调试问题。
鲍比(Bobby)2010年

是的,我已经注意到,如果我通过命令行启动程序,那么我经常会收到应用程序呕吐。如果我通过图形启动器启动同一程序,该文本会丢失吗?图形应用程序向其输出消息是否被认为是一种好习惯stdout
安迪2010年

如果您以图形方式启动程序,则stdout和stderr将无处连接(或/ dev / null),这意味着所有消息都将丢失。如果需要,则可以从命令行开始,也可以通过将.desktop文件中的命令设置为类似“ some_command&> some_logfile”的命令将输出重定向到文件。
petersohn 2010年

真正的问题是我是否需要它!大多数程序是否在日志中保留了更多有用的输出?高级Linux人员通常使用stdout来帮助诊断软件问题(不是他们自己的问题)吗?(基本上,我熟悉如何获取stdout,但不了解输出实际上可能有多有用...)
Andy 2010年

我只有在遇到问题时才从终端启动应用程序(检索一些调试信息和错误消息,这些信息可能已被GUI吞没)。是的,这是一个好习惯,它是Linux下所有应用程序的标准行为。
鲍比(Bobby)2010年

Answers:



12

非常感谢Pulse推荐https://help.ubuntu.com/community/LinuxLogFiles。我已经删掉了一些内容,并省略了如何使用syslogd和其他基本命令,以保留此小指南以供将来参考。这是从Ubuntu网站上获得的,我不知道其他发行版有多少。

系统日志

系统日志主要处理Ubuntu系统的功能,而不必处理用户添加的其他应用程序。示例包括授权机制,系统守护程序,系统消息,以及包含所有内容的系统日志本身syslog。

授权日志: /var/log/auth.log

授权日志跟踪授权系统的使用,授权用户提示用户密码的机制,例如可插拔验证模块(PAM)系统,sudo命令,远程登录sshd等。

守护程序日志: /var/log/daemon.log

守护程序日志包含有关正在运行的系统和应用程序守护程序的信息,例如Gnome Display Manager守护程序gdm,Bluetooth HCI守护程序hcid或MySQL数据库守护程序mysqld

调试日志: /var/log/debug

调试日志提供了来自Ubuntu系统和应用程序的详细调试消息,这些消息以syslogdDEBUG级别记录。

内核日志: /var/log/kern.log

内核日志提供了来自Ubuntu Linux内核的详细消息日志。例如,这些消息可能对解决新的或定制的内核很有用。

内核环形缓冲区: dmesg

内核环形缓冲区本身实际上并不是日志文件,而是正在运行的内核中的一个区域,您可以通过该dmesg实用程序查询内核启动消息。要查看消息,请使用以下命令:

dmesg | less

默认情况下,系统初始化脚本/etc/init.d/bootmisc.sh还将所有启动消息发送到该文件/var/log/dmesg

消息日志: /var/log/messages

消息日志包含来自应用程序和系统工具的参考消息。该日志对于检查来自应用程序的消息输出以及在INFO级别登录到syslog/ sysklog守护程序的系统工具非常有用。

系统日志: /var/log/syslog

默认情况下,系统日志通常包含有关Ubuntu系统的大量信息。它可能包含其他日志没有的信息。当您无法在其他日志中找到所需的日志信息时,请查阅系统日志。

应用日志

许多应用程序还会在中创建日志/var/log。如果列出/var/log子目录的内容,您将看到熟悉的名称,例如/var/log/apache2代表Apache 2 Web服务器/var/log/samba的日志,或,其中包含Samba服务器的日志。

Apache HTTP服务器日志: /var/log/apache2

Ubuntu2上Apache2的默认安装会创建一个日志子目录。在此子目录中,有两个日志文件,它们具有两个不同的用途:

  • /var/log/apache2/access.log -记录的每个页面和Web服务器加载的每个文件。
  • /var/log/apache2/error.log -HTTP服务器报告的所有错误情况的记录

CUPS打印系统日志: /var/log/cups/error_log

通用Unix打印系统(CUPS)使用默认的日志文件/var/log/cups/error_log来存储参考消息和错误消息。

Rootkit猎人日志: /var/log/rkhunter.log

Rootkit Hunter实用程序(rkhunter)检查Ubuntu系统中是否存在后门,嗅探器和rootkit,这些都是破坏系统的迹象。

Samba SMB服务器日志: /var/log/samba

服务器消息块协议(SMB)服务器Samba通常用于在Ubuntu计算机和其他支持SMB协议的计算机之间共享文件。Samba在子目录中保留三种不同类型的日志:

  • log.nmbd -与Samba的NETBIOS over IP功能有关的消息(网络内容)
  • log.smbd -与Samba的SMB / CIFS功能有关的消息(文件和打印共享内容)
  • log.[IP_ADDRESS] -与来自日志文件名中包含的IP地址的服务请求相关的消息。

X11服务器日志: /var/log/Xorg.0.log

与Ubuntu一起使用的默认X11 Windowing Server是Xorg X11服务器。该日志有助于诊断X11环境的问题。

非人类可读日志

/var/log子目录中找到的某些日志文件被设计为可由应用程序读取,而不必由人类读取。以下是一些示例。

登录失败日志: faillog

位于的登录失败日志/var/log/faillog实际上是由faillog命令解析和显示的。

上次登录日志: lastlog

/var/log/lastlog通常不应由人来解析和检查上次登录的日志,而应与lastlog命令结合使用。

登录记录日志: who

该文件/var/log/wtmp包含登录记录,但是与/var/log/lastlog上面的记录不同,/var/log/wtmp它不用于显示最近登录的列表,而是由其他实用程序(例如who用于显示当前登录用户列表的命令)使用。


1

syslog(或更确切地说,syslog.d)是一个日志记录系统,负责在中写入大多数日志/var/log。还有其他类似的项目,例如syslog-ng

system.log 只是一个专门命名的文件,syslog恰好将其写入


感谢您的答复:我对Linux日志记录的整体情况更感兴趣。我使用syslog的示例只是一个序言,用以解释我如何解决这个一般性问题。
安迪2010年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.