1 votes

Filtre basé sur des expressions rsyslog - 'startswith' ne fonctionne pas

J'essaie de filtrer certaines sshd les journaux comme ceux-ci dans un fichier séparé :

 sshd[14913]: Did not receive identification string from 10.16.0.2

J'ai essayé ce qui suit, et ça a marché :

if $programname == 'sshd' and
   $syslogfacility-text == 'security' and
   $syslogseverity == '6' then -/var/log/sshinfo.log
& stop

Mais cela correspond également à la connexion et à la déconnexion de l'utilisateur. a correspondance des messages filtre :

if $programname == 'sshd' and
   $msg startswith 'Did not'  and    # <---
   $syslogseverity == '6' then -/var/log/sshinfo.log
& stop

Ça ne marche pas ! (bien que contains travaux)

Est startswith brisé, ou cet usage est-il incorrect ?

Version :

# rsyslogd -v
rsyslogd 7.4.4, compiled with:
    FEATURE_REGEXP:             Yes
    FEATURE_LARGEFILE:          No
    GSSAPI Kerberos 5 support:      Yes
    FEATURE_DEBUG (debug build, slow code): No
    32bit Atomic operations supported:  Yes
    64bit Atomic operations supported:  Yes
    Runtime Instrumentation (slow code):    No
    uuid support:               Yes

5voto

user8026 Points 11

Vous devriez utiliser un modèle avec quelque chose comme msg is -->%msg% pour voir comment commence la partie message, mais en général elle commence par un espace, donc essayez simplement

$msg startswith ' Did not'  and

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X