Chinaunix首页 | 论坛 | 博客
  • 博客访问: 75397
  • 博文数量: 41
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 434
  • 用 户 组: 普通用户
  • 注册时间: 2017-03-23 09:31
个人简介

天行健,君子以自强不息;地势坤,君子以厚德载物

文章分类
文章存档

2018年(11)

2017年(30)

我的朋友

分类: LINUX

2018-01-06 18:25:45

Linux上的日志系统:
syslog
syslog-ng(下一代日志系统):开源
日志系统:syslog
信息详细程度:日志级别
子系统:facility,设施
动作:
syslog服务:
    syslogd:系统,非内核产生的信息
    klogd:内核,专门负责记录内核产生的日志信息
    配置文件:/etc/syslog.conf
    配置文件定义格式:facility.priority   action
        facility,可以理解为日志的来源或设备目前常用的facility有以下几种:
            auth                        #认证相关的
            authprity                   #权限,授权相关的
            cron                        #任务计划相关的
            daemon                      #守护进程相关的
            kern                        #内核相关的
            lpr                         #打印相关的
            mail                        #邮件相关的
            mark                        #标记相关的
            news                        #新闻相关的
            security                    #安全相关的,与auth类似
            syslog                      #syslog自己的
            user                        #用户相关的
            uucp                        #unix to unix cp 相关的
            local0到local7              #用户自定义使用
            *                           #*表示所有的facility
        priority(log level)日志的级别,一般有以下几种级别(从低到高):
            debug                       #程序或系统的调试信息
            info                        #一般信息
            notice                      #不影响正常功能,需要注意的消息
            warning/warn                #可能系统功能,需要提醒用户的重要事件
            err/error                   #错误信息
            crit                        #比较严重的
            alert                       #必须马上处理的
            emerg/panic                 #会导致系统不可用的
            *                           #表示所有的日志级别
            none                        #跟*相反,表示啥也没有
        action(动作)日志记录的位置:
            系统上的绝对路径            #普通文件,如:/var/log/xxx
            |                           #管道   通过管道送给其他的命令处理
            终端                        #终端    如:/dev/console)
            @HOST                       #远程主机  如:@10.0.0.1
            用户                        #系统用户 如:root
            *                           #登录到系统上的所有用户,一般emerg级别的日志是这样定义的
        定义格式例子:
            mail.info    /var/log/mail.log   #表示将mail相关的,级别为info及以上的所有级别的信息记录到/var/log/mail.log文件中
            auth.=info   @10.0.0.1           #表示将auth相关的,基本为info的信息记录到10.0.0.1主机上去,前提是10.0.0.1能够接收其他主机发来的日志信息
            user.!=error                     #表示记录user相关的,不包括error级别的信息
            user.!error                      #表示只记录比error低的信息
            user.error                       #表示记录error及以上的所有级别的信息
            *.info                           #表示记录所有的日志信息的info级别信息
            mail.*                           #表示记录mail相关的所有级别的信息
            *.*                              #表示记录所有的日志信息的所有级别信息
            cron.info;mail.info              #多个日志来源可以用“;"隔开
            cron,mail.info                   #与cron.info;mail.info一个意思
            mail.*;mail.!=info               #表示记录mail相关的所有级别的信息,但不包括info级别的
            
例:[root@localhost ~]# cat /etc/syslog.conf
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*                            /dev/console

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none        /var/log/messages

# The authpriv file has restricted access.
authpriv.*                        /var/log/secure

# Log all the mail messages in one place.
mail.*                            -/var/log/maillog


# Log cron stuff
cron.*                            /var/log/cron

# Everybody gets emergency messages
*.emerg                            *

# Save news errors of level crit and higher in a special file.
uucp,news.crit                        /var/log/spooler

# Save boot messages also to boot.log
local7.*                        /var/log/boot.log
You have new mail in /var/spool/mail/root

            
            
            
[root@localhost ~]# chkconfig --list syslog    #查看syslog服务在何种级别下开启#
syslog             0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭
[root@localhost ~]# service syslog status    #查看syslog服务运行状态#
syslogd (pid  3028) 正在运行...
klogd (pid  3031) 正在运行...
[root@localhost ~]# service syslog reload          #syslog在不重启的情况下,重读syslog配置文件#
Reloading syslogd...                                       [确定]
Reloading klogd...                                         [确定]
[root@localhost ~]# service syslog restart       #重启syslog#

kernel -->物理终端(/dev/console)(该文件存放了启动init程序之前产生的信息,由klogd产生并存放在/var/log/dmesg,打开命令dmesg或者cat /var/log/dmesg)
#dmesg 或者 #cat /var/log/dmesg

-->/sbin/init(日志信息由syslogd产生,存放在/var/log/messages)
/var/log/messages:含有系统标准错误日志信息;非内核产生引导信息;各子系统产生的信息;
/var/log/maillog:邮件系统产生的日志信息
/var/log/secure:记录系统登录信息,只允许root查看

日志滚动(日志切割):
阅读(1531) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~