HTTP 요청 로깅 및 분석을 위해 Nginx를 사용하는 방법

WBOY
풀어 주다: 2023-08-02 08:32:13
원래의
3018명이 탐색했습니다.

Nginx를 사용하여 HTTP 요청을 기록하고 분석하는 방법

소개:
일상적인 웹 개발에서는 웹 사이트 액세스를 모니터링하고 문제를 해결하며 성능을 최적화하기 위해 HTTP 요청을 기록하고 분석해야 하는 경우가 많습니다. 강력한 HTTP 서버이자 역방향 프록시 서버인 Nginx는 풍부한 로깅 기능을 제공하며 다른 서버보다 성능이 뛰어납니다. 이 기사에서는 HTTP 요청의 로깅 및 분석을 위해 Nginx를 구성하고 사용하는 방법을 소개합니다.

1. Nginx 로깅 형식 구성

더 자세한 정보를 기록하기 위해 Nginx 로깅 형식을 사용자 정의할 수 있습니다. Nginx 구성 파일에서 "http" 컨텍스트를 찾아 다음 콘텐츠를 추가합니다.

http {
    log_format my_log_format '$remote_addr - $remote_user [$time_local] "$request" '
                             '$status $body_bytes_sent "$http_referer" "$http_user_agent" '
                             '"$gzip_ratio"';

    access_log /var/log/nginx/access.log my_log_format;
}
로그인 후 복사

여기에서는 원격 주소, 원격 사용자, 액세스 시간, 요청 콘텐츠, 상태 코드, 개수를 포함하여 "my_log_format"이라는 로깅 형식을 정의합니다. 전송된 바이트, 소스 URL, 사용자-에이전트, Gzip 비율 및 기타 정보. 그런 다음 이 형식은 Nginx의 액세스 로그 파일에 적용됩니다.

2. 로그 분할을 위한 Nginx 구성

웹사이트 방문 횟수가 증가함에 따라 로그 파일이 매우 커지는 경향이 있습니다. 로그 관리 및 분석을 용이하게 하기 위해 로그를 분할하도록 Nginx를 구성할 수 있습니다. Nginx 구성 파일에 다음 콘텐츠를 추가합니다.

http {
    access_log /var/log/nginx/access.log my_log_format;
    error_log /var/log/nginx/error.log;

    logrotate daily;
    rotate 7;
    size 10M;
    missingok;
    notifempty;
    compress;
    delaycompress;
}
로그인 후 복사

여기에서는 매일 로그를 분할하고 지난 7일의 로그 파일을 유지하도록 Nginx를 구성합니다. 각 파일의 최대 크기는 10MB입니다. 상한에 도달하면 압축되고 새 로그 파일이 생성됩니다. 또한 파일이 존재하지 않는 경우에도 로깅이 계속되며, 빈 파일은 로그 분할을 트리거하지 않습니다.

3. 로그 분석에 ELK 스택 사용

ELK 스택은 Elasticsearch, Logstash 및 Kibana의 세 가지 도구로 구성된 오픈 소스 로그 분석 솔루션입니다. ELK 스택을 사용하여 Nginx 로그를 분석하고 시각화할 수 있습니다. 구성 단계는 다음과 같습니다.

1. Elasticsearch 설치

먼저 Elasticsearch를 로그 저장 및 인덱싱을 위한 데이터베이스로 설치하고 구성해야 합니다. 구체적인 설치 단계는 공식 Elasticsearch 문서를 참조하세요: https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

2 Logstash 설치

두 번째로 Logstash를 설치하고 구성합니다. 데이터 수집 및 처리 도구로 사용됩니다. 구체적인 설치 단계는 공식 Logstash 문서(https://www.elastic.co/guide/en/logstash/current/index.html

3)를 참조하세요. Logstash 구성 파일을 작성하세요

새 구성 파일을 생성하세요. (예: nginx.conf) 그리고 다음을 추가합니다:

input {
    file {
        path => "/var/log/nginx/access.log"
        start_position => "beginning"
    }
}

filter {
    grok {
        match => { "message" => "%{IPORHOST:clientip} %{HTTPDUSER:ident} %{USER:auth} [%{HTTPDATE:timestamp}] "%{WORD:verb} %{URIPATHPARAM:request} HTTP/%{NUMBER:httpversion}" %{NUMBER:response} %{NUMBER:bytes} "%{URI:referrer}" "%{DATA:useragent}" "%{DATA:gzipratio}"" }
    }
}

output {
    elasticsearch {
        hosts => "localhost"
        index => "nginx-logs-%{+YYYY.MM.dd}"
    }
}
로그인 후 복사

여기서 로그 파일 경로, 로그 형식, Elasticsearch 주소를 지정하고 로그를 날짜 접미사와 함께 인덱스에 저장합니다.

4. Logstash 시작

Logstash를 시작하고 구성 파일을 로드합니다:

$ bin/logstash -f nginx.conf
로그인 후 복사

5. Kibana 설치

마지막으로 Kibana를 로그 시각화용 도구로 설치하고 구성합니다. 구체적인 설치 단계는 Kibana의 공식 문서를 참조하세요: https://www.elastic.co/guide/en/kibana/current/index.html

구성이 완료된 후 Kibana의 웹 인터페이스를 열고 다음에서 검색 및 필터링하세요. Nginx 액세스 로그를 실시간으로 보고 분석합니다.

결론:
HTTP 요청을 기록하고 분석하도록 Nginx를 구성함으로써 웹 사이트 액세스를 모니터링하고 문제를 해결하며 성능을 최적화할 수 있습니다. 동시에 ELK 스택과 결합하면 중앙 집중식 저장, 로그 분석 및 시각화가 가능해 운영 및 유지 관리 효율성과 웹 사이트 성능 분석의 정확성이 향상됩니다. 이 글이 모든 사람에게 도움이 되기를 바랍니다.

위 내용은 HTTP 요청 로깅 및 분석을 위해 Nginx를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!