首页 > 代码库 > linux学习之路之日志系统

linux学习之路之日志系统

日志系统

日志系统是用来存放系统在执行任务过程中产生的讯息或者是执行时产生的错误日志信息都存放在日志系统里。由于Linux系统上面会同时开启多个服务或者子系统,因此为了便于查看或者管理它们产生的日志信息,我们一般将不同的子系统或者服务产生的日志信息根据级别不同放在不同的配置文件中或者主机中。

 

在RHEL 5上,使用的日志系统是syslog

而在RHEL 6上,使用的日志系统是syslog-ng这是一款开源系统

要想使用syslog日志系统,必须要确保syslog服务一直在运行。而syslog服务包含两个服务:

                syslogd服务:该服务主要记录系统,非内核产生的日志信息

                klogd服务:主要记录kernel产生的日志信息

wKioL1Pm7EfRru4ZAABu_m5d1Jk472.jpg

记住要确保这两个服务一直开启哦

 

当系统开机的时候,kernel加载完成后,会检测相关的硬件,所以当kernel加载完成后,在物理终端(/dev/console)上面显示一大屏信息,这些信息都是kernel检测硬件所产生的日志信息;但是有时候我们却发现这些信息没有显示在物理终端上,这是因为在加载kernel的时候,使用了静默模式,因此这段信息我们没有看到,那这段信息消失了吗?当然不是,它保存在/var/log/dmesg这个文件里。

使用demg命令就可以查看这个信息的内容

或者使用cat  /var/log/dmesg来查看这个文件的内容。

 

 日志系统的配置文件/etc/syslog.conf

这个配置文件的结构如下:facility.priority    action

factility:我们可以理解为日志的来源,通常facility有以下几种:

   auth                                                     #与认证相关的

authpriv                                                  #与授权,权限相关的

cron                                                        #与任务计划相关的

daemon                                                 #守护进程相关的

kern                                                        #内核相关的

lpr                                                            #打印相关的

mail                                                          #邮件相关的

mark                                                        #标记相关的

news                                                        #新闻相关的

security                                                    #安全相关的,与auth类似

syslog                                                       #syslog自身产生的

user                                                          #跟用户相关的

uucp                                                         #uni  to  unix cp相关的

local0-local7                                            #用户自定义使用

*                                                                #表示所有的facility

 

priority:表示日志的级别,级别越低日志信息越详细,priority通常有以下几种:(从低到高)

debug   #表示系统或程序的调试信息

info      #一般信息

notice    #不影响正常功能,需要注意的信息

warning/warn                 #可能影响系统功能,提醒用户的重要事件

err/error                          #错误信息

crit                                   #比较严重的信息

alert                                 #必须马上处理的

emerg/panic                   #会导致系统不可用的信息

*                                       #表示所有的日志级别

none                                #表示什么也没有,和*刚好相反

 

 

action(动作):表示产生的信息放置何处

    系统上面的绝对路径                       #如/var/log/XXX

    |                                                          #通过管道交给其他命令来处理

    @HOST                                            #将信息记录到远处主机上去

   用户                                                   #系统用户,将信息交给系统用户,例如root

    *                                                         #登录到所有系统用户,通常emerg级别的日志是这样定义的

 

一般情况下,我们产生的日志信息大都存放在这三个文件里:

/var/log/messages:存放的信息:有系统标准错误日志信息、非内核产生的引导信息以及各子系统产生

                                 的日志信息

/var/log/maillog:邮件系统产生的信息存放在这里

/var/log/secure:与安全有关的日志信息

 

 

RHEL5.8上面的syslog配置文件如下:

wKioL1PnGzayDg4PAAJ4IwyFYrU055.jpg

 

 

 例如:这些定义格式的例子

mail.info       /var/log/maillog        #表示将与邮件有关的,级别定义为info及info以上级别

auth.=info    @10.0.0.1                #表示与auth相关的,级别只定义为info,并将信息记录到远端主机上

user.!=error                                   #表示与user相关的,级别定义为除了error以外的所有级别

user.!error                                      #表示与user有关的,级别定义为低于error的级别

*.info                                               #定义所有的日志信息级别为info及info以上级别

mail.*                                              #表示记录与mail相关的所有级别日志

cron.info;mail.info                          #多个日志来源使用";"隔开

cron,mail.info                                 #与cron.info;mail.info是同一个意思

mail.*;mail.!=info                           #表示记录mail所有级别的日志信息,但是不包括info级别的日志信息

 

 

 

 

 

本文出自 “linux学习之路” 博客,谢绝转载!