문제

600MB를 초과하는 액세스 로그 파일이 하나 있는 Apache 서버가 있습니다.이로 인해 파일을 검색하거나 구문 분석하기가 정말 어려워집니다.
내 액세스 파일의 일일 복사본을 만들어 관리하기 쉽게 만드는 Apache용 소프트웨어 또는 모듈은 무엇입니까?

도움이 되었습니까?

해결책

봤어? 로그로테이션 - 이는 아마도 이를 달성하는 가장 간단하고, 가장 널리 사용 가능하며, 잘 이해되는 방법일 것입니다.고도로 구성 가능하며 아마도 필요한 작업의 90%를 수행할 것입니다.

다른 팁

나는 ~의 열렬한 팬이다 크로놀로그.로그를 설치하고 연결하기만 하면 됩니다.일일 로그 회전의 경우 다음과 같이 작동합니다.

ErrorLog  "|/usr/bin/cronolog /path/to/logs/%Y-%m-%d/error.log"
CustomLog "|/usr/bin/cronolog /path/to/logs/%Y-%m-%d/access.log" combined

매우 편리하고 일단 설치되면 logrotate보다 더 쉽습니다(내 경험상).

온라인에서 찾기가 매우 어려운 Windows의 실제 명령은 다음과 같습니다.

CustomLog '|" "*Apache-Path/bin/rotatelogs.exe" 
    "**Apache-Path*/logs/backup/internet_access_%d-%m-%y.log" 86400' combined

"internet_access" 비트가 파일에 대해 선택한 이름인 경우 86400은 하루의 초 수입니다.Apache-Path를 Apache를 설치한 관련 디렉터리로 변경해야 합니다.

로그로테이션

logrotate 아마도 최선의 해결책 일 것입니다.파일 사용 /etc/logrotate.conf 모든 로그에 대한 설정을 변경하려면넌 갈아타고 있어 weekly 에게 daily 그래서 로그는 매일 교체됩니다.또한 추가하고 싶을 수도 있습니다. compress 그래서 아카이브가 압축됩니다.이전 로그에 관심이 없다면 회전을 설정할 수 있습니다. rotate 4 더 낮은 것으로.

CustomLog "|bin/rotatelogs /var/logs/logfile 5M" 공통

이 구성은 로그 파일 크기가 5MB에 도달할 때마다 로그 파일을 회전시킵니다.

ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M" 

이는 Apache 로그를 리디렉션하는 가장 좋은 방법입니다.httpd로 모드를 컴파일할 필요가 없습니다.

Windows OS에서는 Rotatelog.exe 또는 cronolog.exe를 사용합니다.이들은 http.conf mod_log_rotate apache에 대한 추가 모듈에 대한 파이프 명령에 사용됩니다. 액세스 로그 회전을위한 추가 모듈은 Unix OS에 대해서만 logrotate입니다.

외부 파이프 등이 필요 없이 이 작업을 수행하는 모듈이 있습니다.

http://www.poptart.org/bin/view/Poptart/ModAutorotate

Apache 모듈 컬렉션에 추가하려고 했지만 한동안 중단된 것 같습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top