linux-Rsyslog自定义配置json模板
配置日志接收模板和转发
参考: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="192.168.1.100" port="10052" protocol="tcp" template="tpl_remote") #转发到主机192.168.1.100 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 # 相当于&~:代表抛弃数据不进行下一步处理,在老版本语法里写为“&~” }
客户端(发送端)
在/etc/rsyslog.d/下创建 clinet.conf配置文件
内容如下:
module(load="imfile" mode="inotify") module(load="omrelp") #下面这两行是配置日志文件转发到哪里的,主机搭建了tcp(514) udp(514) relp(2514) 三种接受日志的渠道。因为交换机目前只支持udp(514),tcp(514)虽然可靠,但是官方说relp(2514)更可靠,不会丢失日志 *.* :omrelp:127.0.0.1:2514 #如不必要可注释 ruleset(name="forward_yxgk"){ action(type="omrelp" target="192.168.1.100" port="2514") stop } # 审计日志 input(type="imfile" File="/var/log/audit/audit.log" Tag="audit" Ruleset="forward_yxgk") # 转发的主机、对应上面的ruleset(name="forward_yxgk") # 示例关键日志文件1,可以多次配置 input(type="imfile" #不可修改 File="/root/analog/logs/*" #填写关键日志文件绝对路径 Tag="testp1" #填写日志的标签,随意,尽量具有一定意义. Severity="error" Ruleset="forward_yxgk") # 转发的主机
本文作者:little小新
本文链接:https://www.cnblogs.com/littlecc/p/18298599
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步