커피닉스, 시스템 엔지니어의 쉼터 커피향이 나는 *NIX
커피닉스
시스템/네트웍/보안을 다루는 곳
* HanIRC의 #coffeenix 방
[ 장비 및 회선 후원 ]
HOME > 시스템 관리 / 서버운영 도움말
검색 : 사이트 WHOIS 웹서버 종류

최적화 / 튜닝 / 성능개선 (6, 글 1, 자료 3)
디스크 쿼터(quota) (3, 글 1, 자료 3)
디스크 관리 / 파일시스템 / mount (34, 글 13, 자료 12)
백업(backup) / 시스템 복구 (14, 글 6, 자료 11)
서버운영 (8, 글 2, 자료 9)
프린터 관리 / 프린팅 (7)
패키지 관리 / 패치 / rpm (10, 글 5, 자료 1)
부팅, boot / LILO / GRUB (10, 글 5, 자료 9)
서버 모니터링 (10, 글 5, 자료 2)
로그인 / 로그아웃 (1)
로그(log) / syslog (5, 글 3, 자료 3)
메모리, 스왑(swap), 램디스크(ramdisk) (3, 글 2)
사용자 관리(계정 관리) (1, 자료 1)

  apache에서 404, 403 액세스 로그만 별도로 저장하기 작성일 : 2016/04/19 18:09
 
  • 글쓴이 : 좋은진호 ( http://coffeenix.net/ )
  • 조회수 : 3054
          [ 이전화면 / 수정 ]   비밀번호 :     인쇄용 화면
      제  목 : 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/ )에서 받아 모듈을 설치한다.

     
    # apxs -i -a -c mod_setenvifplus.c
     


    2) FreeBSD

     
    # pkg install ap24-mod_setenvifplus
     



    2. apache 설정

     
    <Directory ...>
    ResponseSetEnvIfPlus Response_Status  404 statuscode=404
    ResponseSetEnvIfPlus Response_Status  403 statuscode=403
    </Directory>

    CustomLog  "|/usr/local/sbin/cronolog --symlink=/LOG/httpd-access.log /LOG/httpd-access.log.%Y%m" combined
    CustomLog  "|/usr/local/sbin/cronolog --symlink=/LOG/httpd-access_40x.log /LOG/httpd-access_40x.log.%Y%m" combined env=statuscode
     


    - /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" 에러가 나온다.
     
    LoadModule ssl_module ...경로...
     
      커피닉스 카페 최근 글
    [01/26] Re: wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/25] wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/11] 특정 안드로이드 WebView 버전에서 SSL 문제 (WebView 버그)
    [08/01] DNS forwarder (전달자) 서버를 통해서 쿼리하면 역방향을 받아오질 못합니다.
    [05/16] (주)후이즈 시스템엔지니어 (경력자) 모집
    [02/15] [AWS] Cloudfront edge 확인하기
    [01/20] Mobile Service/eCommerce 기업에서 Server / Java / PHP 개발자 구인
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Mobile 개발자를 모십니다.
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Web Front 개발자를 모십니다.
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Server 개발 팀장을 모십니다.
    [12/21] 브라우저별 SHA1 퇴출 시점
    [09/15] [구인] 시스템엔지니어 (경력)
    [08/05] Re: 칼리리눅스 텔넷관련
    [08/04] 칼리리눅스 텔넷관련
    [06/29] 또 다른 무료 SSL 인증서, Let's Encrypt
      New!   최근에 등록한 페이지
      KiCad EDA Suite project (Free/Libre/Open-Source EDA Suite) (CAD)
      오픈캐스케이드 캐드 (OpenCASCADE CAD)
      QCad for Windows --- GNU GPL (Free Software)
      The Hello World Collection
      IPMI를 활용한 리눅스 서버관리
      DNS 설정 검사
      nagiosgraph 설치 방법
      Slony-I 설치 방법 (postgresql replication tool)
      Qmail기반의 Anti spam 시스템 구축하기
      clusterssh

    [ 함께하는 사이트 ]




    운영진 : 좋은진호(truefeel), 야수(yasu), 범냉이, sCag
    2003년 8월 4일~