1

/var/log/securessh認証に失敗したかどうかを取得するために、正規表現で文字列を計算しようとしています。

認証に失敗した場合、ログ ファイルには次のように表示されます。

Oct 31 07:52:41 logserver sshd[17041]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=localhost

私はこのようなことを試みました:

"\\<sshd[^:]*: pam_unix(sshd:auth): authentication failure; ./* \\>"

しかし、うまくいきません。正規表現で私を助けることができれば幸いです。

これは CentOS 7 マシン上にあり、regex は collectd の plugin 用tailです。

4

1 に答える 1

1

collectd では.conf、次のいずれかを使用できます。

<Plugin "tail">
  <File "/var/log/secure">
    ...
    <Match>

オプション1:

    Regex "authentication failure"

オプション 2:

    Regex "sshd:auth[^:]*: authentication failure;"

オプション 3:

    Regex "authentication failure|authentication|failure"

オプション 1 と 2 がマッチングの精度が最も高く、オプション 3 がより一般化されています。オプション 1 は正確なフレーズauthentication failureを検索し、オプション 2 はその前に (sshd:auth): を付けて正確なフレーズを検索し、オプション 3 は正確なフレーズまたは「authentication」または「failure」を検索します。

    </Match>
  </File>
</Plugin>
于 2015-10-31T12:58:43.493 に答える