Rsyslog的模板template详解

一、 Template功能

  • 根据用户需求指定任意格式
  • 动态生成文件名
  • 每个输出都使用了一些模板,包括针对文件的,针对用户消息等

备注:

  • 旧版本:$template
  • 新版本:template()

V6之前是旧格式

V7版本,传统语法与最新配置可在配置文件中混合使用,我们下面学习的是新格式。

二、Template()声明

1.作用

用来定义模板,是一种静态声明,表示所有的模板都会在rsyslog读取配置文件的时候被定义。template不会受到if语句或嵌入配置的影响。

2.基本声明结构
template(parameters)

list templates则是一种扩展的支持   template(parameters) {list-descriptions}
3.template的类型

类型参数指定不同的template类型,不同类型就可以使用不同的方法来定义template的内容,类型不会影响插件工作,合适的template类型会很好的匹配需求。

  • List
  • Subtree
  • String
  • Plugin

下面具体讲一下每种类型

三、四种类型的学习

1. list类型

List template是由一系列反复出现的内容和变量语句生成的,内容通过“{}”包含起来,这种类型一般用于已知输出结构的情况,比如,ommongodb。建议在有复杂属性替换的情况下使用这种类型,比较清晰

List template包含template头部(type = "list")和紧接着的用”{}”括起来的constant和property部分。

  • constant:不变的,对反复出现的文本进行描述
  • property:描述属性。对于property有多种可用的选项,大多数选项被用来提取部分的属性内容或者用来修改文本(比如将大写字母转换为小写字母)

举例:

template(name="tpl1" type="list"){
constant(value="Syslog MSG is: '")

property(name="msg")

constant(value="', ")

property(name="timereported" dataFormat="rfc3339" caseConversion="lower")

constant(value="\n")

}

备注:这个示例可能会被用于定位常见的文件输出

(1)常量的声明(constant statement)

一种指定常量文本的方法。常量主要用于基于文本的输出。

 

举例:

template(name="outfmt" type="list"){

    property(name="$!user!msgnum")

    constant(value&
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值