FreeBSD 研习课程讲义
Prev log 日志档概述 Next

  • 系统日志档的种类
           
    1. FreeBSD 的日志档
         FreeBSD 的日志档(log files),放在 /var/log/ 之下,以下是一台 FreeBSD 
      的主机刚装好时的 /var/log/ 下的档案。       
      cron 
      dmesg.today 
      httpd-access.log 
      httpd-error.log 
      lastlog 
      lpd-errs 
      maillog 
      maillog.0.gz 
      messages 
      mount.today 
      ppp.log 
      security 
      sendmail.st 
      sendmail.st.0 
      sendmail.st.1 
      setuid.today 
      slip.log 
      userlog 
      wtmp
      
      ftpd
      ps: 可能你的档案会不一样,视你所装的软体而定
             
    2. 储存的格式
             这些档案储存的格式不太一样,一般有三种方式..         
      • 一般的文字档: 如 cron、dmesh.today、dmesg.yesterday、httpd-access.log.. 这种档
        案可用一般的文字编辑软体,如 vi、ee 等直接开启,这也是大部份的 log file 采取的格式。         
      • gzip 或 bzip2 压缩档:一般是用来做备份 log 档的,如 maillog.0.gz         
      • 二位元档或特殊的格式:有些档案采取二位元档的方式如 wtmp lastlog..这种类类型,必需
        要用指令去开启,如 ac 或 last 来看。         
      例如:
             # ac -d  --> 显示某个 user 的使用时间合计
             # last  颢示某个 user 的使用情况
             
    3. 档案内容简单说明
             cron --> cron 的 log file
             dmesg.today --> 最近的 dmesg 讯息
             dmesg.yesterday --> 上一次的 dmesg
             httpd-access.log --> apache 的存取
             httpd-error.log --> apache 存取的 error message
             lastlog --> 所有使用者的使用资料,为一二进位档
             lpd-errs --> 列表机的 error message
             maillog --> 信件的 log file,如 sendmail 或是 postix 都会在此记录
             maillog.0.gz --> maillog 的备份档,一般有 0-7 个
             messages --> 一些重要的讯息,如 mail 、系统..
             mount.today --> mount 的讯息
             ppp.log --> 使用拨接的 log file
             security --> 如 root 登入、ssh.. 等的记录
             sendmail.st --> sendmail 的记录档
             sendmail.st.0 --> sendmail 备份,一般有多个,如 *.1 *.2
             setuid.today --> 一些使用 setuid 的记录,由於某些程式执行时需有 root 的
                              身份,因此必需在程式执行转换成 root 身份以便执行。这个
                              记录档便是记录这些资料,如以前旧版的 sendmail 或 openwebmail 
                              都是典型的例子。
             slip.log --> 使用 slip 的记录,和 ppp 类似,目前已很少人在使用
             userlog --> 通常记录一些 daemon 的登入记录
             wtmp --> 使用者登入记录
             ftpd --> ftp上下传的所有log纪录(需自己新增,方法写在最下面)        
       
             
  • 日志档(log files)是如何产生的
         日志档的产生,一般可分为几种       
    1. 由 syslogd 产生,其相关设定在 /etc/syslog.conf 中       
    2. 由程式自行产生,典型的如 apache、一般自行安装的软体..       
    3. 由 newsyslog,这个软体会叁照 /etc/newsyslog.conf 的设定,其实标准说法该是说,
      newsyslog 决定了相关 log file的储存方式及备份时间。       
         
  • 有关 syslogd 的介绍
         syslogd 是以一个 daemon 的方式在执行(也就是长驻在记忆体内),如 httpd inetd 
         都是如此..本来 syslogd 是 sendmail 设计的,不过后来大部份的 unix-like 都使
         用类似的方法来记录某部份的 log files(不是全部)
         这我们先来讨论一下有关 syslogd 的部份,syslogd 执行时会叁考 /etc/syslog.conf 
         的设定,以下是一个典型的例子每一行分成二个项目)
         ps:其中是用 tab 来分割二个项目,不是用空白!
         #*.err;kern.debug;auth.notice;mail.crit /dev/console
         *.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages
         security.* /var/log/security
         mail.info /var/log/maillog
         lpr.info /var/log/lpd-errs
         cron.* /var/log/cron
         #*.err root
         #*.notice;news.err root
         #*.alert root
         *.emerg *
         # uncomment this to log all writes to /dev/console to /var/log/console.log
         #console.info /var/log/console.log
         # uncomment this to enable logging of all log messages to /var/log/all.log
         #*.* /var/log/all.log
         # uncomment this to enable logging to a remote loghost named loghost
         #*.* @loghost
         # uncomment these if you're running inn
         # news.crit /var/log/news/news.crit
         # news.err /var/log/news/news.err
         # news.notice /var/log/news/news.notice
         !startslip
         *.* /var/log/slip.log
         !ppp
         *.* /var/log/ppp.log
         看起来好像很乱,我们分析一下       
    1. 每一行分为二个部份,一个是讯息定义部份,另一个是讯息处理部份,如
             *.err;kern.debug;auth.notice;mail.crit /dev/console
             前面 *.err;kern.debug;auth.notice;mail.crit 是定义部份,而 /dev/console 
             代表要如何处理,在此为将讯息传到 console,也就是萤幕。        
    2. 讯息的定义
             讯息定义又分为二个部份,讯息产生者及类别,其格式为 [讯息产生者].[类别],
             像 1 中就有四个讯息的定义,每一个讯息定义用 ; 分开。
               
      • *.err         
      • kern.debug         
      • auth.notice         
      • mail.crit         
      在第一个部份一般有
             * -> 代表所有的产生者
             kern -> 代表 kernel 产生的讯息
             auth -> 认证的讯息 
             mail -> 由 mail 所产生的讯息
             lpr -> 列表机产生的讯息
              讯息类别有以下几种
             .* -> 所有的类别 
             .emerg -> 非常重要的紧急讯息类别 
             .err -> 错误 
             .alert -> 系统警告 
             .warning -> 一般性警告 
             .crit -> 关键状态类别 
             .notice -> 提示类别 
             .info -> 一般资讯 
             .debug -> 一些除错的资讯 
              实例
             mail.* -> 代表 mail 产生的所有讯息类别
             mail.info -> 代表由 mail 产生的一般性讯息
             
    3. 处理部份
             处理部份可分为二个部份来说明:
               
      • 转到 log 档
                 如以下: 
                 *.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages
                 security.* /var/log/security
                 mail.info /var/log/maillog
                 lpr.info /var/log/lpd-errs
                 cron.* /var/log/cron
                          
      • 转给某个人,如 console root (在 monitor 显示)
                 #*.err;kern.debug;auth.notice;mail.crit /dev/console
                 *.err root
                 *.notice;news.err root
                 *.alert root
                  以上这些会在萤幕上显示         
  • 后续动作
         记得修改完后,重新启动 syslogd 这个 daemon
         # killall -1 syslogd
         
  • 叁考资料
         http://www.cmlab.idv.tw/modules/sections/index.php?op=viewarticle&artid=58     
    
    
    补充 ftpd
    
    每个成功或是失败的 ftp 登入,都会以 LOG_FTP机制纪录起来。所有的下载、上载、新增
    、删除、建立目录,以及更名的动作和档案名字都会被纪录下来。 LOG_FTP 讯息预设是不
    会被 syslog 纪录下来的。还需要在syslogd的设定档面启动这个功能才行。开启 
    syslogd 纪录 ftpd log 的功能步骤如下:
    需修改的档案是在
    #/etc/syslog.conf
    把下面这一行加到这个设定档:
    
    
    ftp.*                                                        /var/log/ftpd            
    最后别忘了执行 touch 这个指令,因为syslogd不能写入到一个没有被开启过的档案。
    #touch /var/log/ftpdlog
               
     
    

Prev Home Next
  UP newsyslog