완료 할 때가 아니라 들어오는 시점에 Apache 로그 요청을 받도록합니다.


9

서버를 재부팅하면 모든 것이 정상으로 돌아 오는 기괴한 서버 충돌 문제 ( 서버가 핑에 응답하지만 재부팅 할 때까지 SSH 연결을 허용하지 않습니다. 0 % CPU ) 을 진단하려고합니다 . 충돌이 발생했을 때 작성된 모든 요청을 Apache 액세스 로그 (또는 다른 로그)에 포함시키고 싶지만 불행히도 Apache는 요청이 완료 될 때까지 요청을 기록하지 않습니다. 요청이 서버에 충돌하는 경우 해당 요청은 완료되지 않으므로 로그에 표시되지 않습니다.

요청이 도착할 때 기록되는 로그 파일을 작성하도록 Apache를 구성 할 수있는 방법이 있습니까?


DNS 구성도 살펴보십시오. DNS 서버가 손상되거나 중단되면 SSH와 관련하여 모든 종류의 문제가 발생하고 로그인 할 수 없습니다.
Sean Kimball

답변:


15

포렌식 로깅이 필요한 것은 다음 링크를 참조하십시오. http://httpd.apache.org/docs/current/mod/mod_log_forensic.html

단편:

법의학 로그 형식 :

각 요청은 두 번 기록됩니다. 처음으로 추가 처리되기 전 (즉, 헤더를받은 후)입니다. 두 번째 로그 항목은 정상 로깅이 발생하는 동시에 요청 처리 후 작성됩니다.

각 요청을 식별하기 위해 고유 한 요청 ID가 할당됩니다. 이 포렌식 ID는 % {forensic-id} n 형식 문자열을 사용하여 일반 전송 로그에 교차 로깅 될 수 있습니다. mod_unique_id를 사용하는 경우 생성 된 ID가 사용됩니다.

첫 번째 행은 포렌식 ID, 요청 행 및 모든 수신 헤더를 파이프 문자 (|)로 구분하여 기록합니다. 샘플 라인은 다음과 같습니다 (모두 한 라인에 있음).

+ yQtJf8CoAB4AAFNXBIEAAAAA | GET /manual/de/images/down.gif HTTP / 1.1 | Host : localhost % 3a8080 | User-Agent : Mozilla / 5.0 (X11; U; Linux i686; en-US; rv % 3a1.6) Gecko / 20040216 Firefox / 0.8 | 승인 : 이미지 / png 등 ...

시작의 더하기 문자는 이것이이 요청의 첫 번째 로그 행임을 나타냅니다. 두 번째 줄에는 빼기 문자와 ID가 다시 포함됩니다.

-yQtJf8CoAB4AAFNXBIEAAAAA

check_forensic 스크립트는 인수로 로그 파일의 이름을 사용합니다. 해당 +/- ID 쌍을 찾아 요청이 완료되지 않은 경우 불평합니다.


이것은 내가 찾고있는 것이지만,이 로그를 주기적으로 지우거나 (rm /var/log/apache2/forensic.log 매 시간마다) 정리하거나 아파치를 다시 시작할 때까지 법 의학적 로깅이 중단되는 것처럼 보이지 않습니다. 아이디어?
벤 Dilts

확실히 아파치 로그를 작성하면 그 일이 일어날 것입니다. logrotate 또는 이와 동등한 환경을 사용하여 주기적으로 (시간 또는 크기별로) 로그를 롤링하십시오. 삭제되지 않은 경우 파일을 삭제하지 말고 파일을 이동 한 다음 /var/log/apache2/forensic.log를 터치하십시오 (하지만 사용 권한 확인)
sandroid

2

Sandroid의 답변은 귀하의 질문에 적합하지만 네트워크 패킷 캡처 실행도 고려해야합니다. 리소스가있는 경우 스위치 내에 포트를 미러링하고 WireShark을 실행하는 두 번째 시스템을 사용하여 모든 IP 트래픽을 기록하면 실제로 도움이 될 수 있습니다. 비 HTTP 서비스가 응답하지 않는 지점으로 서버를 가져가는 경우 잘못된 데이터가 Apache로 전달되기 전에 IP 스택을 가져 오는 것일 수 있습니다.

캡처를 실행하는 시스템에 다른 네트워크 하드웨어 및 / 또는 드라이버가 있는지 확인하십시오. 하나의 가격으로 두 개를 부 수면 안됩니다. ;-)

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