Linux  日志系统

linux日志系统:(syslog)

        用于记录各子系统运行产生的各种信息

如果要手动启动,可以使用命令:

    #/sbin/syslogd

Syslog服务:

        Syslod: 系统, 非内核产生的信息

        Klogd: 内核,专门负责记录内核产生的日志信息,#cat /var/log/dmesg

 

日志系统_第1张图片

默认配置的syslog日志

   /var./log/message    系统启动后的信息和错误日志,非内核产生的引导信息

   /var/log/maillog      邮件系统产生的日志信息

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

日志需要滚动(也被成为日志切割 logrotate)

       目的是为了防止日志文件过大导致日志信息分析不便, 

    

 Syslog的配置文件在 /etc.syslog.conf

    指定了syslog记录日志的信息来源, 信息类型  级别和位置

图片说明

日志系统_第2张图片

该文件以“#”为注释符,  每一行的语法格式为:

       【消息来源,消息级别】    【动作】

同一行中允许出现多个【消息来源,消息级别】,但必须要使用分号“;”进行分隔,

        例子: mail.*cron.p*       /var/log/test.log

Syslog消息来源及说明

     auth       认证相关的                          authpriv   权限,授权相关的 

     cron       任务计划相关的           daemon     守护进程相关的 

    kern       内核相关的                lpr        # 打印相关的 

    mail       # 邮件相关的                            mark       # 标记相关的 

    news       # 新闻相关的                     security  安全相关的,auth 类似  

    syslog    # syslog自己的                 user      # 用户相关的 

    uucp      # unix to unix cp 相关的      local0 到 local7  用户自定义使用 

    *         # *表示所有的facility 

优先级代表消息的紧急程度,一般有以下几种级别(从低到高

    debug       # 程序或系统的调试信息      info            一般信息

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

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

    err/error        错误信息 

    crit            # 比较严重的 

    alert           # 必须马上处理的 

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

    *              # 表示所有的日志级别 

none           # 忽略所有消息

【动作】是用于指定消息的处理方式,支持把消息保存在日志文件中,发给指定用户等

    以下是syslog的动作说明

   系统上的绝对路径     # 普通文件 如: /var/log/xxx 

    |                 # 管道  通过管道送给其他的命令处理 

    终端                终端   如:/dev/console 

    @HOST             # 远程主机 如: @10.0.0.1      

    用户名列表          # 发送给指定用户,用户名用“,”隔开 

    *                   # 把消息发到所有用户的终端上

清空日志信息的命令是 

       #echo > 日志文件 

  例子:要清空/var/log/message下的日志文件内容

      命令 #echo > /var/log/message