답변:
예, 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.
두 가지 방법 중 하나 (또는 조합)로 여러 개의 로그를 지정할 수 있습니다. 파일 글롭 (와일드 카드)을 사용하여 모니터 할 로그 파일 (예 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
또한 해당 폴더에있을 수 있습니다, 등의 파일을.