rsyslog模块 -- mmfields

官方示例:

下面简单的示例的每个msg都按照指定格式被解析。逗号被作为默认分隔符。

module(load="mmfields")
template(name="ftpl"
         type=string
         string="%$!%\\n")
action(type="mmfields")
action(type="omfile"
       file="/path/to/logfile"
       template="ftpl")

下面的示例和前一个有点类似,但是这次指定使用  ':' 冒号 作为分隔符,而且数据被写入以  '$!mmfields'  开始的 json路径

module(load="mmfields")
template(name="ftpl"
         type=string
         string="%$!%\\n")
action(type="mmfields"
       separator=":"
       jsonRoot="!mmfields")
       action(type="omfile"
       file="/path/to/logfile"
       template="ftpl")


结合mmfields和omelasticsearch模块,收集nginx日志,并发送给ES:

module( load='mmfileds')
module( load='omelasticsearch')
module( load='imfile')

template( name='' type='list')
{
    constant(value="{\"@timestamp\":\"")
    property(name='timereported' dataFormat='rfc3339')
    constant(value="\",\"host\":\"") property(name="hostname")
    ...
}

Ruleset( name='' )
{
    action( type='mmfileds' name=''  separator='' jsonRoot='' )
    action( 
        type='omelasticsearch' 
        template=''  
        server=''
        dynSearchIndex='on'
        SearchIndex=''
        dynSearchType='on'
        SearchType=''
        bulkmode='on'
        ...
        )
}

input( type='imfile' Flie='/var/log/nginx/*.log' Tag='' StateFlie='' Facility='' persiststateinterval='' )

if( $programname == '' ) then {
    call Ruleset
    stop
}


目前

你可能感兴趣的:(rsyslog模块 -- mmfields)