Actions:
对象动作描述对消息要怎么被处理,它们通过output 模板实现:
这个action对象有不同的参数:
Legacy Format
请注意 legacy action 格式是很难来得到正确的,它是推荐使用RainerScript-Style
action 格式尽可能的!
使用legacy format 关键问题是一个单独的action 是定义通过多行配置行,
可能遍布所有的rsyslog.cof.
甚至 多行action定义会混杂(通常不是故意的).
如果 legacy actions format 需要被使用 它是强烈推荐放置所有的配置语句固定在一个单独的action
请注意legacy action 参数不影响 RainerScript action 对象,因此你可以定义如下:
$actionResumeRetryCount 10
action(type="omfwd" target="server1.example.net")
@@server2.example.net
server1的 “action.resumeRetryCount” 参数没有设置,代替的是 server2’s is设置的
新的RainerScript action 格式的目的是避免混乱,参数的实际使用。
因此,它会产生相反效果对于legacy action parameters 在一个 RainerScript definition.
Legacy Description:
模板可以与很多actions结合,如果被使用,指定模板是用于生成消息内容(代替默认模板).
为了指定一个模板,写一个;分号在action值跟在模板名字后面。
$template testlog01,"/data01/%fromhost-ip%/%fromhost%.%$year%-%$month%-%$day%"
注意: 模板必须是定义在被使用前。
可以定义一些模板,使用它们在selector 行,定义更多的模板和使用它们在下面的selector lines.
你可以有多个actions 对于一个单个selector(或者更加精确的一个这样的selector line 过滤器)
每个action 必须在它自己的行和必须以&开始
*.=crit :omusrmsg:rger
& root
& /var/log/critmsgs
Regular File 常规文件:
通常消息是记录到真正的文件。文件通常是通过全路径名指定,以斜杠/开始。
从4.6.2和5.4.1(v5版本之前不支持这个) 相关的文件也可以被指定。
为了这样做, 那些必须以一个点号开始。
请注意,使用 ”./file-in-current-dir.log”来指定一个文件在当前的目录。
请注意 rsyslogd 通常改变它的工作目录到root,因此相关的文件名必须小心测试.
你可以前缀每个条目使用-减号来忽略同步文件。
如果系统是连接到一个可靠的UPS ,你接收大量的额日志(例如防火墙日志)
文件名可以是静态的(总是相同的)或者动态的(不同的基于接收到的消息).
后面是有用的 如果你自动分散消息到不同文件基于一些消息标准。
例如,动态文件selectors 允许你split 消息到不同的文件基于主机名。
使用动态文件名字, 所有内容都是自动的不需要任何过滤器。
它工作通过模板系统,首先,你定义一个模板用于文件名。
一个例子可以从上面例子看到。 我们会使用“DynFile” 模板定义。
动态文件是通过指定一个?代替slash,后面跟着模板名字。
*.* ?DynFile
这就是你要做的,Rsyslog 会自动生成文件名用于存储正确的消息到正确的文件。
注意 负号也适用于动态文件 因此为了避免同步,可以使用
*.* -?DynFile
当然你可以使用模板指定输出格式:
*.* ?DynFile;MyTemplate
提醒一句:rsyslog 创建需要的文件, 所以 如果一个新的host 使用你的syslog server,rsyslog 会自动创建文件。
创建目录页是支持的,比如 你可以使用hostname作为目录,程序名作文件名:
$template DynFile,"/var/log/%HOSTNAME%/%programname%.log"
Named Pipes
rsyslog(8) 版本一句支持记录输出到一个命名管道(fifos)
Remote Machine 远程主机:
Rsyslogd 提供远程日志记录功能,即能够发送消息到一个远程主机。
接收消息从远程主机
使用这个功能你是可以控制所有的syslog 消息在一个机器上,
如果所有其他机器会远程激励, 这是管理需要
转发消息到另外的主机,预先考虑主机名和@符号。
一个@意味着消息通过UDP协议转发(syslog标准).
如果你准备2个@@符号,消息会通过TCP转发。
注意 普通的TCP 基于syslog 没有正式规范,但是主要的syslogd 支持它(例如syslog-ng或者WinSyslog)
z<number>
使用zlib压缩消息,<number> 是压缩级别。