美文网首页
『学了就忘』Linux日志管理 — 2.日志服务rsyslogd

『学了就忘』Linux日志管理 — 2.日志服务rsyslogd

作者: 繁华似锦Fighting | 来源:发表于2020-08-05 22:08 被阅读0次

    1、日志文件格式

    只要是由日志服务rsyslogd记录的日志文件,他们的格式是一样的。

    基本日志格式包含以下内容:

    • 事件产生的时间。
    • 发生事件的服务器的主机名。
    • 产生事件的服务名或程序名。
    • 事件的具体信息(具体日志信息)。

    我们以/var/log/messages为例:

    2、rsyslogd服务的配置文件

    rsyslogd服务是的配置文件是/etc/rsyslog.conf。用来确定哪个服务的、什么等级的日志信息,会被记录在哪个位置。也就是说,rsyslogd日志服务/etc/rsyslog.conf配置文件中主要定义了服务的名称、日志等级和日志记录位置。

    (1)rsyslog.conf配置文件内容

    rsyslog.conf配置文件的位置在/etc/rsyslog.conf配置文件说明。

    # 查看/etc/rsyslog.conf配置文件的内容。
    [root@localhost ~]# vim /etc/rsyslog.conf
    
    # rsyslog v5 configuration file
    
    # For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
    # If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html
    
    # 加载模块。是`rsyslogd`服务必备的模块。
    #### MODULES ####
    
    # 加载imuxsock模块,为本地系统登录提供支持。
    $ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
    # 加载imklog模块,为内核登录提供支持。
    $ModLoad imklog   # provides kernel logging support (previously done by rklogd)
    # 加载immark模块,提供标记信息的能力。
    #$ModLoad immark  # provides --MARK-- message capability
    
    
    # 如果你需要把日志发送给其他的服务器,
    # 你就需要开启下面的UPD或者TCP协议的网络服务。
    # 加载UPD模块,允许使用UDP的514端口,接收采用UDP协议转发的日志。
    # Provides UDP syslog reception
    #$ModLoad imudp
    #$UDPServerRun 514
    
    # 加载TCP模块,允许使用TCP的514端口,接收采用TCP协议转发的日志。
    # Provides TCP syslog reception
    #$ModLoad imtcp
    #$InputTCPServerRun 514
    
    
    # 定义全局设置。
    #### GLOBAL DIRECTIVES ####
    
    # 定义日志的时间,使用默认的时间戳格式。
    # Use default timestamp format
    $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
    
    # 文件同步功能。默认没有开启,是注释的。
    # File syncing capability is disabled by default. This feature is usually not required,
    # not useful and an extreme performance hit
    #$ActionFileEnableSync on
    
    # 包含/etc/rsyslog.d/目录中所有的“.conf"子配置文件。
    # 也就是说这个目录中的所有子配置文件也同时生效。
    # Include all config files in /etc/rsyslog.d/
    $IncludeConfig /etc/rsyslog.d/*.conf
    
    
    # 日志文件保存规则。
    #### RULES ####
    
    # kern服务.所有日志级别保存在/dev/console。
    # 这个日志默认没有开启,如果需要,则取消注释。
    # Log all kernel messages to the console.
    # Logging much else clutters up the screen.
    #kern.*                                                 /dev/console
    
    # *.info;mail.none;authpriv.none;cron.none意思是:
    # 所有服务.info以上级别的日志,保存在/var/log/messages日志中。
    # 除了mail,authpriv,cron的日志不记录在/var/log/messages日志文件中,因为它们都有自己的日志文件。
    # 所以/var/log/messages日志,是最重要的系统日志文件,需要经常查看!
    # 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
    
    
    # 用户认证服务所有级别的日志,保存在/var/log/secure日志中。
    # The authpriv file has restricted access.
    authpriv.*                                              /var/log/secure
    
    # mail服务的所有级别的日志保存在/var/log/maillog日志中。
    # “-”号的含义是日志先在内存之中保存,当日志够多之后,再向文件中保存。
    # Log all the mail messages in one place.
    mail.*                                                  -/var/log/maillog
    
    # 计划任务的所有日志保存在/var/log/cron日志中。
    # Log cron stuff
    cron.*                                                  /var/log/cron
    
    # 所有日志服务的疼痛等级日志对所有在线用户广播。
    # Everybody gets emergency messages
    *.emerg                                                 *
    
    # uucp和news日志服务的crit以上的日志保存在/var/log/sppoler 日志文件中。
    # Save news errors of level crit and higher in a special file.
    uucp,news.crit                                          /var/log/spooler
    
    # loac17日志服务的所有日志写入/var/log/boot.log日志中。
    # 会把开机时的检测信息在显示到屏幕的同时,写入/var/log/boot.log日志中
    # Save boot messages also to boot.log
    local7.*                                                /var/log/boot.log
    
    
    # 定义转发规则
    # ### begin forwarding rule ###
    # The statement between the begin ... end define a SINGLE forwarding
    # rule. They belong together, do NOT split them. If you create multiple
    # forwarding rules, duplicate the whole block!
    # Remote Logging (we use TCP for reliable delivery)
    #
    # An on-disk queue is created for this action. If the remote host is
    # down, messages are spooled to disk and sent when it is up again.
    #$WorkDirectory /var/lib/rsyslog # where to place spool files
    #$ActionQueueFileName fwdRule1 # unique name prefix for spool files
    #$ActionQueueMaxDiskSpace 1g   # 1gb space limit (use as much as possible)
    #$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
    #$ActionQueueType LinkedList   # run asynchronously
    #$ActionResumeRetryCount -1    # infinite retries if host is down
    # remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
    #*.* @@remote-host:514
    # ### end of the forwarding rule ###
    
    

    (2)rsyslog.conf配置文件内容说明

    @1、/etc/rsyslog.conf配置文件格式
    格式:
    #服务名称[连接符号]日志等级           日志记录位置
    authpriv.*                      /var/log/secure
    
    说明:
    认证相关服务.所有日志等级           记录在/var/log/secure日志中。
    
    @2、服务名称

    rsyslogd服务可以识别以下服务的日志,也可以理解为,以下这些服务委托了rsyslogd服务来代为管理日志。

    服务名称 说明
    auth (LOG_AUTH) 安全和认证相关消息(不推荐使用authpriv替代)。
    authpriv (LOG_AUTHPRIV) 安全和认证相关消息(私有的)。
    cron (LOG_CRON) 系统定时任务cront和at产生的日志。
    daemon (LOG_DAEMON) 和各个守护进程相关的日志。
    ftp (LOG_FTP) ftp守护进程产生的日志。
    kern (LOG_KERN) 内核产生的日志(不是用户进程产生的)。
    local0-local7 (LOG_LOCAL0-7) 为本地使用预留的服务。
    lpr (LOG_LPR) 打印产生的日志。
    mail (LOG_MAIL) 邮件收发信息。
    news (LOG_NEWS) 与新闻服务器相关的日志。
    syslog (LOG_SYSLOG) 有syslogd服务产生的日志信息<br />(虽然服务名称已经改为rsyslogd,但是很多配置都还是沿用了syslogd的,这里并没有修改服务名)。
    user (LOG_USER) 用户等级类别的日志信息。
    uucp (LOG_UUCP) uucp子系统的日志信息,uucр是早Linux系统进行数据传递的协议,后来也常用在新闻组服务中。
    @3、连接符号

    日志服务连接日志等级的格式是:

    日志服务[连接符号]日志等级      日志记录位置
    

    在这里连接符号可以识别为:

    • .代表只要比后面的等级高的(包含该等级)日志都记录下来。

      比如:cron.info代表cron服务产生的日志,只要日志等级大于等于info级别,就记录。

    • .=代表只记录所需等级的日志,其他等级的都不记录。

      比如:*.=emerg代表任何日志服务产生的日志信息,只要等级是emerg等级就记录。(这种方式用的很少)

    • .!代表不等于,也就是除了该等级的日志外,其他等级的日志都记录。

    @4、日志等级
    等级名称 说明
    debug (LOG_DEBUG) 一般的调试信息说明。
    info (LOG_INFO) 基本的通知信息。
    notice (LOG_NOTICE) 普通信息,但是有一定的重要性。
    warning (LOG_WARNING) 警告信息,但是还不会影响到服务或系统的运行。
    err (LOG_ERR) 错误信息,一般达到err等级的信息,已经可以影响到服务或系统的运行了。
    crit (LOG_CRIT) 临界状况信息,比err等级还要严重。
    alert (LOG_ALERT) 警告状态信息,比crit还要严重。必须立即采取行动。
    emerg (LOG_EMERG) 疼痛等级的日志信息,系统已经无法使用了。
    * 代表所有日志等级,比如:"authpriv.*”代表authpriv认证信息服务产生的日志,所有的日志等级都记录。

    debug日志等级最低, emerg日志等级最高。日志等级低,他记录的日志信息可能就会多些。

    提示:

    日志等级这里还可以识别none,如果日志等级是none,就说明忽略这个日志服务,该服务的所有日志都不再记录。

    @5、日志记录位置

    日志记录位置就是当前日志输出到哪个日志文件中保存,当然也可以把日志输出到打印机打印,或者输出到远程日志服务器上(当然日志服务器要允许接收才行)。日志的记录位置也是固定的,我们来学习下:

    • 日志文件的绝对路径。这是最常见的日志保存方法,如/var/log/secure就是保存系统验证和授权信息日志的。

    • 系统设备文件。如/dev/lp0代表第一台打印机,如果日志保存位置是打印机设备的话,当有日志时就会在打印机打印(现在基本上没有这种情况了,请放弃)。

    • 转发给远程主机。因为可以选择使用TCP协议和UDP协议传输日志信息,所以有两种发送格式。

      如果使用@192.168.0.210:514,就会把日志内容使用UDP协议发送到192.168.0.210的UDP 514端口上

      如果使用@@192.168.0.210:514就会把日志内容使用TCP协议发送到192.168.0.210的TCP 514端口上

      其中514是日志服务默认端口。(知道有这个功能即可)

      当然只要192.168.0.210服务器同意接收此日志,就可以把日志内容保存在日志服务器上。

    • 用户名。如"root",就会把日志发送给root用户,当然root要在在线,否则就收不到日志信息了。

      发送日志给用户时,可以使用*代表发送给所有在线用户,如mail.emerg *就会把mail服务产生的所有级别的日志发送给所有在线用户。

      如果需要把日志发送给多个在线用户,用户名之间用分隔。

    • ~:忽略或丢弃日志。如果接受日志的对象是~,代表这个日志不会记录,而被直接丢弃。

      例如local3.* ~代表忽略local3服务类型所有的日志都不记录。

    (3)定义自己的日志

    为什么需要自己定义日志配置文件。

    因为我们日常工作中,可能需要对某些日志信息做一些操作。有自定义的日志信息,按照自己习惯或者方便查看的方式定义日志信息格式,作为模板,我们能够更好的操作日志。

    # 1.编辑/etc/rsyslog.conf配置文件。
    [root@localhost ~]# vim /etc/rsyslog.conf
    
    # 写入如下日志信息配置。
    # 把所有服务的“错误信息”以上的错误都保存在/var/log/err.log日志文件中。
    *.err               /var/log/err.log
    
    
    # 2.重启rsyslog服务。
    [root@localhost ~]# service rsyslog restart
    关闭系统日志记录器:                      [确定]
    启动系统日志记录器:                      [确定]
    
    # 3.重启rsyslog服务完成后,查看/var/log/目录下,是否有err.log文件。
    [root@localhost ~]# ll /var/log/err.log
    -rw-------.1 root root 06月 6 16:33 /var/log/err.log
    
    # 查看到了err.log日志文件,说明上面配置的"*.err"自定义日志生效了。
    

    相关文章

      网友评论

          本文标题:『学了就忘』Linux日志管理 — 2.日志服务rsyslogd

          本文链接:https://www.haomeiwen.com/subject/bleclktx.html