第5部分 Linux日志

  在本部分我们追踪处理和轮循日志以增强系统安全收集信息成功地管理任何系统的关键之一是要知道系统中正在发生什么事Linux 中提供了异常日志并且日志的细节是可配置的Linux 日志都以明文形式存储所以您不需要特殊的工具就可以搜索和阅读它们您还可以编写脚本来扫描这些日志并基于它们的内容去自动执行某些功能Linux 日志存储在 /var/log 目录中这里有几个由系统维护的日志文件但其他服务和程序也可能会把它们的日志放在这里大多数日志只有 root 才可以读不过只需要修改文件的访问权限就可以让其他人可读

  ★ /var/log/messages messages 日志是核心系统日志文件它包含了系统启动时的引导消息以及系统运行时的其他状态消息IO 错误网络错误和其他系统错误都会记录到这个文件中其他信息比如某个人的身份切换为 root也在这里列出如果服务正在运行比如 DHCP 服务器您可以在 messages 文件中观察它的活动通常/var/log/messages 是您在做故障诊断时首先要查看的文件

  ★ /var/log/XFreelog 这个日志记录的是 Xfree Xwindows 服务器最后一次执行的结果如果您在启动到图形模式时遇到了问题一般情况从这个文件中会找到失败的原因

  ★ 其他日志 根据您的 Linux 发行版本以及您所运行的服务和应用程序的不同/var/log 目录下还会有其他日志文件例如可能会有与邮件服务器资源共享自动任务等相关的日志

  准备好了就开始轮循

  您将看到/var/log 目录下有一些文件以一个数字结尾这些是已轮循的归档文件日志文件会变得特别大特别笨重Linux 提供了一个命令来轮循这些日志以使您的当前日志信息不会淹没在旧的无关信息之中logrotate 通常是定时自动运行的但是也可以手工运行当执行后logrotate 将取得当前版本的日志文件然后在这个文件名最后附加一个其他更早轮循的文件为依次类推文件名后的数字越大日志就越老您可以通过编辑 /etc/logrotateconf 文件来配置 logrotate 的自动行为通过 man logrotate 来学习 logrotate 的全部细节

  日志工具

  任何文本工具都可以用来处理日志文件下面是一些特别有用的工具

  ★ dmesg 使用 dmesg 命令可以快速查看最后一次系统引导的引导日志通常它的内容会很多所以您往往会希望将其通过管道传输到一个阅读器

  ★ dmesg | more 上面的命令将以分页的方式显示引导信息

  ★ tail 有时当某些行为发生时您会希望密切关注一个日志文件Tail 命令设计用于显示文本文件的最后几行使用 f 开关当日志增加新的内容时tail 将继续显示新的输出

tail f /var/log/messages  上面的命令将显示 /var/log/messages 文件的最后 行然后继续监控那个文件并输出新的行为要停止 tail f 命令使用 Ctrl + C 来中止进程

  ★ more More 的工作方式与 DOS 版本相同您可以将它指向一个文件或者通过它以管道输出信息以分页的方式来查看信息例如以分页方式显示 Xfree 启动日志文件的内容

more /var/log/XFreelog  使用q或者 [Ctrl]C 来停止查看文件

  less 是另一个文本阅读器不过它还允许在文件中滚动浏览以及检索信息

less /var/log/messages  上面的命令将显示 /var/log/messages 文件的内容使用q来停止查看文件使用h来获得 less 的使用帮助

  ★ logger 您可能会希望将自己的消息也记录到日志文件您可以只是将日志消息附加到恰当的文本文件但是您必须得套用日志信息格式同样如果日志系统被定制您还将不得不修改您的代码llogger 命令使您可以将自己的消息发送到日志工具在脚本中使用它来提供关于执行和错误的消息

  定制的日志

  有两个服务或者称之为后台程序在控制日志分别是 klogd 和 syslogdklogd 只处理内核消息syslogd 处理其他系统消息比如应用程序您可以通过编辑 /et/syslogconf 和 /etc/sysconfig/syslog 来配置它们的行为您也可以查看 /etc/syslogdconf 的 man 页面来进一步学习本质上软件所产生的每一条消息都提供一些信息用于确定消息是从哪里来的以及这个消息是什么/etc/syslogconf 文件允许您来指定如何处理那种类型的消息您可以将它转储到消息文件也可以将它转储到一个定制的文件您可以将它发送到远程的主机由远程主机来根据其自己的 syslogd 配置来处理它远程日志是一个非常好的安全功能通过将您的日志放置到远程系统中您可以防止有人通过改变日志文件来掩饰其踪迹

  下面是取自 man /etc/syslogconf 页面中的一个定制日志的例子

# Kernel messages are first stored in the kernel # file critical messages and higher ones also go # to another host and to the console # kern* /var/adm/kernel kerncrit @finlandia kerncrit /dev/console kerninfo;kern!err /var/adm/kernelinfo  第一个规则将所有内核消息定向到 /var/adm/kernel 文件第二个语句将所有优先级为 crit 或者更高的内核消息定向到一个名为 finlandia 的远程主机这是有用的因为如果主机崩溃以及磁盘错误无法恢复您将无法读取存储的消息如果那些消息同时在远程主机上也存在您就依然可以找出崩溃的原因第三个规则将这些消息定向到实际的控制台这样在这台机器上工作的人也可以看到它们第四行告诉 syslogd 将所有优先级为 info 到 warning 的内核消息保存到 /var/adm/kernelinfo 文件所有优先级为 err 以及更高的消息不包括在内像这种定制日志的能力为 Linux 环境提供了极大的灵活性与可控制性

  Webmin 中的日志配置

  Webmin 有一个用于操作日志文件的模块

图 Webmin 系统日志视图

  显示了所有配置的日志文件点击一个日志文件来编辑它的配置

图 Webmin 日志编辑屏幕

  或者您可以点击 View 来查看日志文件的内容Webmin 模块与 /etc/syslogconf 文件相关联因此您对其中一个所做的修改会影响另一个

  注意在控制台中查看日志文件 由于 Linux 中的日志文件以明文的形式记录所以不需要特殊的工具来解释它们任何文本文件阅读器都可以显示 Linux 日志文件浏览器比如 Mozilla可以显示日志文件并且提供搜索功能Linux 还有控制台工具可以查看文本文件more如同 MS DOS 版本一样以分页方式显示文件less 命令将在只读阅读器中显示文件这个阅读器具有双向滚动和搜索的功能现在在命令行中输入 less /var/log/messages体会一下这个命令

  您生活中的日志

  Linux 中的日志文件对于系统的故障诊断和维护来说至关重要Linux 日志记录到文本文件所以不需要专门的工具来查看这些文件文本文件也容易用于定制脚本和程序日志被轮循以避免变得过大同时可以将当前信息与老的数据相分离日志轮循是可配置的日志是高度可配置的为了安全和备份日志甚至可以存储到单独的系统中您可以让自己的脚本和程序产生系统日志消息这些消息将被 syslogd 后台进程识别出并进行处理

带着我的相机和电脑,远离繁华,走向空旷。

第5部分 Linux日志

相关文章:

你感兴趣的文章:

标签云: