Welcome 微信登录

首页 / 操作系统 / Linux / Linux 日志系统组成详解

Linux 日志系统有三部分组成:一、使用什么工具记录系统产生的日志信息?
      syslog服务脚本管理的两个进程: syslogd、klogd 来记录系统产生的日志信息;
      klogd    进程是专门为内核产生的日志信息服务的。
      syslogd  进程是专门为应用程序服务(除了内核)产生的日志信息服务的;
      只有调用了 logger 接口,应用程序才可以调用 syslogd工具帮助记录日志信息。二、只要系统服务在运行,就会产生日志信息,我们使用专门的工具把它记录到磁盘上了,为了方便分析日志,日志文件不能太大、很久以前的日志文件我们应该把它删掉。这些工作由谁完成呢?
        使用 logrotate 命令来滚动,syslog记录的日志文件。RHEL5.4部署中央日志服务器之rsyslog+Log Analyzer http://www.linuxidc.com/Linux/2012-01/51853.htmCentOS 6.3下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器 http://www.linuxidc.com/Linux/2013-07/86956.htmRHEL5.4部署中央日志服务器之rsyslog+loganalyzer http://www.linuxidc.com/Linux/2010-12/30801.htm使用rsyslog mysql 和logAnalyzer 的日志服务器 http://www.linuxidc.com/Linux/2012-09/70717.htmCentOS 6.3下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器 http://www.linuxidc.com/Linux/2013-07/86956.htm三、为了让人们从繁忙的工作中解脱出来。自动化管理:日志文件的滚动、备份、压缩等工作。
        使用两个忠实的劳动者(进程):crond 和 anacron ,完成上述的所有工作。 看看它们各部分的实现过程:
1、syslog
      syslog 只是用来管理 sysogd 和 klogd 的服务脚本。它们的配置文件在 /etc/syslog.conf    [root@node2 logs]# cat /etc/syslog.conf         # 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    # 星号(*) 表示通配所有的 priority    # *.info  表示记录所有priority的info级别的日志信息。注意不紧包括 info 级别的,还包括比 info 级别高的所有日志信息都会被记录下来。如:notice、warn、err、...、panic    # *.info;mail.none;authpriv.none;cron.none  表示星号(*)通配的所有 priority但不包括 mail、authpriv、cron.    # 意思是说,mail、authpriv、cron 系统的日志信息不会被记录到 /var/log/messages 中来。       # Log all the mail messages in one place.      mail.*                                                  -/var/log/maillog    # 星号(*)  表示通配所有的 priority.    # mail.*  表示记录系统 mail 产生的所有级别的日志信息。    # -/var/log/maillog  横线(-)表示系统 mail 产生的日志信息是异步写入磁盘的。意思是先把它存在 page cache 缓冲池中。再根据某种策略把它一次性刷写到磁盘中。    # mail 是一个很繁忙的系统,产生的日志信息量非常大。如果每次产生的日志信息就立即把它写到磁盘上的话,效率是很低的。磁盘IO速度很慢的。原因,系统默认是启动    # 两个脏页刷写线程的。可以通过/proc接口查看 [root@node2 ~]# cat /proc/sys/vm/nr_pdflush_threads 。Linux 会根据系统繁忙程度启动更多的线程来为刷写脏页服务的。    # 当然我们也可以调节该内核参数。但是要根据我们硬件CPU的颗数来调节。    # Everybody gets emergency messages      *.emerg                                                *         # *.emerg  *    表示所有系统的emerg等级的日志信息都发给所有用户。    # Save boot messages also to boot.log      local7.*                                                /var/log/boot.log    # 该项记录的是系统引导过程的所有级别的日志信息。
    配置文件格式:
                facility.priority        /path
    facility            是用来定义由谁产生的日志信息:那个软件、子系统运行过程中产生的日志信息。
    priority            是用来定义记录什么类型的日志信息。是应用程序产生的所有信息都把它记录到日志                            文件中呢,还是只记录该应用程序的错误日志信息等等。
    /path/file_name      是用来定义把日志信息写到哪里去。    查看常见的facility和priority:[root@node2 ~]# man syslog.conf          # 常见的 facility          The  facility  is  one of the following keywords: auth, authpriv, cron,      daemon, kern, lpr, mail, mark, news, security (same as  auth),  syslog,      user,  uucp and local0 through local7.           # 常见的 priority          The priority is one of the  following  keywords,  in  ascending  order:      debug,  info, notice, warning, warn (same as warning), err, error (same      as err), crit, alert, emerg,  panic  (same  as  emerg).
      syslog 有统一的日志文件格式,方便管理员阅读。
      Linux 系统日志文件的标准格式:
                                事件发生的时间    哪台主机的日志    产生日志信息的系统    系统发生的事件
      它们各字段之间使用空格隔开。[root@node2 ~]# tail /var/log/cronJun 12 10:00:01 node2 crond[5487]: (root) CMD (/usr/lib/sa/sa1 1 1)Jun 12 10:01:01 node2 crond[5490]:(root) CMD (run-parts /etc/cron.hourly)
    说明:
          事件发生的时间:        Jun 12 10:01:01
          哪台主机的日志:        node2
          产生日志信息的系统:    crond[5490]
          系统发生的事件:        CMD (run-parts /etc/cron.hourly)[root@node2 ~]# tail -2 /var/log/messagesJun 11 22:13:54 node2 syslogd 1.4.1: restart.Jun 11 22:13:54 node2 kernel: klogd 1.4.1, log source = /proc/kmsg started.更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2014-06/103096p2.htm
  • 1
  • 2
  • 3
  • 下一页
网络流量监控ntopngDebian的登录窗口和inkscape的使用相关资讯      Linux日志  Syslog