rsyslog.conf配置文档

出处:http://blog.163.com/bull_linux/blog/static/2138811422013101494729839/

 

rsyslog.conf是rsyslogd的主配置文件,rsyslogd是*nix系统上用来记录系统日志的。

rsyslog.conf向后兼容sysklogd的syslog.conf文件,所以可以直接使用syslog.conf文件

这个版本的rsyslog可以使用扩展的html格式文档,安装rsyslog-doc包查看高级特性,本man帮助只提供基础方面操作

=========================================
模块
rsyslog为模块化设计,模块数量在不断增长中,rsyslog-doc中查看完整描述
om: output module
im: input module

omsnmp        SNMP trap输出模块

omgssapi    启用GSS的syslog输出模块

ommysql        mysql输出模块

omrelp        可靠的RELP协议输出模块(防止信息丢失),用法:
            *.* :omrelp:server:port
            *.* :omrelp:192.168.0.1:2514    例子

ompgsql        PostgreSQL的输出模块

omlibdbi    通用数据库输出模块(Firebird/Interbase, MS SQL, Sybase, SQLite, Ingres, Oracle, mSQL)

imfile        文本文件输入模块

imudp        UDP syslog的输入插件,替代-r选项,用法:
            $ModLoad imudp
            $UDPServerRun 514

imtcp        TCP syslog的明文输入插件,替代-t选项,用法:
            $ModLoad imtcp
            $InputTCPServerRun 514

imrelp        RELP协议的输入插件,RELP可用于替代UDP或明文TCP syslog以提供可靠的syslog消息传递。
        注意:明文TCP syslog不能提供真正的可靠性传递,因为连接问题和宕机会导致消息丢失。
        RELP防止在这些情况下丢失信息。用法:
            $ModLoad imrelp
            $InputRELPServerRun 2514

imgssapi    启用GSS的syslog的明文TCP输入模块

immark        mark信息支持

imklog        内核日志,要包含内核日志信息,需要:
            $ModLoad imklog
        注意:klogd守护进程已不再是必要的,因此也不再在rsyslog包中提供。

imuxsock    Unix套接字,包括系统日志socket,用法:
            $ModLoad imuxsock
        为了从本地系统进程接收日志信息,这个配置指令必须在你明确知道自己在做什么时才能使用。

=========================================

基本结构
忽略#开头的和空行,rsyslog.conf中包括以下几部分

全局指令
    全局指令设置整个rsyslog守护进程的一些全局属性,例如主信息队列大小($MainMessageQueueSize),
    加载外部模块($ModLoad)等等,所有的全局指令需要自己一行以$符开头。
    完整的全局指令列表可在html文档中或在线网站上找到。

模板 TEMPLATES
    模板允许你指定日志信息的格式,同样用于生成动态文件名。它们被用于规则中之前要先定义,
    查看下面TEMPLATES部分获得更多信息。

输出频道 OUTPUT CHANNELS
    输出频道为用户可能想要的输出类型提供了保护,在规则中使用前要先定义,查看下面OUTPUT CHANNELS部分

规则(选择器+动作)
    每个规则行由两部分组成,selector部分和action部分,这两部分由一个或多个空格或tab分隔,
    selector部分指定设施样式(日志设备local0之类),日志优先级(等级)由action部分指定
-----------------------------------------

选择器 SELECTORS
    selector也由两部分组成,设施和优先级,由点号.分隔,两部分都是大小写不敏感并且也可以指定为十进制数字,
    不过最好不要那么做。设施和优先级都在syslog(3)中有描述,下面提到的名字类似于/usr/include/syslog.h中的
    LOG_-values

    日志设施有:auth(sevurity), authpriv, cron, daemon, kern, lpr, mal, mark, news, syslog, user, uucp以及
    local0到local7。security不应使用,mark只应用于内部使用不应用在应用上。不管怎样,你可能想要指定并重定向
    这里的信息,日志设备指定了产生信息的子系统,例如,如果邮件程序使用系统日志记录日志,那么就使用mail设备
    (LOG_MAIL)

    日志级别有(升序):debug, info, notice, warning(warn), err(error), crit, alert, emerg(panic)
    不建议使用括号中的关键字,日志级别定义了信息的严重程度。

    原生的BSD syslogd的行为习惯是:所有指定级别及以上级别的信息都根据给出的action来处理。
    rsyslogd有相同的行为,但也有一些扩展。

    rsyslogd可以理解以下扩展:星号*,代表所有日志设施或级别,取决于用在什么位置。
    关键字none表示没有级别用于给定的设施

    可以在一条语句中指定多个facility使用相同的priority,使用逗号","分隔,没有数量限制。
    只有facility部分可以这样定义,priority部分这样写会被忽略

    多个selector可以使用分号";"分隔,注意每个selector都可以覆盖之前的定义
    可以使用这个行为来去掉一些日志级别

    rsyslogd的语法扩展:可在任何级别之前加
        等号"=",指定只使用这一个级别而不包含更高级别
        叹号"!",忽略所有级别,所有要么指这一个级别(!=),要么指这个及其以上级别(!)
    如果要一起使用这两个扩展,!要在=之前。

-----------------------------------------

动作 ACTION
action是规则描述的一部分,规则用于处理消息。总的来说,消息内容被写到一种日志文件上,但也可以
执行其他动作,比如写到数据库表中或转发到其他主机。

正规文件
    典型的消息都被记录在真正的文件中,文件要以全路径指定,以"/"开头
    *.*    /var/log/traditionalfile.log;RSYSLOG_TraditionalFormat    例子,以传统格式记录日志
    注意:如果要在日志文件中使用高精度时间戳,去掉";RSYSLOG_TraditionalFormat",就使用
    默认的模板,RFC3339时间戳
    *.*    /var/log/file.log    使用RFC3339时间戳

命名管道 named pipe
    此版本rsyslogd支持将日志输出到命名管道(fifos),可以在fifo设备或命名管道前加"|"符来,
    将此文件作为日志消息的目的地。这是由于debug的。
    注意:fifo设备必须在rsyslogd启动前,以mkfifo命令创建。

终端和控制台
    如果指定的文件是tty,特别的tty处理也就完成了,同理/dev/console

远程机器
    有3种方式转发消息:
        传统方式的UDP传输,有损耗
        基于TCP明文的传输,只在特定情况下丢失信息,并被广泛使用
        RELP传输,不会丢失信息,但只在rsyslogd 3.15.0及以上版本中可用
    写法:
        UDP    在主机名前加"@"
        TCP    在主机名前加"@@"
        RELP    在主机名前加":omrelp:"
    例: *.* @192.168.0.1    将所有日志信息通过UDP协议发送到192.168.0.1

你可能感兴趣的:(syslog)