Supress syslog messages, part 1.

Objetivo: configurar un router Cisco para filtrar mensajes del syslog en el envío de los mismos hacia un servidor de logging.

Topología: El router está conectado al Toolbox appliance de GNS3 que incluye un servidor de syslog (rsyslog) y también está conectado a un interface tap0 para la comunicación con la PC.

345

1er Método: Logging discriminator.

El objetivo es filtrar los mensajes del tipo:

*Jun  9 11:49:14.590: %LINK-5-CHANGED: Interface GigabitEthernet0/2, changed state to administratively down

Este log tiene la siguiente estructura:

severity group – 5

facility – LINK

mnemonics – CHANGED

msg-body – Interface GigabitEthernet0/2, changed state to administratively down

Se configura el router para enviar mensajes hacia el logging server 192.168.15.2.

hostname R1
!
interface GigabitEthernet0/0
 ip address 192.168.14.2 255.255.255.0
!
interface GigabitEthernet0/1
 ip address 192.168.15.1 255.255.255.0
!
interface GigabitEthernet0/2
 no ip address
!
logging host 192.168.15.2
!
end

En la consola del Toolbox se pueden ver los logs recibidos por el rsyslog en el fichero /var/log/syslog:

root@Toolbox-1:~# cat /var/log/syslog
…
Jun  9 11:48:18 192.168.15.1 26: *Jun  9 11:48:16.482: %SYS-5-CONFIG_I: Configured from console by console
Jun  9 11:48:19 192.168.15.1 27: *Jun  9 11:48:16.484: %SYS-6-LOGGINGHOST_STARTSTOP: Logging to host 192.168.15.2 port 514 started - CLI initiated
Jun  9 11:49:05 192.168.15.1 28: *Jun  9 11:49:02.633: %LINK-3-UPDOWN: Interface GigabitEthernet0/2, changed state to up
Jun  9 11:49:05 192.168.15.1 29: *Jun  9 11:49:03.633: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/2, changed state to up
Jun  9 11:49:17 192.168.15.1 30: *Jun  9 11:49:14.590: %LINK-5-CHANGED: Interface GigabitEthernet0/2, changed state to administratively down
Jun  9 11:49:17 192.168.15.1 31: *Jun  9 11:49:15.697: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/2, changed state to down
Jun  9 11:49:20 192.168.15.1 32: *Jun  9 11:49:17.561: %LINK-3-UPDOWN: Interface GigabitEthernet0/2, changed state to up
Jun  9 11:49:20 192.168.15.1 33: *Jun  9 11:49:18.561: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/2, changed state to up
Jun  9 11:56:53 192.168.15.1 34: *Jun  9 11:56:50.841: %SYS-5-CONFIG_I: Configured from console by console

La estructura del comando “logging discriminator” y su funcionamiento se pueden encontrar aquí. La configuración de “logging discriminator” para este lab es la siguiente:

R1(config)#logging discriminator ?
  WORD  discriminator name; string; max. 8 characters

R1(config)#logging discriminator INTERFAC ?
  facility    Facility pattern for messsage filtering
  mnemonics   Mnemonics pattern for messsage filtering
  msg-body    Msg-body pattern for messsage filtering
  rate-limit  Rate-limit value for messsage rate control
  severity    Severity group for messsage filtering
  
R1(config)#logging discriminator INTERFAC severity ?
  drops     To drop messages including the specified severities
  includes  To deliver messages including the specified severities

R1(config)#logging discriminator INTERFAC severity drops ?
  WORD  Specify a severity group delimited by ",", example 0,1,3,6,7 

R1(config)#logging discriminator INTERFAC severity drops 5 ?
  facility    Facility pattern for messsage filtering
  mnemonics   Mnemonics pattern for messsage filtering
  msg-body    Msg-body pattern for messsage filtering
  rate-limit  Rate-limit value for messsage rate control
  
R1(config)#logging discriminator INTERFAC severity drops 5 facility ?
  drops     To drop messages including the specified regular expression string
  includes  To deliver messages including the specified regular expression
            string

R1(config)#$criminator INTERFAC severity drops 5 facility drops ?
  WORD  Specify a regular expression string for message filtering

R1(config)#$criminator INTERFAC severity drops 5 facility drops LINK ?
  mnemonics   Mnemonics pattern for messsage filtering
  msg-body    Msg-body pattern for messsage filtering
  rate-limit  Rate-limit value for messsage rate control

R1(config)#$ INTERFAC severity drops 5 facility drops LINK mnemonics ?
  drops     To drop messages including the specified regular expression string
  includes  To deliver messages including the specified regular expression
            string

R1(config)#$-DOWN severity drops 5 facility drops LINK mnemonics drops ?
  WORD  Specify a regular expression string for message filtering

R1(config)#$rity drops 5 facility drops LINK mnemonics drops CHANGED ?       
  msg-body    Msg-body pattern for messsage filtering
  rate-limit  Rate-limit value for messsage rate control

R1(config)#$rity drops 5 facility drops LINK mnemonics drops CHANGED

Importante: Los parámetros configurados para las opciones de severity, facility y mnemonics son los mostrados en la tabla anterior. También se pueden incluir patrones para el cuerpo del mensaje (msg-body, patrón que está limitado en caracteres) y un rate-limit. Estos subfiltros son evaluados por orden (como indica la guía del comando), si alguno coincide con la estructura del mensaje, estos son suprimidos. Este comportamiento limita mucho la granularidad del filtrado. En este caso, por ejemplo:

logging discriminator INTERFAC severity drops 5 facility drops LINK mnemonics drops CHANGED

Este comando no indica que se van a filtrar los mensajes del tipo %LINK-5-CHANGED, sino que se van a filtrar todos los mensajes con severidad 5, o en su defecto con facilidad LINK, etc. Esto hace que la solución solo sea aplicable para un caso puntual y temporal (a muy corto plazo) de generación contínua de logs.

Se aplica el logging discriminator INTERFAC al logging server host:

R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#logging host 192.168.15.2 discriminator INTERFAC

Para comprobar que funcione el “logging discriminator”, utilizamos el comando “show logging”:

R1#sh logging
Syslog logging: enabled (0 messages dropped, 3 messages rate-limited, 0 flushes, 0 overruns, xml disabled, filtering disabled)

Active Message Discriminator:
INTERFAC severity group drops 5
facility drops LINK
mnemonics drops CHANGED
No Inactive Message Discriminator.

Console logging: level debugging, 132 messages logged, xml disabled,
filtering disabled
Monitor logging: level debugging, 0 messages logged, xml disabled,
filtering disabled
Buffer logging: level debugging, 134 messages logged, xml disabled,
filtering disabled
Exception Logging: size (8192 bytes)
Count and timestamp logging messages: disabled
Persistent logging: disabled

No active filter modules.

Trap logging: level debugging, 137 message lines logged
Logging to 192.168.15.2 (udp port 514, audit disabled,
link up),
45 message lines logged,
0 message lines rate-limited,
39 message lines dropped-by-MD,
xml disabled, sequence number disabled
filtering enabled, discriminator (INTERFAC)
Logging Source-Interface: VRF Name:

Log Buffer (8192 bytes):
...

Para probar la supresión de mensajes tumbamos y levantamos la interface Gi0/2. En la consola se generan los mensajes mostrados:

R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#interface gigabitEthernet 0/2                               
R1(config-if)#shut
*Jun  9 13:28:35.686: %LINK-5-CHANGED: Interface GigabitEthernet0/2, changed state to administratively down
*Jun  9 13:28:36.686: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/2, changed state to down
R1(config-if)#no shut
*Jun  9 13:28:43.994: %LINK-3-UPDOWN: Interface GigabitEthernet0/2, changed state to up
*Jun  9 13:28:44.994: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/2, changed state to up
R1(config-if)#^Z
*Jun  9 13:28:46.632: %SYS-5-CONFIG_I: Configured from console by console
R1#

En el logging server no se registran ninguno de los mensajes generados. Para comprobarlo:

Los 5 mensajes generados fueron suprimidos por el “logging discriminator”, lo cual confirma su poca granularidad.

El “logging discriminator” tampoco tiene la opción de utilizar multiples líneas, como si fuera una ACL. Una forma de lograrlo sería con la siguiente estructura:

logging discriminator INTERFAC mnemonics drops CHANGED|UPDOWN   ----> " | " =OR

De esta manera se pueden filtrar los logs que incluyan CHANGED ó UPDOWN.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.