Chinaunix首页 | 论坛 | 博客
  • 博客访问: 793891
  • 博文数量: 858
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5015
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-29 17:43
文章分类

全部博文(858)

文章存档

2011年(1)

2008年(857)

我的朋友

分类: LINUX

2008-08-29 17:50:19

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

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

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

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

  准备好了就开始轮循

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

  日志工具

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

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

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

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

  tail-f/var/log/messages

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

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

  more/var/log/XFree86.0.log

  使用“q”或者[Ctrl]-C来停止查看文件。  less是另一个文本阅读器,不过它还允许在文件中滚动浏览以及检索信息。

less/var/log/messages

上面的命令将显示/var/log/messages文件的内容。使用“q”来停止查看文件。使用“h”来获得less的使用帮助。
  ★logger您可能会希望将自己的消息也记录到日志文件。您可以只是将日志消息附加到恰当的文本文件,但是您必须得套用日志信息格式。同样,如果日志系统被定制,您还将不得不修改您的代码。llogger命令使您可以将自己的消息发送到日志工具。在脚本中使用它来提供关于执行和错误的消息。

  定制的日志

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

  下面是取自man/etc/syslog.conf页面中的一个定制日志的例子:

#Kernelmessagesarefirst,storedinthekernel
#file,criticalmessagesandhigheronesalsogo
#toanotherhostandtotheconsole
#
kern.*/var/adm/kernel
kern.crit@finlandia
kern.crit/dev/console
kern.info;kern.!err&

/var/adm/kernel-info

第一个规则将所有内核消息定向到/var/adm/kernel文件。第二个语句将所有优先级为crit或者更高的内核消息定向到一个名为finlandia的远程主机。这是有用的,因为如果主机崩溃以及磁盘错误无法恢复,您将无法读取存储的消息。如果那些消息同时在远程主机上也存在,您就依然可以找出崩溃的原因。第三个规则将这些消息定向到实际的控制台,这样,在这台机器上工作的人也可以看到它们。第四行告诉syslogd将所有优先级为info到warning的内核消息保存到/var/adm/kernel-info文件。所有优先级为err以及更高的消息不包括在内。像这种定制日志的能力为Linux环境提供了极大的灵活性与可控制性。

  Webmin中的日志配置

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

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


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

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

  您生活中的日志

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

Linux日志Linux日志Linux日志Linux日志Linux日志Linux日志Linux日志Linux日志Linux日志Linux日志
阅读(357) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~