Welcome to Rsyslog:
Rsyslog 是一个快速的系统用于日志处理,它提供高可能的,很高的安全功能和模块化设计。
Configuration:
Rsyslogd 是配置 通过rsyslog.conf 文件, 典型的找到在/etc.
默认的, rsyslogd 读取/etc/rsyslog.conf, 这个可以通过一个命令行选项改变
配置文件例子可以在rsyslog wiki. 保存rsyslog 配置在你的脑海里.
Basic Structure 基本结构
这个章节描述 rsyslog 基本配置,想象rsyslog 作为一个大的logging 和事件处理工具。
它可以是认为一个框架 具有一些基本的处理 是固定的数据流方式,
快速浏览消息流和对象:
消息输入rsyslog 使用input 模块的帮助。然后,它们被传递到规则集,
当规则被有条件的应用。 当规则匹配,消息是被转换为一个action,
对消息做一些处理,比如,写到一个文件,数据库或者转发到一个远程的主机
处理原则:
1. input 提交接收到的消息到规则集
如果规则集没有明确的限制,使用默认的规则集
2.默认的,有一个规则集(RSYSLOG_DefaultRuleset)
3.额外的规则集可以用户自定义
4.每个规则集包含0个或者多个规则集
当它是允许有0个规则在一个规则集,这显然是没有意义的
5.一个规则 包含一个过滤器和一个action列表
6.过滤器提供yes/no 决定,从而控制流转能力
7. 如果一个filter "matched" (filter 说"yes"),相应的action 列表会被执行。
如果它不匹配,没有什么会发生。
8. 规则是按顺序评估从第一个到最后一个骨子额 在给定的规则集。
9.所有的规则总是被完全评估,无论一个过滤器是否匹配( 因此我们不会停止在第一次匹配).
如果消息处理应该停止, "discard action (有波浪线字符或者stop命令)必须被显示的执行
如果discard 被执行,消息处理立即停止,不会评估剩下的规则
10.一个action list 包含1个或者多个actions
11. 在一个action list 没有进一步过滤器是可能的
12. 有多于一个列表在一个action list,&字符必须放在过滤器的位置,这个必须立即按照先前的动作
13. actions 有action 请求本身组成(例如”:omusrmsg:”) 基于action定义配置语句($Action... directives)
14.如果legacy 格式是用于如下,$Action .. 直接被指定在action前面
15. 一些配置直接自动的指向到它们先前的值在被应用后,
16.总的来说, rsyslog v5 是过时的它的配置语言是一种痛苦
17.传统的配置语句(以$开头)不影响RainerScript objects (e.g. actions).
配置文件:
在启动时, rsyslog 读取它的配置从rsyslog.conf文件,这个文件可能包含引用来包括其他的配置文件
Statement Types 语句类型:
Rsyslog 同时支持3种不同类型的配置语句:
1.sysklogd 这是普通的老的格式, 无处不在仍旧相当有用的对于简单的使用案例。
注意 一些很少的结果是不再被支持了,因为它们和新功能不兼容。
legacy rsyslog : 那些语句以$符号开始, 它们设置一些配置参数和修改 操作的方式。
这是唯一的格式迟滞在rsyslog v6版本之前。
它仍旧完全支持在V6和以上版本。
注意 一些插件和功能可能仍旧可用通过 legacy format
RainerScript:新的样式,这是最好的和最精确的格式用于更加复杂的例子
推荐使用的语句类型:
一般建议使用 RainerScript type statements, 因为那些提供干净的容易阅读的流程控制
处理顺序:
指令是从rsyslog.conf 的顶部到底部, 比如,如果你停止处理消息,显然所有剩下的语句是不会被评估
Inputs 输入:
每个input 需要一个input 模块来加载
一旦被加载,inputs 是定义通过input() 对象插入的
Outputs:
Outputs 也被称为actions. 一个小的actions的集合是预先加载的(和output file writer,是用于几乎每个rsyslog.conf)