rsyslog 模板

来源:互联网 发布:手机淘宝的微淘在哪里 编辑:程序博客网 时间:2024/06/05 19:11
 模板是rsyslog的关键功能,它们允许指定用户可能需要的任何格式。它们也可以用于动态文件生成, 每个output 在rsyslog 使用模板--数据库写期望它的模板是一个正确的SQL语句。因此这个是高度自定义的, 你可能会问 所有这些事如何工作的当没有模板被指定答案是简单的,尽管模板是兼容stock syslogd 格式 被硬编码到rsyslogd.因此如果没有模板被指定,我们使用一个硬代码的模板$template tocFormat,"%msg%\n"#$template tocFormat,"%syslogtag%,%msg%\n"$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 messageThe 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%\n"Legacy String-based Template Samples这个章节 提供一些默认的模板以legacy 格式, 是用于 rsyslog v6前的版本。注意 这个格式是仍旧被支持的,因此没有必须要升级存在的配置。然而, 它是强烈推荐legacy 结构是不在被使用的当 使用新的模板。注意 每个 $template statement  是在一个单独的行

0 0
原创粉丝点击