Apache에서 logrotate와 회전 로그의 장단점은 무엇입니까?


11

Apache는 logrotate와 함께 발생하는 로그를 회전 할 때 아파치를 다시 시작하지 않을 수있는 회전 로그라는 도구를 제공합니다. 이것이 logrotate보다 회전 로그를 사용하기에 충분한 기준이라면 말할 수있는 충분한 경험이 없습니다.

내 질문은 누구 든지이 두 도구 중 하나 또는 둘을 사용하여 실제 경험이 있고 입력 한 내용은 무엇입니까?

무엇을 추천하고 왜 하시겠습니까?

답변:


7

나는 다른 모든 로그를 회전시킬 것이기 때문에 대부분의 사람들에게 logrotate를 권장합니다 (KISS : Keep it Simple stupid). Logrotate는 모든 Apache를 다시 시작하지는 않으며, 모든 로그 파일을 다시 열고 자식을 다시 시작하라는 신호를 보냅니다. 이 신호는 SIGHUP (자녀가 즉시 다시 시작되도록 함) (다운로드 중단) 또는 SIGUSR1 (정말 다시 시작) 일 수 있습니다. SIGUSR1을 사용하면 모든 자식이 자연스럽게 죽었다고 생각할 때까지 로그 처리를 지연시켜야합니다. 어느 쪽이든, 로그를 분석하고 하루 또는 주 중 트래픽이 가장 적은 시간 동안 로그를 작성하려고합니다.

파이프 로그는 더 강력한 솔루션 인 것 같습니다. 가장 큰 장점은 중앙 로깅 시스템을 사용하고 웹 서버 자체를로드 할 수 있다는 것입니다. 매뉴얼 자체는 다음과 같이 말합니다.

조건부 로깅과 마찬가지로 파이프 로그는 매우 강력한 도구이지만 오프라인 후 처리와 같은 간단한 솔루션을 사용할 수있는 경우에는 사용하지 않아야합니다.

당신이하지 않으면 그래서 분명히, 파이프 로깅을 사용하지 않는 필요 를. 과거에는 파이프 로깅을 사용하여 로그를 필터링하는 해키 방식으로 사용했지만 아무런 문제가 없었습니다.


Apache의 logrotate 파일이있는 postrotate 스크립트는 SIGHUP을 전송하여 Apache가 모든 자식을 종료하고 다시 시작하게합니다. 당시의 모든 활성 연결이 종료됩니다.
Warner

로드가 많은 서버에서는 정상 재시작이 제대로 작동하지 않는다는 의견을 읽었습니다. 그러나 나는 실제로 많은 대안이 있다고 생각하지 않습니다.
Mohan Gulati

SIGHUP을 사용한 logrotate는 표준입니다. 나는 그것에 대해 걱정하지 않을 것입니다.
Warner

2

나는 전에 두 가지를 사용했다. 회전 로그를 사용하는 것이 액세스 로그를 관리하고 아파치 다운 타임을 원하지 않는 경우 매우 유용한 도구라는 것을 알았습니다. 대용량 사이트에서 내가 권장하는 것은 로그를 관리하려면 로그를 정리하거나 백업 서버로 이동하려면 별도의 스크립트를 작성해야한다는 것입니다. 요구 사항에 따라 다릅니다. logrotate를 사용하면 로그 파일을 처리하는 방법에 대한 더 많은 옵션이 있으며, 유일한 문제는 이전 답변에서 설명한대로 logrotate가 실행될 때 아파치를 다시 시작해야합니다.

기본적으로 모든 것이 선택에 달려 있습니다. 아파치가 중단없이 실행되어야하는 경우 외부 크론 스크립트를 사용하여 로그를 관리하면 로그 회전으로 충분합니다. 트래픽이 많을 때 로그를 회전하지 않도록 logrotate cron을 설정하십시오.

마지막으로 아파치 로그를 syslog에 저장하려면 항상 Redhat Based Linux에있는 logger 명령을 사용할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.