ip syslog si estende a file specifici usando `rsyslog`


8

Ho molti router e switch Cisco / JunOS che inviano i log al mio server Debian, che usa rsyslogd.

Come posso configurare rsyslogdper inviare questi registri router / switch a un file specifico, in base al loro indirizzo IP di origine? Non voglio inquinare i registri di sistema generali con queste voci.

Per esempio:

  • tutti i router di Chicago (blocco ip sorgente: 172.17.25.0/24) per accedere solo /var/log/net/chicago.log.
  • tutti i router a Dallas (blocco IP sorgente 172.17.27.0/24) per accedere solo /var/log/net/dallas.log.
  • Elimina tutti i APF-3-RCV_UNSUPP_MSGmessaggi senza registrarli
  • Invia registri per 172.17.4.4 a un file denominato /var/log/net/firewall.log
  • Inoltra i log del firewall al 10.14.12.12 utilizzando la porta UDP 514

Infine, questi registri devono essere ruotati quotidianamente per un massimo di 30 giorni e compressi.


NOTA: sto rispondendo alla mia domanda

Risposte:


13

rsyslogd Configurazione

In /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
& ~

Ciascuna delle &~voci impedisce il fall-through al resto della rsyslog.confconfigurazione; quindi non vedrò le voci del syslog del router /var/log/messages.

Tocca tutti i file syslog:

  • touch /var/log/net/chicago.log
  • touch /var/log/net/dallas.log
  • touch /var/log/net/firewall.log

Riavvia rsyslogdcon/etc/init.d/rsyslogd restart

Rotazione del registro

In /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
}

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.