rsyslog如何自定义模板

在rsyslog配置文件中定义模板
/etc/rsyslog.conf

1.添加模板
以下内容是自定义的模板

$template templateName, “%$Year% %timestamp:1:10:date-rfc3339% UserDefineTAG %MSG% %structured-date% n\%


参数解释


templateName 模板名

%$Year% System Properties,参考https://www.rsyslog.com/doc/v7-stable/configuration/properties.html
$符号不可省略


%timestamp:1:10:date-rfc3339% Message Properties,参考https://www.rsyslog.com/doc/v7-stable/configuration/properties.html
1表示从第一个字符开始,10表示到第10个字符结束。即仅截取timestamp的1到10个字符
Date-rfc3339 属性选项,参考https://www.rsyslog.com/doc/v7-stable/configuration/property_replacer.html


UserDefineTAG 可以直接追加字符,在每一行log中显示
%MSG% 默认syslog协议的消息内容
%structured-data% 有些log的内容使用方括号括上的 例如checkpoint 防火墙的log,[action:denny ……],这些属于structured-data,单独使用MSG是无法显示的。


2.如何使用模板
在LOG文件之后加 ;模板名 即可使用模板
例1. Local0.* /home/log/archive.log;templateName

例2. If $fromhost-ip = ‘xxx.xxx.xxx.xxx’ then /home/log/archive.log;templateName

### Rsyslog 默认模板配置 在Rsyslog中,默认情况下会使用一些预定义的模板来处理日志消息。这些默认模板用于控制如何格式化并存储接收到的日志数据。 #### 预定义的标准模板 通常,在未特别指定其他模板的情况下,`RSYSLOG_SysLogProtocol23Format` 或者 `RSYSLOG_TraditionalFileFormat` 是两个常见的默认选项之一[^1]: - **RSYSLOG_SysLogProtocol23Format**: 这种格式遵循RFC 5424标准,它包含了时间戳、主机名、严重程度以及实际的消息内容等字段。 - **RSYSLOG_TraditionalFileFormat (也称为 Traditional)**: 此格式较为简单,主要用于向后兼容旧版本系统中的日志记录方式;其输出形式类似于传统的Unix syslog格式。 如果想要查看当前使用的具体默认模板设置,可以在 `/etc/rsyslog.conf` 文件内寻找如下指令: ```bash $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat ``` 这行配置指定了全局范围内所有动作都将采用传统文件格式作为默认模板[^3]。 对于希望创建自定义模板的情况,则可以通过编辑上述提到的配置文件来进行调整,并通过重启服务使更改生效。例如下面这个例子展示了怎样建立一个新的模板并将之设为新的默认值: ```bash $template custom_template,"%TIMESTAMP:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msgid% %msg%\n" $ActionFileDefaultTemplate custom_template ``` 这段脚本首先定义了一个名为 `custom_template` 的新模板,该模板采用了 RFC3339 时间戳格式以及其他几个有用的元数据项。接着将此模板应用到了整个系统的日志记录过程中去。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值