여러 개의 가상 호스트를 호스팅하는 VPS가 있습니다. 각 호스트는 자신의 access.log 및 error.log를 가지고 있습니다. 현재 로그 회전 설정은 없지만 변경 될 수 있습니다.내 로그 파서를 코딩하는 방법에 대한 아이디어가 필요합니다.
기본적으로 대역폭을 모니터링하고 통계를 수집하기 위해 이러한 로그를 구문 분석하려고합니다.
제 생각에는 파서를 작성하고 정보를 작은 sqlite 데이터베이스에 저장하는 것이 었습니다. 스크립트는 5 분마다 실행되며 Python의 seek
및 tell
메서드를 사용하여 마지막으로 구문 분석 된 위치에서 로그 파일을 엽니 다. 이렇게하면 5 분마다 10GB 로그 파일을 구문 분석하지 못하게됩니다. 필요한 모든 정보가 끝나면 새로운 정보가 나타납니다 (로그 회전은 없습니까?)./
을 어떻게 다른 :
은 몇 가지 생각 후, 나는 내가 뭘 모두가 한 위치에서 다른 위치로 데이터를 이동 ... 로그 파일의 정보를 복용하고 데이터베이스에 넣어 것을 깨달았 내가 할 수 있을까? test.com에 대한 로그 파일을 열고 나에게 지정된 오일에 사용되는 대역폭을 보여줄 것
python logparse.py --show=bandwidth --between-dates=25,05|30,05 --vhost=test.com
이 : 내가 좋아하는 뭔가를 할 수 있어야합니다.
이제 내 질문은 5 일 분량의 데이터 만 원할 때 어떻게하면 10GB 상당의 데이터를 구문 분석하지 못하게 할 수 있습니까?
로그 데이터를 5 분마다 데이터베이스에 저장한다는 아이디어를 사용했다면 날짜의 유닉스 타임 스탬프를 저장하고 그 날짜 사이의 데이터를 꺼낼 수있었습니다. 쉬운. 하지만 로그 파일을 직접 구문 분석하는 것을 선호합니다.