• rsyslog和过滤规则


    • /etc/rsyslog.conf 是rsyslog服务的总配置文件

     

    • /etc/rsyslog.d 该目录是单独配置的rsyslog配置文件
    vim /etc/rsyslog.conf
    
    $IncludeConfig /etc/rsyslog.d/*.conf
    
    # 个人建议,将所有的rule都配置在该目录下,在/etc/rsyslog.conf中不写rule

     

    配置文件/etc/rsyslog.conf主要有3个部分

    MODULES :模块
    GLOBAL DRICTIVES :全局设置
    RULES:规则

     

     

    RULES:规则

    过滤

    $msg

    if $msg contains '%ASA-' and $syslogseverity <= '6' then {
    	-/var/log/cisco-asa.log
    	stop
    }

     

     

    模板

    任何rsyslog生成的日志都可以根据需要使用模板进行格式化,要创建模板,使用如下指令

    $template TEMPLATE_NAME,"text %PROPERTY% more text", [OPTION]

    这里的$template指令表明了接下来的内容定义了一个模板,TEMPLATE_NAME是模板的名称,接下来双引号之间的内容为模板的内容。

    这里还有一个 OPTION , 它指定了模板的功能,支持选项为sqlstdsql,在使用数据库存储的时候会用到。

    生成动态文件名

    模板可以用来生成动态文件名,就如之前所述,在使用动态文件名的时候,需要在 ACTION 中的模板名称前增加?表明该文件名是动态生成的。

    例如:

     

    $template DynamicFile,"/var/log/test_logs/%timegenerated%-test.log"
    *.* ?DynamicFile
    timegenerated属性从日志信息中提取出消息的时间戳,这样可以为每个日志生成唯一文件名称。

     

    以下是一些简单属性的示例:

    以下属性获取系统日志消息的整个消息文本:
    %msg% 
    
    以下属性获取系统日志消息的消息文本的前两个字符:
    %msg:1:2%
    
    以下属性获取系统日志消息的整个消息文本,并删除其最后一个换行符:
    %msg ::: drop-last-lf%
    
    以下属性获取接收到syslog消息时生成的时间戳的前10个字符,并根据RFC 3999日期标准对其进行格式化。
    %timegenic:1:10:date-rfc3339%

     

     

    #  %syslogpriority-text% : syslog priority
    #  %syslogfacilityt-text% : syslog facility
    #  %timegenerated% : timestamp when the message was received
    #  %HOSTNAME% : hostname
    #  %syslogtag% : tag
    #  %msg% : the message sent to syslog

     

     

    所有的属性参考:

     

    logrotate配置文件

    logrotate的配置文件为/etc/logrotate.conf

    自定义的log rotation配置文件在/etc/logrotate.d目录下

     

    比较全的总结:

  • 相关阅读:
    PHP (20140519)
    PHP (20140516)
    js(20140517)在JS方法中返回多个值的三种方法
    PHP (20140515)
    PHP (20140514)
    Java内网发送邮件
    每日一“酷”之Cookie
    每日一“酷”之Queue
    每日一“酷”之pprint
    每日一“酷”之copy
  • 原文地址:https://www.cnblogs.com/zhaoyong631/p/14441124.html
Copyright © 2020-2023  润新知