| apache에서 404, 403 액세스 로그만 별도로 저장하기 | 작성일 : 2016/04/19 18:09 |
| 조회수 : 13545 |
|
제 목 : apache에서 404, 403 액세스 로그만 별도로 저장하기 작성자 : 좋은진호(truefeel, http://coffeenix.net/ ) 작성일 : 2016.4.12(화) 지인이 아파치(apache)에서 전체 요청 로그와 별도로 404 not found나 403 forbidden 액세스 로그만 남기는 방법이 있는지 물어본다. ELK처럼 웹로그를 DB로 쌓는다면 404, 403 액세스 로그만 별도로 추출하는 게 문제가 되지 않을 것이다. 모두 쌓고, 필요한 것만 바로 뽑아보면 되니깐. 하지만 로그를 파일로 쌓는 경우 404와 403을 별도로 저장하는 방법이 있을까? 난 모르는데. 떠오르는 방법은 2개. 1) apache에서 HTTP status code값을 갖고 있는 변수가 있다면 SetEnvIf를 이용해서 가능할 것. 그러나 내가 알기로는 이런 변수는 없다. 2) CustomLog 설정에서 파이프(|)를 써서 외부 프로그램을 요청한다. 외부 프로그램에서 status code에 따라 로그를 분리해서 저장한다. 1. mod_setenvifplus 모듈 ![]() apache에 HTTP status code값을 갖고 있는 변수는 없다. 그런데 mod_setenvifplus 모듈에 해당 변수가 있다. Response_Status 변수명에 값이 저장된다. 1) Linux mod_setenvifplus 페이지( http://opensource.adnovum.ch/mod_setenvifplus/ )에서 받아 모듈을 설치한다.
2) FreeBSD
2. apache 설정
- /LOG/httpd-access.log.%Y%m 파일에는 모든 요청 로그가 남는다. - /LOG/httpd-access_40x.log.%Y%m 파일에는 403, 404 status code 로그만 남는다. 주의할 것 2가지. 1) ResponseSetEnvIfPlus는 <Directory> 또는 <Location>내에서만 사용할 수 있다. 2) ssl 모듈이 필요하다. ssl 설정은 필요없고, 모듈만 로딩하면 된다. ssl 모듈이 로딩되지 않으면 apache 실행시 Undefined symbol "EVP_CIPHER_CTX_init" 에러가 나온다.
|
|||||||||||||
|
|