J'ai besoin d'une regex rsyslog pour transférer tous les messages contenant le mot "FIREWALL" vers un serveur distant. Le format du journal d'origine est:regex pour que rsyslog exclue un motif
24 juillet noyau 16:33:09 de FW02: [3.456.825,472985] FIREWALL_DENY_IN: IN = OUT = eth2 MAC = ff: ff: ff: ff: ff: ff: 00: 1b: 78: e4: b3: 24: 08: 00 SRC = 10.101.103.193 DST = 10.101.103.255 LEN = 237 TOS = 0x00 PREC = 0x00 TTL = 64 ID = 0 DF PROTO = UDP SPT = 51512 DTC = 694 LEN = 217
Le format de journal requis est d'être sans les temps du noyau:
24 juillet 16:33:09 du noyau FW02: FIREWALL_DENY_IN: IN = eth2 OUT = MAC = ff: ff: ff: ff: ff: ff: 00: 1b: 78: e4: b3: 24: 08: 00 SRC = 10.101.103.193 DST = 10.101. 103,255 LEN = 237 TOS = 0x00 = 0x00 PREC TTL = 64 ID = 0 DF PROTO = UDP SPT = 51512 = 694 DTCoq LEN = 217
Mon expérience avec regex est basique. J'ai pu faire correspondre la partie que je dois exclure avec: [. * [0-9] * \ [0-9] * \]
mais c'est tout. Le regex doit être validée sur http://www.rsyslog.com/regex/