아파치 로깅 기본

아파치 로그 이벤트를 기록 처리하여 아파치 웹서버의 요청을 포함하여 다른 컴퓨터에서 응답해 보내는 아파치 및 작업부하여 아파치 서버. 이 섹션의 가이드를 위한 기본 사항에 대해 설명합니다 아파치 로깅을 포함한 형태의 로그를 생성하여 아파치가 저장되고 해석하는 방법이다. 또한 사용자 정의 로그 형식 설정 및 모듈 구성과 같은 고급 주제를 다루어보다 풍부한 데이터를 얻을 수 있습니다.,

아파치 로그의 유형

아파치는 액세스 로그와 오류 로그의 두 가지 종류의 로그를 생성합니다.

액세스 로그

액세스 로그에는 웹 서버에 들어오는 요청에 대한 정보가 들어 있습니다. 이 정보에는 사람들이보고있는 페이지,요청의 성공 상태 및 서버가 응답하는 데 걸린 시간이 포함될 수 있습니다. 여기에는 전형적인 접근 로그 항목

오류 로그

오류 로그에 오류에 대한 정보를 웹 서버로 발생하는 경우 요청을 처리하기와 같은.dll 파일이 있습니다., 또한 서버 자체에 대한 진단 정보도 포함됩니다. 여기에 예를 들어 오류 로그:

 File does not exist: /var/www/favicon.ico

로그 위

기본적으로 아파치를 저장한 액세스 및 오류 로그에는 별도의 파일을 서버에 있습니다. 정확한 위치는 운영 체제에 따라 다릅니다., 당신을 찾을 수 있습니다 위치한 OS 를 클릭하여 다음과 같은 링크:

Debian/Ubuntu/리눅스 민트
Redhat/페도라/CentOS 구성
오픈

구성하는 아파치 로그를

아파치가 높은 구성 가능 로깅 프레임워크를 조정할 수 있는 로깅 행동을 전 세계에 각 가상호스트가 서비스하게 된다. 로깅 동작을 변경하는 데 사용할 수있는 몇 가지 지시문이 있습니다. 보다 일반적인 지시문 중 일부는 로그 수준 및 로그 형식 지시문이며,더 자세히 설명 할 것입니다.,

로그 레벨 지시어는

LogLevel지시어를 결정한 최소한의 심각도는 수준의 기록되는 이벤트의 특정 대상입니다. 심각도 수준을 나타내는 방법에 중요한 이벤트와 수 있는 범위에서”Emerg”to”Trace8″,으로”Emerg”나타내는 이벤트로 이끌어 낼 수 있는 불안정성,그리고”Trace8″나타내는 추적 수준의 메시지입니다. 예를 들어,LogLevel crit것이 허용하는 로그와 함께”Crit”,”경고”,그리고”Emerg”심각성을 통해,하지만 무시하는 다른 모든 수준이다.,

로그 형식

LogFormat지시어 컨트롤 레이아웃과 형식의 로그인 이벤트입니다. Apache 는 기본적으로 CLF(Common Log Format)를 사용하지만 각 로그에 포함 된 필드를 변경하기 위해 자체 형식 문자열을 지정할 수 있습니다.

CustomLog지시문을 사용하여 로그 파일의 위치를 변경할 수도 있습니다. Linux 에서 Apache 는 일반적으로 OS 및 가상 호스트 재정의에 따라/VAR/log/apache2 또는/var/log/httpd 디렉토리에 로그를 씁니다., 파일 이름 뒤에 LogFormat 문자열을 정의 할 수도 있습니다.이 파일에는 형식 문자열 만 적용됩니다.

예를 들어 다음 구성은 표준”공통”형식을 사용하여logs/access_log에 로그를 씁니다. 로그/하위디렉토리를 기준으로 지정한 디렉토리에서 ServerRoot 지시어:

LogFormat "%h %l %u %t \"%r\" %>s %b" commonCustomLog "logs/access_log" common

CustomLog”logs/access_log”일반적인

할 수 있습의 전체 목록을 찾을 필에서 아파치 로그인 문서입니다., 우리는 적어도 사용하는 것이 좋습니다 다음과 같은 다섯 가지 분야,그들이 중요하 모니터링을 위한 서버는 건강 위해 문제 해결 문제:

  1. %>s–HTTP 요청의 상태코드. 이는 최종 요청 상태를 확인 후에는 어떤 내부 리다이렉션;원래 상태,사용하%s.
  2. %U–합한 요청 URL 경로를 제외한 모든 추가적인 URL 을 매개 변수가 쿼리 등의 문자열입니다.
  3. %a-요청을 하는 클라이언트의 IP 주소입니다., 이는 특정 소스의 트래픽을 식별하는 데 유용합니다.
  4. %T–요청을 처리하는 데 걸리는 시간(초)입니다. 이는 사이트의 속도를 측정하는 데 유용합니다. %D 를 사용하여 마이크로 초 단위로 동일한 측정을하십시오.
  5. %{UNIQUE_ID}e–일반적으로 요청 ID 라고도하며 각 요청마다 고유 한 식별자를 기록합니다. 이는 아파치에서 웹 응용 프로그램 서버로 요청을 추적하는 데 유용합니다.,

지정 별

LogFormat문자열에 할당할 수 있는 별명을 사용할 수 있습으로CustomLog지시어를 쓰고 로그를 사용하여 지정된 형식입니다. 이렇게하면 매번 형식을 다시 정의 할 필요없이 여러 로그 파일에 대해 동일한 로그 형식을 사용할 수 있습니다. 이는 여러 가상 호스트에 대해 서로 다른 로그 파일을 사용할 때 특히 유용합니다.

예를 들어 예제 형식을 만들고 이름을”vhost_combined.,”그런 다음 vhost_combined 형식을 사용하여 파일에 로그를 쓰는CustomLog지시문을 만듭니다.

LogFormat "%v:%p %h %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"" vhost_combinedCustomLog /var/log/apache2/vhost.log vhost_combined

포맷 JSON 으로

을 저장하는 로그에는 일반 텍스트로 그들을 쉽게 검사해야 하는 경우 읽기 당신의 로그 파일이 있습니다. 그러나,이것은 사용하기 어려운 도구와 같은 로그 관리 솔루션을 읽기 당신의 로그,이후 이러한 도구는 방법을 알고 있어야 합 귀하의 로그는 포맷되어 있습니다. 가장 로그 관리 솔루션을 지원하는 기본 아파치 로그 형식이지만,그렇지 않을 경우,고려해야 할 사용하는 구조화된 형식으로 다음과 같 JSON.,

JSON(JavaScript 객체 표기법의 줄임말)은 구조화 된 데이터를 저장하기위한 유연한 형식입니다. JSON 은 중첩 가능한 이름/값 쌍 모음을 저장하여 거의 모든 데이터 유형 및 구조를 저장할 수 있습니다. Json 은 또한 키의 이름이 포함 된 데이터를 설명하기 때문에 효과적으로 자체 문서화합니다. JSON 은 문자열,숫자,부울,배열 및 null 값을 포함한 많은 기본 데이터 유형을 지원합니다.,

의 예는 다음과 같LogFormat저장하는 로그 형식 JSON:

LogFormat "{ \"time\":\"%t\", \"remoteIP\":\"%a\", \"host\":\"%V\", \"request\":\"%U\", \"query\":\"%q\", \"method\":\"%m\", \"status\":\"%>s\", \"userAgent\":\"%{User-agent}i\", \"referer\":\"%{Referer}i\" }"

기본 가상호스트 재정의

가상호스트(가상호스트)를 실행하는 데 사용된 하나 이상의 웹사이트에 하나의 아파치 서버. 각 vhost 에 대해 별도의 로깅 구성을 정의할 수 있으며,이는 전역 로깅 구성보다 우선 순위가 부여됩니다. 이렇게하면 각 웹 사이트를 예를 들어 별도의 디렉토리에 기록 할 수 있습니다. 이러한 매개 변수를 그대로두면 전역 로깅 구성이 기본 설정됩니다.예를 들어 다음 구성은 예제에서 vhost 용입니다.,닷컴. 로그 작성된 별도의access.logerror.log파일의/var/www/example.com/logs디렉토리:

다음 섹션에서 보이는 기본 설정 파일 위치 지시어에서 사용되는 다른 리눅스 배포판.

Debian/Ubuntu/리눅스 민트

On Debian-based 분포,기본 가상호스트 구성에 대한 암호화되지 않은 사이트(포트 80)에서 찾을 수 있습니다/etc/apache2/sites-available/000-default.conf. SSL/TLS(포트 443)로 암호화된 사이트의 기본 vhost 구성은/etc/apache2/sites-available/default-ssl.conf에 있습니다.,

기본 지시문 표

*조건화 된 환경 변수. 여러 아파치 서버 인스턴스에 대한 지원을 제공합니다.

**환경 변수. 초기 로그 경로를 동적으로 설정하는 데 사용됩니다.

Red Hat/Fedora/CentOS

Red Hat 기반 배포판에서 주 구성 파일은/etc/httpd/conf/httpd.conf에 있습니다. 추가 vhost config 파일을/etc/httpd/conf.d디렉토리에 배치 할 수 있습니다.이 디렉토리는 시작시 서버에서 자동으로 읽습니다.

기본 지시문 테이블

*로드 된 log_config_module 에서 조절됩니다.,로드 된 logio_module 에 조건화 된

**.

오픈

오픈에서 기본 가상호스트 구성에 대한 암호화되지 않은 사이트(포트 80)에 위치한/etc/apache2/default-vhost.conf하는 동안,기본 구성에 대한 사이트를 암호화 SSL/TLS 에 위치한/etc/apache2/default-vhost-ssl.conf.

기본 지시문 테이블

*로드 된 log_config_module 에서 조절됩니다.로드 된 logio_module 에 조건화 된

**.로드 된 mod_ssl 에서 조절됩니다.,

로그와 관련된 모듈

아파치 웹서버의 번호를 제공하는 모듈을 변경하거나 방법은 아파치가 작동하거나 확장하는 그 기능을 제공합니다. 다음 모듈은 유용한 방법으로 로깅 동작을 추가하거나 변경합니다.

mod_log_config

이베 로깅하는 모듈은 아파치 사용하여,그리고는 하나 우리는 이 단원에서 다루는 내용의 가이드입니다.

mod_log_debug

이 모듈은 추가 옵션을 제공하는 로그를 위한 디버깅 메시지입니다., 예를 들어,당신은 로그인할 수 있는 이벤트의 특정 URL 경로,로그를 요청을 처리된 후에는 로그인에서 메시지를 특정 클라이언트는 경우 그들은 결과에서 시간 제한,그리고 더 많은. 이 모듈은 실험적이며 아파치 배포판에 포함되지 않을 수도 있습니다.

예를 들어,다음과 같은 구성 로그의 IP 주소를 사용할 때마다 클라이언트가 요청을 특정한 경로.

mod_log_forensic

이 모듈을 로깅할 수 있습 전후에 요청이 처리됩니다. 각 항목에는 포렌식 로그와 일반 로그 사이의 이벤트를 추적하는 데 사용할 수 있는 고유한 ID 가 할당됩니다., 그러나 포렌식 로거는 사용자 지정 형식을 지원하지 않습니다. 이 모듈은 또한 mod_unique_id 모듈을 대체합니다.

모듈을 사용할 수 있는forensic키워드를 지정하는 로그 파일은 법정 로그인합니다. 사용할 수도 있습니다%{forensic-id}패턴에 다른LogFormat문자열을 추가로 분석 데이터를 정상적인 로그입니다. 여기서는/var/www/example.com/logs/forensic.log를 사용합니다.

법의학 로그의 각 줄은”+”또는”-“문자로 시작합니다., “+”는이 특정 요청에 대한 항목 로그 행을 나타내고”-“는 동일한 요청에 대한 후속 항목을 나타냅니다.

예를 들어,다음과 같은 항목을 로그에 의해 생성된 전화http://localhost기본값을 사용하는 로그 형식:

끝 로그 항목에서 같은 요청은 다음과 같이 표시됩니다.

-3264:55958cb4:0

면 끝 항목이 나타나지 않는 로그에,요청이 완료되지 않았습니다.

mod_logio

이 모듈을 추가하는 바이트 수를 보내고당 받은 요청을 합니다., 여기에는 수신,전송 및 전송 된 바이트(수신 및 전송의 조합)가 포함됩니다. 이 모듈은 또한 SSL 및 TLS 암호화로 인한 크기 변화를 정확하게 설명합니다. 이 모듈에는 mod_log_config 가 필요하며 일반적으로 기본적으로 Apache 에 포함됩니다.

이 모듈은LogIOTrackTTFB On|Off지시문을 추가하여 시간을 첫 번째 바이트(TTFB)로 추적하는 기능을 토글합니다. TTFB 는 요청이 수신되는 시점부터 응답이 클라이언트에 처음 전송되는 시점까지의 시간입니다., 그런 다음%^FB를 사용하여 TTFB 측정을LogFormat문자열에 포함시킬 수 있습니다.

mod_filter

이 모듈을 제공합 상황에 맞는 필터를 출력 체인을 등록하여 어떤 숫자의 필터가 공급자입니다. mod_filter 는 로깅과 관련이 없지만 필터 공급자를 기반으로 특정 요청을 추출 할 수 있습니다. 컨텍스트 컨테이너에는 main apache config,vhost config,디렉토리 태그 내 및.htaccess 파일.,

이 모듈을 사용에 대한 필터링 요청에 포함된 항목과 같은 특정 사출 기준,그리고는 IP 주소서.

이 모듈은 많은 패키지 배포판에서 기본적으로 제공되지만 활성화해야 할 수도 있습니다. 로깅 목적으로 FilterTrace 지시문은 오류 로그에 정보를 게시합니다.,li>FilterDeclare선언 스마트 필터

  • FilterProtocol–인 mod_filter 처리에 응답 헤더를 올바르게
  • FilterProvider–레지스터 필터가 공급자
  • FilterTrace–디버깅할 수 있/진단에 정보를 오류 로그인하기 전에 공급자 처리
  • 다음에 적용하는 예입니다 필터링에 가상호스트 컨텍스트의 컨테이너 조건에 따라 필터 포함한 모듈:

    mod_unique_id:

    이 모듈을 구성하는 환경변수와 독특한 식별자를 위한 각각의 요청을 합니다., 종종 패키지 배포판에 포함되지만 활성화해야 할 수도 있습니다. 이 고유 식별자는 액세스 로그에 기록됩니다.

    이 모듈은 법의학 목적으로 mod_log_forensic 에 의해 대체되었지만 다른 모듈에서는 여전히 지원됩니다.

    법의학 식별자와 달리 고유 식별자는 환경 변수 UNIQUE_ID 를 통해 응용 프로그램 처리기에 전달됩니다. 이를 통해 응용 프로그램 개발자는 웹 서버를 통해 응용 프로그램 서버로 요청을 추적 할 수 있습니다. 요청 디버깅에 유용할 수 있습니다.,

    Apache 는 요청을 처리하기 위해 자식 프로세스를 스핀 오프하고 자식 인스턴스는 한 번에 여러 요청을 처리합니다. 결과적으로,그것은 때때로 사용하는 것이 바람직하다 독특한 식별자를 식별하는 요청을 여러 서버 인스턴스 및 자식 프로세스입니다.

    일단 활성화되면 모듈은 기본적으로 응용 프로그램 처리기에 식별자를 제공합니다.,

    예를 들어,

    UNIQUE_ID: Vaf3en8AAQEAAAtoQlAAAAAA

    이 식별자는 건설에서 32 비트 IP 주소,32 비트 프로세스 ID,32-비트 타임스탬프에 결합하고 16-비트 카운터를 위한 엄격한 해상도 보다는 단 두 번째,32-bit 스레드 인덱스입니다. 타임스탬프 구성 요소는 일광 절약 시간 조정 문제를 방지하기 위해 UTC 입니다. 응용 프로그램 처리기는 식별자를 불투명 토큰으로 만 취급하고 구성 요소로 해부하지 않아야합니다.

    를 참조하십시오. 그것을 분석하십시오. 그것을 검사하십시오. 그것을 해결

    중요한 것을 참조하십시오.

    무료 평가판 시작

    답글 남기기

    이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다

    도구 모음으로 건너뛰기