rsyslog输出自定义格式日志

一.安装

yum install -y rsyslog

二.发送端LOG的机器配置

记录到本地文件

$template rsys_alert,"ii|%PRI%|%timereported:::date-rfc3339%|%msg%\n"
local1.*                                                /var/log/alert.log;rsys_alert

日志转发规则-全部转发

#$WorkDirectory /var/spppl/rsyslog # where to place spool files
#$ActionQueueFileName fwdRule1   #unique name prefix for spool files
#$ActionQueueMaxDiskSpace 1g # 1gb space limit (use as much as possible)
#$ActionQueueSaveOnShutdown on   #save messages to disk on shutdown
#$ActionQueueType LinkedList     #run asynchronously
#$ActionResumeRetryCount -1      #infinite retries if host is down
# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
#*.*    @@remote-host:514        #@@表示通过tcp协议发送 @表示通过udp进行转发
#local1.info @@localhost :514
#local1.*                        #@@192.168.56.7:514

日志转发规则-指定文件转发

#定义从指定的设备文件中读取日志
$AddUnixListenSocket /var/log/alert.log
#使用一个已定义的模板(rsys_alert);
$ActionFileDefaultTemplate rsys_alert
 
#摘取$msg(消息)变量内容,判断如果有keyboard就进行远程传送,没有的就不传送;
if $msg contains "keyboard"  then
action()
#这里不用判断都发送
action(type="omfwd" Target="172.18.20.60"\
       Port="8594"\
       Protocol="udp"\
       queue.type="LinkedList"\
       queue.spoolDirectory="/var/spool/rsyslog"\
       queue.filename="test2"\
       queue.size="100000"\
       queue.maxdiskspace="2g"\
       queue.highwatermark="60000"\
       queue.lowwatermark="2000"\
       queue.discardmark="80000"\
       queue.timeoutenqueue="3000"\
       queue.maxfilesize="200m"\
       queue.dequeuebatchsize="1000"\
       )
& stop

最后重启下发送端主机的firewalld服务

systemctl restart firewalld


三.接收LOG机器配置

配置启用udp.tcp协议,监听514端口

# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

接收日志的存放目录和文件命名规则

#将所有从远程客户端接受到的消息写入指定目录下以它们的IP地址命名和日期命名的的文件中
$template RemoteLogs,"/var/log/devicelog/%$YEAR%-%$MONTH%/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log"
*.* ?RemoteLogs
& ~

修改配置之后重启机器

systemctl stop rsyslog.service && systemctl start rsyslog.service && systemctl status rsyslog.service

参考

http://www.rsyslog.com

https://www.rsyslog.com/doc/v8-stable/configuration/templates.html

https://www.linuxprobe.com/linux-rsyslog-system.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ghost+

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值