配置日志接收模板和转发
参考:https://www.cnblogs.com/xwupiaomiao/p/17565418.html
自定义模板配置文件
在主配置文件中添加(rsyslog.conf)
include(file=“/etc/rsyslog.d/*.conf” mode=“optional”)
方案一
在/etc/rsyslog.d/下创建一个配置文件 ct3a1.conf
#日志模板
#type类型有:list,subtree,string,plugin四种、list最常用,string也可以
#string="%jsonmesg% -->接收的日志转为json格式(系统自带)
template(name="tpl_remote" type="string"
string="%jsonmesg%\n"
)
#日志规则设置、规则名(模板名):remote
ruleset(name="remote"){
#action动作:数据处理 -->type定义了处理数据所使用的模块 omfile模块、file=日志写入的文件路径
action(type="omfile" file="/var/log/remote.log" template="tpl_remote") #接收的日志统一存储在/var/log/remote.log \手动创建文件
#type="omfwd":类型转发、将接收的日志(tpl_remote模板)转发到target=主机、port=端口、protocol=协议
action(type="omfwd" target="127.0.0.1" port="10052" protocol="tcp" template="tpl_remote") #转发到三区A网接收程序
stop #相当于&~:表示到这里就停不往下执行了,在老版本语法里写为“&~”
}
#开启端口监听
# udp 514
module(load="imudp") # needs to be done just once
input(type="imudp" port="514" ruleset="remote" )
# tcp 514
module(load="imtcp" MaxSessions="1000" )
input(type="imtcp" port="514" ruleset="remote" )
# relp 2514 #需要安装组件
module(load="imrelp")
input(type="imrelp" port="2514" ruleset="remote")
方案二:
接收指定ip过来的日志
这个日志模板再本机监听514和2514端口的报文、将接收的信息以json格式保存在/var/log/remote/%FROMHOST-IP%/%YEAR%-%MONTH%-%DAY%/%HOUR%-%MINUTE%.log
#日志类型模板
#数据格式化:template(自定义路径/文件名也是这个)
#type类型有:list,subtree,string,plugin四种、list最常用,string也可以
#string="%jsonmesg% -->接收的日志转为json格式(系统自带)
template(name="tpl_remote" type="string"
string="%jsonmesg%\n"
)
#定义日志路径模板:日志文件保存的路径名、注意 $ 不能少
$template DIRPATH, "/var/log/remote/%$FROMHOST-IP%/%$YEAR%-%$MONTH%-%$DAY%/%$HOUR%-%$MINUTE%.log"
#template前不能有注释
$template RSYSLOG, "/var/log/rsyslog/%$FROMHOST-IP%/%$YEAR%-%$MONTH%-%$DAY%/%$HOUR%-%$MINUTE%.log"
# 定义规则集
ruleset(name="remote") {
# 只接收来自特定IP地址的日志
if ($fromhost-ip == '192.168.1.10') then {
# 接下来的动作只针对匹配的日志
action(
type="omfile"
FileOwner="eapp" #改变日志文件权限属主
FileGroup="eapp" #改变日志文件权限属组
FileCreateMode="0644" # 创建文件时的权限
DirCreateMode="0755" # 创建目录时的权限
dynaFile="DIRPATH" #日志文件路径、使用名为DIRPATH 的模板template
template="tpl_remote"
)
# 如果需要,可以在这里添加其他动作,比如转发日志等
# ...
}
# 如果不匹配,停止处理并丢弃或保存到其它目录
else {
action(
type="omfile"
FileOwner="eapp" #改变日志文件权限属主
FileGroup="eapp" #改变日志文件权限属组
FileCreateMode="0644" # 创建文件时的权限
DirCreateMode="0755" # 创建目录时的权限
dynaFile="RSYSLOG" #日志文件路径、使用名为DIRPATH 的模板template
template="tpl_remote"
)
}
stop
}
#开启端口监听
# udp 514
module(load="imudp") # needs to be done just once
input(type="imudp" port="514" ruleset="remote" )
# tcp 514
module(load="imtcp" MaxSessions="1000" )
input(type="imtcp" port="514" ruleset="remote" )
# relp 2514 #需要安装组件
module(load="imrelp")
input(type="imrelp" port="2514" ruleset="remote")
方案三:
接收全部
template(name="tpl_remote" type="string"
string="%jsonmesg%\n"
)
#日志文件保存的路径名、注意 $ 不能少
$template DIRPATH, "/var/log/remote/%$FROMHOST-IP%/%$YEAR%-%$MONTH%-%$DAY%/%$HOUR%-%$MINUTE%.log"
# 日志规则设置、规则名(模板名):remote
ruleset(name="remote"){
# action动作:数据处理 -->type定义了处理数据所使用的模块 omfile模块
# 使用dynaFile特性来按分钟和日期切割日志文件
action(
type="omfile"
FileOwner="eapp" #改变日志文件权限属主
FileGroup="eapp" #改变日志文件权限属组
FileCreateMode="0644" # 创建文件时的权限
DirCreateMode="0755" # 创建目录时的权限
dynaFile="DIRPATH" #日志文件路径、使用名为DIRPATH 的模板template
template="tpl_remote"
)
# type="omfwd":类型转发、将接收的日志(tpl_remote模板)转发到target=主机、port=端口、protocol=协议
#action(type="omfwd" target="127.0.0.1" port="10052" protocol="tcp" template="tpl_remote") # 转发到三区A网接收程序
stop # 相当于&~:代表抛弃数据不进行下一步处理,在老版本语法里写为“&~”
}
标签:remote,template,自定义,json,Rsyslog,日志,type,模板,string
From: https://www.cnblogs.com/littlecc/p/18298599