回答:
はい、fail2banは引き続きローテーションされたログファイルを監視します。からserver/filter.py
439 ##
440 # FileContainer class.
441 #
442 # This class manages a file handler and takes care of log rotation detection.
443 # In order to detect log rotation, the hash (MD5) of the first line of the file
444 # is computed and compared to the previous hash of this line.
2つの方法のいずれか(または組み合わせ)で複数のログを指定できます。ファイルグロブ(ワイルドカード)を使用して、監視するログファイル(つまりlogpath = /var/log/*somefile.log
)または監視するログファイルのリストを空白(スペース、タブ、改行)で区切って一致させることができます。
logpath = /var/log/auth.log /var/log/auth.log.1
または
logpath = /var/log/auth.log
/var/log/auth.log.1
上記の答えはあなたの質問に関して正しくありません。FileContainerは、最後のオフセットから続行する標準の手順ではなく、ファイルログローテーション検出を使用して、ログの読み取りをファイルの先頭にリセットします。
class FileContainer:
...
def open(self):
self.__handler = open(self.__filename, 'rb')
...
# Compare hash and inode
if self.__hash != myHash or self.__ino != stats.st_ino:
logSys.info("Log rotation detected for %s" % self.__filename)
self.__hash = myHash
self.__ino = stats.st_ino
self.__pos = 0
# Sets the file pointer to the last position.
self.__handler.seek(self.__pos)
ローテーションされたファイルも探して解析するコードはありません。
logpath = /var/log/*somefile.log
)や、空白など(スペース、タブ、改行)で区切って監視するログファイルのリストを照合できますlogpath = /var/log/auth.log /var/log/auth.log.1
。
fail2ban
はそれを読んでいないと思います(私はかなり確信しています)現在のファイルを読みます。ログのローテーションができます検出fail2ban
読まないように、ファイルが変更されたことを知って.1
、.2.gz
また、そのフォルダにあってもよい、などのファイルを。