分析系统日志

日志的功能
1、用于记录系统、程序运行中发生的各种事件。
2、通过阅读日志,有助于诊断和解决系统的故障。

日志文件的分类
内核及系统日志:这种日志数据有系统服务syslog统一管理,根据其主配置文件“/etc/syslog.conf”中的设置决定将内核消息及各种系统程序记录到什么位置。系统中有相当一部分程序会把自己的日志文件交由syslog管理,因而这些程序使用的日志记录也具有相似的格式。
用户日志:这种日志数据用于记录linux系统用户登录及退出系统的相关信息,包括用户名,登录的终端,登录时间,来源主机,正在使用的进程操作等。
程序日志:有些应用程序会选择由自己独立管理一份日志文件,用于记录本程序运行过程中的各种时间信息。由于这些程序只负责管理自己的日志,因此不同的程序所使用的日志记录格式也可能会存在较大的差异。

linux系统本身和大部分服务器程序的日志默认都放在“/var/log”下,如下:查看“/var/log”目录下的所有文件及目录。

RHEL 5基础篇—分析系统日志_第1张图片
下面介绍一下我们常见的一些日志文件。
“/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”:记录每个用户登录、注销及系统启动和停机事件。
“/var/log/btmp”:记录失败的、错误的登录尝试及验证事件。
....

日志文件分析
对于大多数文本格式的日志文件、只要使用tail、more、less、cat等文本处理工具就可以查看日志的内容。而对于一些二进制格式的日志文件,则需要使用特定的查询命令。

日志的格式
对于syslog服务统一管理的大部分日志文件,使用的日志记录格式基本上都是相同的。
如下:以公共日志“/var/log/messages”文件的记录格式为例。

RHEL 5基础篇—分析系统日志_第2张图片
其中每一行表示一条日志消息,每一条消息包括以下四个字段。
时间标签:消息发出的日期和时间。
主机名:生成消息的计算机的名称。
子系统名称:发出消息的应用程序的名称。
消息:消息的具体内容。

日志消息的级别
根据日志消息的重要程度不同,将其分为不同的优先级别(数字等级越小,优先级越高,消息越重要)
如下:日志的消息级别

 RHEL 5基础篇—分析系统日志_第3张图片

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

RHEL 5基础篇—分析系统日志_第4张图片
从配置文件中可以看出,受syslogd服务管理的日志文件都是linux系统中最主要的日志文件,它们记录了linux系统中内核,用户认证,邮件,计划任务等最基本的系统消息。

分析用户日志
在wtmp、btmp、lastlog等日志文件中,保存了系统用户登录,退出等相关的事件消息。但是这些文件都是二进制的数据文件,不能直接使用tail、less等文本查看工具进行浏览,需要使用users、who、w、last和lastb等用户查询命令来获取日志信息。
1)查询当前登录的用户情况users、who、w命令。
users命令——简单输出当前登录的用户名称,每个显示的用户名对应一个登录会话。

5
who命令——用于报告当前登录到系统中的每个用户的信息。

RHEL 5基础篇—分析系统日志_第5张图片
w命令——显示当前系统中的每个用户及其所运行的进程信息,比users、who命令的输出内容要更详细。

RHEL 5基础篇—分析系统日志_第6张图片
2)查询用户登录的历史记录last、lastb命令
last命令——用于查询成功登录到系统的用户记录,最近的登录情况将显示在最前面。

RHEL 5基础篇—分析系统日志_第7张图片
lastb命令——用于查询登录失败的用户记录,比喻登录的用户名错误、密码不正确等情况都将记录在案。

RHEL 5基础篇—分析系统日志_第8张图片

分析程序日志
在linux系统中,还有相当一部分应用程序并没有使用syslogd服务来管理日志,而是由程序自己维护日志记录。
如下:这些程序的日志都将使用专门的日志分析工具分析。

RHEL 5基础篇—分析系统日志_第9张图片

     应用程序的日志,我们在以后学习linux服务当中会接触的更多,小编在这里就略略带过了。因为那个实在是很复杂,说起来也很枯燥。所以在这里主要是了解分析系统日志和用户日志就可以了。大家如果有看不懂的可以给我留言,我会及时回复大家的。

日志文件不但可以保存在本地的计算机上,还可保存在远程的日志服务器上,为了安全我们可以将一些比较重要的日志文件保存到远程计算机上,以免日志文件的损坏或丢失。如下图:更改日志服务的配置文件可以将本地计算机的日志保存到远程服务器上。

RHEL 5基础篇—分析系统日志_第10张图片