×

linux – syslog ip使用`rsyslog`到特定文件

hqy hqy 发表于2020-06-05 19:48:02 浏览1761 评论0

抢沙发发表评论

http://www.voidcn.com/article/p-aojtyuii-btx.html


linux – syslog ip使用`rsyslog`到特定文件

我有许多Cisco / JunOS路由器和交换机将日志发送到我的Debian服务器,后者使用rsyslogd.


如何配置rsyslogd根据源IP地址将这些路由器/交换机日志发送到特定文件?我不想用这些条目污染一般系统日志.

例如:

>芝加哥的所有路由器(源IP块:172.17.25.0/24)只能登录到/var/log/net/chicago.log.
>达拉斯的所有路由器(源ip块172.17.27.0/24)只能登录到/var/log/net/dallas.log.
>删除所有APF-3-RCV_UNSUPP_MSG消息而不记录它们
>将172.17.4.4的日志发送到名为/var/log/net/firewall.log的文件
>使用UDP端口514将防火墙日志转发到10.14.12.12

最后,这些日志应每天轮换最多30天并进行压缩.

注意:我是answering my own question

rsyslogd配置


在/etc/rsyslogd.conf中


# provides remote UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# If logging to an NFS mount, use these settings...
#    "OMFileFlushOnTXEnd off" avoids fsync on every write...
#     mount -o hard,rsize=32768,wsize=32768,noacl,noatime,nodiratime -t nfs
$OMFileIOBufferSize 768k
$OMFileAsyncWriting on
$OMFileFlushOnTXEnd off
$OMFileFlushInterval 10
$MainMsgQueueSize 100000


# kill all INTF-FLAP messages...
if $msg contains 'INTF-FLAP' then /dev/null
&~
## Cisco ACS Accounting...
if ($fromhost-ip=='172.17.16.20') and ($programname == 'CSCOacs_TACACS_Accounting') then /var/log/tacacs_acct.log
&~
## CiscoACS 5.4 TACACS Authentication
if ($fromhost-ip=='172.17.16.20') and ($programname == 'CSCOacs_Passed_Authentications') then /var/log/tacacs_auth.log
&~

# Logging for Chicago issues...
if $fromhost-ip startswith '172.17.25' then /var/log/net/chicago.log
& ~
# Logging for Dallas issues...
if $fromhost-ip startswith '172.17.27' then /var/log/net/dallas.log
& ~
# Logging for firewall...
if $fromhost-ip=='172.17.4.4' then @10.14.12.12
if $fromhost-ip=='172.17.4.4' then /var/log/net/firewall.log
& ~

每个&〜条目都可以防止落入rsyslog.conf配置的其余部分;因此我不会在/ var / log / messages中看到路由器syslog条目.

触摸所有syslog文件:

>触摸/var/log/net/chicago.log
>触摸/var/log/net/dallas.log
>触摸/var/log/net/firewall.log

使用/etc/init.d/rsyslogd restart重新启动rsyslogd

记录旋转

在/etc/logrotate.d/rsyslog中


/var/log/net/*.log
{
        copytruncate
        rotate 30
        daily
        missingok
        dateext
        notifempty
        delaycompress
        create root 664 root root
        compress
        maxage 31
        sharedscripts
        lastaction                # RHEL: Use "/sbin/service rsyslog restart"
                # Debian / Ubuntu: Use "invoke-rc.d rsyslog reload > /dev/null"
                invoke-rc.d rsyslog reload > /dev/null
        endscript
}
相关文章


打赏

本文链接:https://www.kinber.cn/post/1369.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客