Problema con Rsyslog, LOGS y UTM (Firewall)

Hola a todos.
Invoco vuestra sabiduría a ver si me podéis ayudar con un problema que tengo.
Tengo un UTM (Firewall) el cual he configurado para que envie todos los Logs generados a un host con Ubuntu server y Rsyslog. A su vez el Rsyslog manda los Logs a otra plataforma para poder leerlos

Mi problema reside en el volumen de Logs generados. De los miles de logs que genera únicamente necesito mas o menos 30 (tipos de logs).
He estado buscando por Internet y he visto que se pueden crear filtros en el Rsyslog para descartar los Logs que no necesitas y enviar únicamente los necesarios. Después de infinidad de pruebas no he conseguido crear un filtro adecuado que realice la tarea que necesito.

Esto es un ejemplo del tipo de Log que genera el firewall:

(2017-11-29T08:47:32) http-proxy[2552]: msg_id="234-567" Allow 1-Trusted 6-ADSL-Fibra tcp xxxxxxxxx msg="ProxyAllow: HTTP Request categories" proxy_act="HTTP-Client.Limitado.4" cats="Search Engines and Portals" op="GET" dstname="xxxxxxx" arg="/8SE/411?MI=xxxxxxxxxxxxxxxx&xxxxxxxxxxxxxxxxxxx&AG=2461" src_user="xxxxx" (HTTP.Navegacion Limitado-00)


Como podeis ver el log contiene un msg_id="234-567" el cual me indica que tipo de evento esta ocurriendo en el firewall. Lo que me interesaría seria crear filtros en el rsyslog que estén asociados a unos msg_id="xxx-xxx" concretos y descartar el resto.

Espero sinceramente que me podáis ayudar ya que me esta creando muchos quebraderos de cabeza.

Un saludo a todos
Cuidado con enviar todos los logs a un servidor remoto; si entraran en ese servidor pueden obtener información muy valiosa. Recuerda securizarlo.

Las reglas con filtros se montan de la siguiente manera:
<propiedad>, <operación de comparación>, "valor" <archivo log destino (ej /var/log/syslog)>


<operación de comparación> puede ser [isempty, isequal, startswith, regex o eregex]

Te dejo un enlace para practicar con expresiones regulares:
http://www.rsyslog.com/regex/

Otro enlace con más documentación sobre filtros:
http://www.rsyslog.com/doc/rsyslog%255F ... ilter.html

Una vez introducidas las reglas/filtros, recuerda recargar el demonio ;)
(mensaje borrado)
Muchas gracias por responder Newton.
La verdad es que soy un novato total con el Rsyslog y el correlacionador de Logs.

La regla la estoy creando en el archivo de configuracion /etc/rsyslog.conf.

He probado todo tipo de reglas...
EJ (basado en los datos que he dado antes)
:msg, contains, "234-567" ~ (supuestamente con esto todos los mensajes que contengan 234-567 seran descartados)
:msg, !contains, "234-567" ~(Todos los mensajes que no contencan 234-567 seran descartados)

Tambien he probado con los ejemplos que has aportado sin obtener resultados.

Lo que tengo en mente (que no se si se puede hacer) es descartar todos los logs innnecesarios y quedarme con los utiles, por eso habia pensado crear reglas de descartes como las que te he puesto mas arriba:

Ej: Necesito vuisualizar los Logs que contengan "234-567". El filtro que crearia seria <msg, !contains" 234-567" ~> por lo tanto, todos los Logs que NO contegan 234-567 seran descartados.

Ya no se que mas decirte, llevo un cacao mental....
Un saludo

:
@ignacioibero ojo al encadenar las reglas de descarte.

regla1: descarta todos los mensajes menos 123-456
regla2: descarta todos los mensajes menos 456-123

resultado: todos los mensajes son descartados

la primera solo dejara pasar las 123-456, las que entraran a la segunda seran todas 123-456, por lo tanto seran descartadas.

lo suyo seria:
regla 1: descarta todos los mensajes menos los que contengan 123-456 o 456-123

es viable hacer una unica regla de descarte que englobe mediante regexp o ors logicos todas las excepciones?
Zokormazo escribió:@ignacioibero ojo al encadenar las reglas de descarte.

regla1: descarta todos los mensajes menos 123-456
regla2: descarta todos los mensajes menos 456-123

resultado: todos los mensajes son descartados

la primera solo dejara pasar las 123-456, las que entraran a la segunda seran todas 123-456, por lo tanto seran descartadas.

lo suyo seria:
regla 1: descarta todos los mensajes menos los que contengan 123-456 o 456-123

es viable hacer una unica regla de descarte que englobe mediante regexp o ors logicos todas las excepciones?

Buenos Zokormazo.
Esa es mas o menos la idea que tenia en mente. Al tener tantos logs que descartar creo que la mejor opción seria descartar todos excepto los necesarios.
Creo que la regla se construiría de esta manera: :msg(propiedad), !isequal(expresion, si no es igual a..), "123-456";"456-789"( valores que necesito encontrar) ~(descartar).
En definitiva y según la teoría (o eso creo) quedaría así: :msg, !isequal, "123-456";"456-789" ~

No tengo muy claro si estoy construyendo la regla correctamente o poniendola en el lugar adecuado (rsyslog.conf) loq ue si se es que no me estan funcionando correctamente

Un saludo
EDITO: Conoceis alguna web que explique como realizar los filtros? Con la documentacion oficial no me queda nada claro. Un saludo
ignacioibero escribió:
Zokormazo escribió:@ignacioibero ojo al encadenar las reglas de descarte.

regla1: descarta todos los mensajes menos 123-456
regla2: descarta todos los mensajes menos 456-123

resultado: todos los mensajes son descartados

la primera solo dejara pasar las 123-456, las que entraran a la segunda seran todas 123-456, por lo tanto seran descartadas.

lo suyo seria:
regla 1: descarta todos los mensajes menos los que contengan 123-456 o 456-123

es viable hacer una unica regla de descarte que englobe mediante regexp o ors logicos todas las excepciones?

Buenos Zokormazo.
Esa es mas o menos la idea que tenia en mente. Al tener tantos logs que descartar creo que la mejor opción seria descartar todos excepto los necesarios.
Creo que la regla se construiría de esta manera: :msg(propiedad), !isequal(expresion, si no es igual a..), "123-456";"456-789"( valores que necesito encontrar) ~(descartar).
En definitiva y según la teoría (o eso creo) quedaría así: :msg, !isequal, "123-456";"456-789" ~

No tengo muy claro si estoy construyendo la regla correctamente o poniendola en el lugar adecuado (rsyslog.conf) loq ue si se es que no me estan funcionando correctamente

Un saludo
EDITO: Conoceis alguna web que explique como realizar los filtros? Con la documentacion oficial no me queda nada claro. Un saludo

Si con la documentación oficial no te aclaras [que habitualmente suele ser la que esta mejor documentada] te paso los siguientes enlaces:

http://www.cuentamemilongas.com/3-rsyslog/
https://www.enmimaquinafunciona.com/pre ... -de-syslog
https://www.endpoint.com/blog/2014/09/0 ... g-features

Igual antes de meterte en un escenario real con muchos logs te sale más práctico tener uno de 'testeo' controlado con menos volumen; comprender y ver que realmente cómo funcionan los filtros. Después los podrás 'pasar' a producción.
6 respuestas