linux的日志系统

 linux上的日志系统

syslog
redhat6--用的是syslog-ng 
日志系统:syslog
 
syslog是一个服务
syslogd:系统,非内核产生的信息
klogd:  内核,专门负责记录内核产生的日志信息
 
kernel --> 物理终端(/dev/console) --> /var/log/dmesg
 
dmesg
cat /var/log/dmesg
 
 
日志需 要滚动(日志切割):
messages messages.1 messages.2

 

/sbin/init
    /var/log/messages: 系统标准错误日志信息:非内核产生的引导信息都在。各子系统产生的信息
  /var/log/maillog  邮件系统产生的日志信息
    /var/log/secure:
 

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

级别越低记录的信息越详细
 

syslog配置文件详解:


 facility,可以理解为日志的来源或设备目前常用的facility有以下及中
auth                    # 认证相关的
    authpriv                # 权限,授权相关的
    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/oanic     # 会导致系统不可用的
    *               # 表示所有的日志级别
    none            # 跟* 相反,表示啥也没有
    
 action(动作)日志记录的位置
    系统上的绝对路径    # 普通文件 如: /var/log/xxx
    |                   # 管道  通过管道送给其他的命令处理
    终端              # 终端   如:/dev/console
    @HOST               # 远程主机 如: @10.0.0.1     
    用户              # 系统用户 如: root
    *                   # 登录到系统上的所有用户,一般emerg级别的日志是这样定义的
 
      定义格式例子:
mail.info   /var/log/mail.log # 表示将mail相关的,级别为info及
                              # 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                   # 与user.error相反
*.info                        # 表示记录所有的日志信息的info级别
mail.*                        # 表示记录mail相关的所有级别的信息
*.*                           # 表示记录所有日志的所有级别的信息
cron.info;mail.info           # 多个日志来源可以用";" 隔开
cron,mail.info                # 与cron.info;mail.info 是一个意思
mail.*;mail.!=info            # 表示记录mail相关的所有级别的信息,但是不包括info级别的
 

你可能感兴趣的:(日志)