Linux之系统故障分析与排查

在处理Linux系统出现的各种故障时,故障的症状是最先发现的,而导致这以故障的原因才是最终排除故障的关键。熟悉Linux系统的日志管理,了解常见故障的分析与解决办法,将有助于管理员快速定位故障点。“对症下药”及时解决各种系统问题。

1、日志分析及管理

日志文件是用于记录Linux系统中各种运行消息的文件,相当于Linux主机的“日记”。不同的日志文件记载了不同类型的信息,如:Linux内核消息,用户登录记录,程序错误等。日志文件对于诊断和解决系统中的问题很有帮助,因为在Linux系统中运行的程序通常会把系统消息和错误消息写入相应的日志文件,这样系统一旦出现问题就会“有据可查”。此外,当主机遭受攻击时,日志文件还可以帮助寻找攻击者留下的痕迹。下面我来对Linux系统中的主要日志及分析管理方法进行介绍。

1.1、主要日志文件包括以下三种类型:

>内核及系统日志:这种日志数据由系统服务syslog统一管理,根据其主配置文件"/etc/syslog.conf"中的设置决定将内核消息及各种系统程序消息记录到什么位置。系统中有相当一部分程序会把自己的日志文件交由syslog管理,因而这些程序使用的日志记录也具有相似的格式。

>用户日志:这种日志数据用于记录Linux系统用户登录及退出系统的相关信息,包括用户名、登录的终端、登录时间、来源主机、正在使用的进程操作等。

>程序日志:有些应用程序运会选择自己来独立管理一份日志文件(而不是交给syslog服务管理),用于记录本程序运行过程中的各种事件信息。由于这些程序只负责管理自己的日志文件,因此不同的程序所使用的日志记录格式可能会存在极大差异。

Linux系统本身和大部分服务器程序的日志文件默认情况下都放置在目录“/var/log”中。一部分程序共用一个日志文件,一部分程序使用单个日志文件,而有些大型服务器程序由于日志文件不至一个,所以会在“/var/log/”目录中建立相应的子目录来存放日志文件,这样既保证了日志文件目录的结构清晰,又可以快速地定位日志文件。有相当一部分日志文件只有root用户才有权限读取,这保证了相关日志信息的安全性。

>>>>>>>>:列表查看"/var/log"目录中的各种日志文件及子目录。

对于Linux系统中的一些常见日志文件,有必要熟悉其相应的用途,这样才能在需要的时候更快地找到问题所在,及时解决各种故障。如:

>/var/log/messages:记录Linux内核消息及各种应用程序的公共日志信息,包括启动、IO错误、网络错误、程序故障等。对于未使用独立日志文件的应用程序或服务,一般都可以从该文件获得相关的事件记录信息。>/var/log/cron:记录crond计划任务产生的事件消息。>/varlog/dmesg:记录Linux系统在引导过程中的各种事件信息。>/var/log/maillog:记录进入或发出系统的电子邮件活动。>/var/log/lastlog:最近几次成功登录事件和最后一次不成功登录事件。>/var/log/rpmpkgs:记录系统中安装各rpm包列表信息。>/var/log/secure:记录用户登录认证过程中的事件信息。>/var/log/wtmp:记录每个用户登录、注销及系统启动和停机事件。>/var/log/utmp:记录当前登录的每个用户的详细信息

1.2、日志文件分析

熟悉了系统中的主要日志,我们就针对日志文件的分析方法做了解。分析日志文件的目地在于通过浏览日志查找关键信息,对系统服务进行调试,判断发生故障的原因等。这里主要说三类日志文件的基本格式和分析方法。

对于大多数文本格式的日志格式(如内核及系统日志、大多数的程序日志),只要使用tail、more、less、cat等文本处理工具就可以查看日志内容。而对于一些二进制格式的日志文件(eg:用户日志),则需要使用相应的查询命令。

1》、内核及系统日志:

内核及系统日志功能主要由默认安装的syslogd-1.4.1-39.2软件包提供,该软件包安装了klogd、syslogd两个程序,并通过syslog服务进行控制,分别用于记录系统内核的消息和各种应用程序的消息。syslog服务所使用的配置文件为"/etc/syslog.conf"。

通常情况下,内核及大多数系统消息都被记录到公共日志文件"/var/log/messages"中,而其他一些程序消息被记录到不同的文件中,日志消息还能够记录到特定的存储设备中,或者直接向用户发送。

>>>>>查看日志配置文件"/etc/syslog.conf'中的内容

从配置文件"/etc/syslog.conf“中可以看到,受syslogd服务管理的日志文件都是Linux系统中最主要的日志文件,他们记录了Linux系统中内核、用户认证、邮件、计划任务等最基本的系统消息。在Linux内核中,根据日志消息的重要程度不同,将其分为不同的优先级别(数字等级越小,优先级越高,消息越重要)。

>0 EMERG(紧急):会导致主机系统不可用的情况。>1 ALERT(警告):必须马上采取措施解决的问题。>2 CRIT(严重):比较严重的情况。>3 ERR(错误):运行出现错误。>4 WARNING(提醒):可能影响系统功能,需要提醒用户的重要事件。>5 NOTICE(注意):不会影响正常功能,但是需要注意的事件。>6 INFO (信息):一般信息。>7 BEBUG(调试):程序或系统调试信息等。

对于syslog服务统一管理的大部分日志文件,使用的日志记录格式基本上都是相同的,下面以公共日志文件"/var/log/messages"为例来说明内核及系统日志记录的基本格式。

eg:查看公共日志文件"/var/log/messages"的最后两行记录。

日志文件中的每一行表示一条消息,每个消息均由四个字段的固定格式组成。

>:时间标签:消息发出的日期和时间。>:主机名:生成消息的计算机的名称。>:子系统名称:发出消息的应用程序的名称。>:消息:消息的具体内容。

在有些情况下,可以设置syslog,使其在把日志信息记录到文件的同时将日志信息发送到打印机进行打印,这样无论网络入侵者怎么修改日志都不能清除入侵的痕迹。syslog日志服务是一个常会被攻击的显著目标,破坏了他将会使管理员难以发现入侵以及入侵的痕迹,因此要特别注意监控其守护进程以及配置文件。

2》用户日志、

明天又会是新的一天,而我依然年轻。

Linux之系统故障分析与排查

相关文章:

你感兴趣的文章:

标签云: