zoukankan      html  css  js  c++  java
  • rsyslog 模板

     模板是rsyslog的关键功能,它们允许指定用户可能需要的任何格式。
    
    它们也可以用于动态文件生成, 每个output 在rsyslog 使用模板--
    
    数据库写期望它的模板是一个正确的SQL语句。
    
    
    因此这个是高度自定义的, 你可能会问 所有这些事如何工作的当没有模板被指定
    
    
    
    答案是简单的,尽管模板是兼容stock syslogd 格式 被硬编码到rsyslogd.
    
    因此如果没有模板被指定,我们使用一个硬代码的模板
    
    $template tocFormat,"%msg%
    "
    #$template tocFormat,"%syslogtag%,%msg%
    "
    $template zjzc-flow01,"/data01/applog_backup/zjzc_log/zj-flow01-catalina.out.%$year%-%$month%-%$day%"       #定义TC:日志存放路径
    
    
    模板是通过template()语句指定, 可以通过legacy 语句指定
    
    
    
    模板处理:
    
    
    
    由于缺乏标准的关于日志格式,当一个模板是特定的 它假设包含HEADER,定义在RFC5424
    
    
    假设,如果MSG 字段是设置“this:is a message”  没有HOSTNAME,也没有指定TAG,分析器会分割消息为:
    
    TAG:this:
    MSG:is a message
    
    The template() statement 模板语句
    
    
    template() 语句是用于定义模板,注意他是一个静态声明,
    
    这意味着所有模板是被定义当rsyslog 读取配置文件, 因此 模板是不被if语句或者配置嵌套的影响
    
    基本的模板语句的结构是如下:
    
    template(parameters)
    
    
    除了这个简单的语法,list 模板(下面描述)支持扩展语法:
    
    
    template(parameters) { list-descriptions }
    
    
    每个模板有一个参数名字, 指定了模板的名字,和一个参数类型,
    
    
    指定了模板类型。
    
    
    名字参数必须是唯一的,如果不是 行为是不可预知的。
    
    类型参数指定不同的模板类型,不同的类型简单的启动不同的方式来指定模板内容。
    
    
    模板类型不影响 一个ouput 插件可以处理它。
    
    
    创建omfile 动态文件名:
    
    
    模板可以用于生成actions 使用动态文件名。
    
    比如,你想要分割syslog 消息从不同的主机到不同的文件(一个主机一个文件),你可以定义下面的模板:
    
    template (name="DynFile" type="string" string="/var/log/system-%HOSTNAME%.log")
    
    Legacy example:
    
    $template DynFile,"/var/log/system-%HOSTNAME%.log"
    
    
    
    $template zjzc-flow01,"/data01/applog_backup/zjzc_log/zj-flow01-catalina.out.%$year%-%$month%-%$day%"
    
    
    
    
    
    legacy format:
    
    
    在rsyslog v6版本之前,你需要使用 $template 语句来配置模板。
    
    
    它们提供等价于 字符串和基于插件的模板。
    
    
    legacy 语法在rsyslog v7版本继续工作,但是我们推荐避免legacy 格式用于新的配置文件。
    
    Legacy 和当前配置语句可以共存在相同的配置文件
    
    
    The general format is
    
    $template name,param[,options]
    
    name 表示模板名字,param 是一个单独的参数 指定模板的内存
    
    
    字符串:
    
    
    这个参数 是相同的字符串 指定当前格式 你指定的在字符串参数,例如:
    
    
    $template strtpl,"PRI: %pri%, MSG: %msg%
    "
    
    
    Legacy String-based Template Samples
    
    
    这个章节 提供一些默认的模板以legacy 格式, 是用于 rsyslog v6前的版本。
    
    
    注意 这个格式是仍旧被支持的,因此没有必须要升级存在的配置。
    
    然而, 它是强烈推荐legacy 结构是不在被使用的当 使用新的模板。
    
    注意 每个 $template statement  是在一个单独的行
    
    

  • 相关阅读:
    关于jar包的创建及引用相关问题
    关于Android系统一次能创建多大的Bitmap?
    Android开发导入第三方Jar包
    Javascript操作表格
    installanywhere 打包j2ee的方法II(转)
    C#网页自动登录和提交POST信息的多种方法
    JavaScript手册javascript语法javascript函数
    javascript 禁止复制网页
    [Android实例] Handler+ExecutorService(线程池)+MessageQueue模式+缓存模式(转)
    android消息处理系统原理
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13349883.html
Copyright © 2011-2022 走看看