운영 및 유지보수 엔진스 HTTP 요청 로깅 및 분석을 위해 Nginx를 사용하는 방법

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

Aug 02, 2023 am 08:32 AM
nginx http 요청 분석하다 벌채 반출

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Tomcat 서버에 대한 외부 네트워크 액세스를 허용하는 방법 Tomcat 서버에 대한 외부 네트워크 액세스를 허용하는 방법 Apr 21, 2024 am 07:22 AM

Tomcat 서버가 외부 네트워크에 액세스하도록 허용하려면 다음을 수행해야 합니다. 외부 연결을 허용하도록 Tomcat 구성 파일을 수정합니다. Tomcat 서버 포트에 대한 액세스를 허용하는 방화벽 규칙을 추가합니다. Tomcat 서버 공용 IP에 대한 도메인 이름을 가리키는 DNS 레코드를 만듭니다. 선택 사항: 역방향 프록시를 사용하여 보안 및 성능을 향상합니다. 선택 사항: 보안 강화를 위해 HTTPS를 설정합니다.

Golang을 사용하여 HTTP 요청에 대한 쿼리 매개변수 설정 Golang을 사용하여 HTTP 요청에 대한 쿼리 매개변수 설정 Jun 02, 2024 pm 03:27 PM

Go에서 HTTP 요청에 대한 쿼리 매개변수를 설정하려면 쿼리 매개변수 이름과 값을 매개변수로 받아들이는 http.Request.URL.Query().Set() 메서드를 사용할 수 있습니다. 구체적인 단계는 다음과 같습니다. 새 HTTP 요청을 만듭니다. 쿼리 매개변수를 설정하려면 Query().Set() 메서드를 사용하세요. 요청을 인코딩합니다. 요청을 실행합니다. 쿼리 매개변수의 값을 가져옵니다(선택사항). 쿼리 매개변수를 제거합니다(선택사항).

HTML 파일에서 URL을 생성하는 방법 HTML 파일에서 URL을 생성하는 방법 Apr 21, 2024 pm 12:57 PM

HTML 파일을 URL로 변환하려면 다음 단계를 포함하는 웹 서버가 필요합니다. 웹 서버를 얻습니다. 웹 서버를 설정합니다. HTML 파일을 업로드하세요. 도메인 이름을 만듭니다. 요청을 라우팅합니다.

C++ 클래스 디자인에서 오류 처리 및 로깅을 수행하는 방법은 무엇입니까? C++ 클래스 디자인에서 오류 처리 및 로깅을 수행하는 방법은 무엇입니까? Jun 02, 2024 am 09:45 AM

C++ 클래스 디자인의 오류 처리 및 로깅에는 다음이 포함됩니다. 예외 처리: 예외 포착 및 처리, 사용자 정의 예외 클래스를 사용하여 특정 오류 정보 제공. 오류 코드: 정수 또는 열거형을 사용하여 오류 조건을 나타내고 반환 값으로 반환합니다. 주장: 사전 및 사후 조건을 확인하고 충족되지 않으면 예외를 발생시킵니다. C++ 라이브러리 로깅: std::cerr 및 std::clog를 사용한 기본 로깅. 외부 로깅 라이브러리: 레벨 필터링 및 로그 파일 회전과 같은 고급 기능을 위해 타사 라이브러리를 통합합니다. 사용자 정의 로그 클래스: 고유한 로그 클래스를 생성하고 기본 메커니즘을 추상화하며 다양한 수준의 정보를 기록하기 위한 공통 인터페이스를 제공합니다.

PHP 웹사이트를 위한 사용자 정의 로깅 솔루션을 만드는 방법 PHP 웹사이트를 위한 사용자 정의 로깅 솔루션을 만드는 방법 May 03, 2024 am 08:48 AM

PSR-3 호환 라이브러리(예: Monolog, Log4php, PSR-3Logger) 사용 또는 PHP 기본 로깅 함수(예: error_log(), syslog( ), debug_print_backtrace()). 애플리케이션의 동작을 모니터링하고 문제를 해결하는 것은 사용자 정의 로깅 솔루션을 사용하여 쉽게 수행할 수 있습니다. 예를 들면 다음과 같습니다. Monolog를 사용하여 메시지를 디스크 파일에 기록하는 로거를 생성합니다.

nodejs를 외부에서 접근할 수 있나요? nodejs를 외부에서 접근할 수 있나요? Apr 21, 2024 am 04:43 AM

예, Node.js는 외부에서 액세스할 수 있습니다. 다음 방법을 사용할 수 있습니다. Cloud Functions를 사용하여 함수를 배포하고 공개적으로 액세스할 수 있도록 합니다. Express 프레임워크를 사용하여 경로를 만들고 끝점을 정의합니다. Nginx를 사용하여 Node.js 애플리케이션에 대한 프록시 요청을 역방향으로 수행합니다. Docker 컨테이너를 사용하여 Node.js 애플리케이션을 실행하고 포트 매핑을 통해 노출합니다.

PHP를 사용하여 웹사이트를 배포하고 유지하는 방법 PHP를 사용하여 웹사이트를 배포하고 유지하는 방법 May 03, 2024 am 08:54 AM

PHP 웹 사이트를 성공적으로 배포하고 유지하려면 다음 단계를 수행해야 합니다. 웹 서버(예: Apache 또는 Nginx) 선택 PHP 설치 데이터베이스 생성 및 PHP 연결 서버에 코드 업로드 도메인 이름 및 DNS 모니터링 웹 사이트 유지 관리 설정 단계에는 PHP 및 웹 서버 업데이트, 웹 사이트 백업, 오류 로그 모니터링 및 콘텐츠 업데이트가 포함됩니다.

Fail2Ban을 사용하여 무차별 대입 공격으로부터 서버를 보호하는 방법 Fail2Ban을 사용하여 무차별 대입 공격으로부터 서버를 보호하는 방법 Apr 27, 2024 am 08:34 AM

Linux 관리자의 중요한 작업은 불법적인 공격이나 액세스로부터 서버를 보호하는 것입니다. 기본적으로 Linux 시스템에는 iptables, UFW(Uncomplicated Firewall), CSF(ConfigServerSecurityFirewall) 등과 같이 잘 구성된 방화벽이 함께 제공되어 다양한 공격을 방지할 수 있습니다. 인터넷에 연결된 모든 컴퓨터는 악의적인 공격의 잠재적인 대상입니다. 서버에 대한 불법 액세스를 완화하는 데 사용할 수 있는 Fail2Ban이라는 도구가 있습니다. Fail2Ban이란 무엇입니까? Fail2Ban[1]은 무차별 공격으로부터 서버를 보호하는 침입 방지 소프트웨어입니다. Python 프로그래밍 언어로 작성되었습니다.

See all articles