Rsyslog Properties and the Property Replacer
rsyslog Properties
数据项在rsyslog称为"属性",每当你想要访问数据项,你需要访问resprective属性。
Properties被用于:
templates(模板)
conditional statements(条件控制语句)
Message Properties
这些都是通过rsyslog解析器从原始消息中提取,所有消息属性从一个字母开始:
msg:message的MSG部分rawmsg:从socket接收到的原始信息,一般用于debug。hostname:message中的主机名source:HOSTNAME的别名fromhost:接受message的系统主机名,在多级收集的模式下不一定是原始的发送者的主机名,这是DNS解析的名称。fromhost-ip:和fromhost一样,总是表现为一个IP地址,本地作为input的话,地址为127.0.0.1。syslogtag:message的TAG部分programname:tag的static部分,named[12345]的programname是named。pri:message的PRI部分,未编码的。pri-text:PRI的一部分,以文本的形式。iut:略syslogfacility:message的facility,以数字的形式syslogfacility-text:message的facility,以文本的形式syslogseverity:message的severity,以数字的形式syslogseverity-text:message的severity,以文本的形式syslogpriority:syslogseverity的别名syslogpriority-text:syslogseverity-text的别名timegenerated:接受到message是的timestamp,精度高timereported:从message里面获取timestamp,时间进度取决于message本身timestamp:timereported的别名protocol-version:draft-ietf-syslog-protcol中的PROTCOL-VERSION字段structured-data:draft-ietf-syslog-protocol中的STRUCTURED-DATAapp-name:draft draft-ietf-syslog-protocol中的APP-NAME字段procid:draft-ietf-syslog-protocol中的PROCID字段msgid:draft-ietf-syslog-protocol中的MSGID字段inputname:生成的信息中输入模块的名字,并不是所有模块都提供这个属性。
System Properties
这些属性由rsyslog核心引擎提供。 它们与消息无关。 所有系统属性都以$开始。
例如timereported就包含message的时间戳信息,由于日志在中继的过程中可能时间戳比较滞后,使用$now表示的是系统当前处理的时间
$bom:utf-8编码的Unicode字节顺序,前提是知道是unicode字符集。$now:当前的时间戳,YYYY-MM-DD$year:当前时间的年份,4位数。$month:当前的月份,2位数。$day:当前的日,2位数。$hour:当前的小时,2位数,24小时制。$hhour:半小时制。$qhour:略$minute:当前时间的分钟数$myhostname:当前主机的名称
The Property Replacer
property replacer是字符串模块的核心组件,syslog消息有很多明确的属性,每一个属性都可以被Property Replacer访问和操纵。例如将所有字符转换成小写。
Accessing Properties
syslog消息的属性被用于模板的内部,通过百分号访问,属性可以由替代属性修改。示例:
%property:fromChar:toChar:options%
Available Properties
参考上一节的rsyslog Properties部分
Character Positions
FromChar and toChar被用于建立子串,示例:
%msg:1:2%:截取前两个字符%msg:::lowercase:::表示整个字符串,将全部字符串转换成小写%msg:10:$%:$表示结尾,第10个字符一直到结尾。
支持正则匹配的方式:
%msg:R:.*Sev:. \(.*\) \[.*–end%:R表示正则匹配,–end表示结尾。
R后面可以指定参数,格式:
R,<regexp-type>,<submatch>,<nomatch>,<match-number>
regexp-type:正则表达式的类型,默认是BRE
submatch:子匹配标识要与结果一起使用的子匹配,0标志完整匹配,可以使用0-9.
match-number:表示匹配的模数,引用前面的匹配对象
nomatch:指定在找不到匹配的情况下应该使用的内容。
示例:
%msg:R,ERE,1,FIELD:for (vlan[0-9]\*):--end%%msg:R,ERE,1,FIELD,1:for (vlan[0-9]\*):--end%
提取也可以基于字段来完成,放入一个F之后,再定义分隔符,分隔符使用字符的ascii码字符来表示
%msg:F,59:3% #59为分号
基于子串来做字段提取工作(6.3.9版本以后)
%msg:F,59,5:3,9% #F表示提取模式,59表示分隔符,5表示起始,3表示字段3,9表示提取的字符串位置
需要使用多个分隔符可以用+号,示例:
int n, m;...syslog(LOG_ERR, "%d test %6d", n, m); #使用空格作为分隔符,在遇到多个空格的情况下容易出现不唯一的情况"%msg:F,32:2%" to "%msg:F,32+:2%" #使用+号来添加一个或多个相同分隔符的效果,来源与perl的风格
Property Options
属性选项是不区分大小写的。目前,定义以下选项:
uppercase:将属性转换成小写lowercase:将属性文本转换成大写csv:生成的格式drop-last-lf:删除消息后面的换行符date-mysql:mysql的时间格式date-rfc3164:rfc3164的时间格式date-rfc3164-buggyday:类似于date-rfc3164date-rfc3339:rfc3339的时间格式date-subseconds:时间戳的秒数escape-cc:替换控制字符space-cc:用空格替换控制字符drop-cc:删除控制字符sp-if-no-1st-sp:略secpath-drop:去掉斜杠,e.g. "a/b" becomes "ab"secpath-replace:将斜杠替换,e.g. "a/b" becomes "a_b"
转载于:https://www.cnblogs.com/solitarywares/p/7993871.html
Rsyslog Properties and the Property Replacer相关推荐
- java中读取properties文件内容五种方式
一.背景 最近,在项目开发的过程中,遇到需要在properties文件中定义一些自定义的变量,以供java程序动态的读取,修改变量,不再需要修改代码的问题.就借此机会把Spring+SpringMVC ...
- Spring MVC 通过@Value注解读取.properties配置内容
为什么80%的码农都做不了架构师?>>> 第一步: 在applicationContext.xml配置: <bean id="configProperties&quo ...
- 保存Java程序状态及设置Properties文件
保存Java程序状态及设置Properties文件 作者: 刻录机, 出处:中国IT实验室, 责任编辑: 包春林, 2008-04-11 00:00 使用Properties文件来保存.Propert ...
- Spring加载properties文件的两种方式
2019独角兽企业重金招聘Python工程师标准>>> 在项目中如果有些参数经常需要修改,或者后期可能需要修改,那我们最好把这些参数放到properties文件中,源代码中读取pro ...
- spring中配置properties资源文件
为什么80%的码农都做不了架构师?>>> <bean id="propertyConfigurer" class="org.springfr ...
- spring配置文件中分别使用多个properties文件
spring配置文件中分别使用多个properties文件 在使用spring时,有时候需要为了模块配置方便有时候需要针对不同的模块建立不同的applicationContext的配置文件,然后在对应 ...
- @Value 注解获取properties值
转自:使用Spring 3的@value简化配置文件的读取 Spring 3支持@value注解的方式获取properties文件中的配置值,大简化了读取配置文件的代码. 1.在application ...
- Properties 配置文件参数 注入bean中
2019独角兽企业重金招聘Python工程师标准>>> 需求叙述: Properties 配置文件参数的获取,之前日志中有提到获取项目配置文件地址,读取properties获取参数. ...
- 如何在spring中读取properties配置文件里面的信息
如何在spring中读取properties配置文件里面的信息 <!-- 正文开始 --> 一般来说.我们会将一些配置的信息放在.properties文件中. 然后使用${}将配置文件中的 ...
- 记录 spring 使用@Value获取properties文件中的属性值
使用@Value(${xxx}) 获取properties文件的属性值 只需要在spring的配置文件中添加bean. 1 <bean id="propertyConfigurer& ...
最新文章
- python搭建可视化管理平台_搭建可视化数据平台 superset
- c#中将对象序列化为xml(包括list)
- Wordpress 提速之 Gzip 压缩
- redis相关(搭建和数据落盘)
- tensorflow之lenet训练手写字及应用
- 如何分析个股基本面_个股分析报告要分析哪些方面?股票基本面分析实例
- 安卓音效AudioEffect源码剖析2——音效库接口
- OpenCV学习笔记(十五)——k近邻算法
- PT工具之Docker全家桶+HTTPS详细配置教程
- 天津联通移动电信DNS
- WPS如何给公式加上右边序号
- 3D MAX 2014学习地址
- C语言枚举类 口袋中有红、黄、蓝、白、黑5种颜色的球若干个
- 蛮荒搜神记服务器在维护,蛮荒搜神记法宝洗练图文教程 蛮荒搜神记如何提升战斗力?-游侠网...
- 3.Jenkins入门基础使用与Maven+SonarQube集成配置与实践
- QQ用户的帐号和密码安全
- Oracle数据库临时表-----会话级的临时表和事务级的临时表
- 纯css3圆柱模板立体图
- 联想ideapad300-15isk加内存和固态硬盘拆机改造详细步骤
- 比较基因组学常用分析软件和分析方法
热门文章
- 计算机无线键盘没反应,电脑无线键盘没反应怎么回事
- Android 线程 Damo
- 美通企业日报 | 洲际集团酒店将撤除一次性小包装洗护用品;新能源汽车同时面临新老质量问题...
- Urgent VS Relex
- (银行案例)智能营销赋能大零售转型
- backtrader_plotting报错Unexpected data type
- 【解决方法】域名指向本地(127.0.0.1, 0.0.0.0)
- python判断火车票座位号分布图_如何选择火车靠窗座位和选座位技巧!
- Matlab之format 设置命令行窗口输出显示格式
- Swift中的下标(subscript)