您的位置:首页 > 其它

第九章 系统故障分析与排查 (笔记)

2013-11-01 11:54 316 查看
log:日志,记录
rescue:救援
secure:安全
average:平均

stamp:标签
count:计数
startup:启动

mismatch:不匹配
environment:环境
maintenance:维护

日志分析及管理

不同的日志文件记载了不同类型的信息,例如linux内核信息、用户登录记录、程序错误等。

主要日志文件

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

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

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

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

常见的日志文件。
/var/log/messages:记录linux内核消息及各种应用程序的公共日志信息,包括启动、IO错误、网络错误、程序故障等。对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获得相关的时间记录信息。

/var/log/cron:记录crond计划任务产生的事件信息。

/var/log/dmesg:记录linux系统在引导过程中的各种事件信息。

/var/log/maillog:记录进入或发生系统的电子邮件活动。

/var/log/lastlog:最近几次成功登录事件和最后一次不成功登录事件。

/var/log/rpmpkgs:记录系统中安装的各rpm 包列表信息。

/var/log/secure:记录用户登录认证过程中的事件信息。

/var/log/wtmp:记录当前登录的每个用户的详细信息。

日志文件分析

介绍三类日志文件的基本格式和分析方法

使用tail 、more、less、cat等文本处理工具就可以查看日志内容。对于二进制格式的日志文件(如用户日志),需要使用相应的查询命令。

1、内核及系统日志

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

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





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

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

2、用户日志

在wtmp、utmp、lastlog等日志文件中,保存了系统用户登录、退出等相关事件的事件消息。这些文件都是二进制的数据文件,不能直接使用tail、less等文本查看工具进行浏览,需要使用who、w、users、last和ac等用户查询命令来获取日志信息。

1)

who命令用于查询utmp文件并报告当前登录的每个用户信息。使用该命令,系统管理员可以查看当前系统存在哪些不合法用户,从而对其进行审计和处理。who的默认输出包括用户名、终端类型、登录日期及远程主机。

2)

w命令用于查询utmp文件并显示当前系统中的每个用户及其所运行的进程信息。

3)

users命令用单独的一行打印出当前登录的用户,每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示与其相同的次数。

4)

last命令用于查询wtmp文件,显示出自从该文件被创建以来登录过的所有用户记录,最近登录的用户记录将显示在最前面。

last | head -5 (查看系统中最近的五次用户登录记录)

5)

ac命令将查询wtmp文件中的用户登录和退出情况,报告用户连接的总时间(小时)。使用用户名作为参数,再结合“-d”选项可以按每天进行统计。未指定用户名时,可以使用“-p”选项进行分别统计。

ac -d teacher

ac -p

3、程序日志

在linux系统中,有相当一部分应用程序并没有使用syslog服务来管理日志,而是由程序自己维护日志记录。 如,httpd网站服务程序使用两个日志文件access_log 和 error_log,一般存放在“/var/log/httpd”目录中,分别记录客户访问事件、错误事件;而FTP服务程序可以将与文件上传、下载事件相关的消息记录在xferlog文件中。

总的来说,作为一名合格的系统管理人员,应该提高警惕,随时注意各种可疑状况,定期并随机地检查各种系统日志文件,包括一般信息日志、网络连接日志、文件传输日志以及用户登录日志记录等。在检查这些日志时,要注意是否有不合常理的时间或操作记录。

用户在非常规的时间登录,或者用户登录系统的IP地址和以往的不一样。
用户登录失败的日志记录,尤其是那些一再连续尝试进入失败的日志记录。
非法使用或不正当使用超级用户权限。
无故或者非法重新启动各项网络服务的记录。
不正常的日志记录,比如日志的残缺不全,或者是诸如wtmp这样的日志文件无故地缺少了中间的记录文件。
本文出自 “朵夫” 博客,请务必保留此出处http://tibet.blog.51cto.com/3847517/1318372
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: