NGINX 모니터링 어떻게 하고 계신가요?

NGINX용 모니터링 도구를 설정하는 것은 애플리케이션 운영을 유지하는 데 중요한 부분입니다. 적절한 NGINX 모니터링을 통해 기본 애플리케이션 성능에 대한 많은 유용한 정보를 확인할 수 있습니다. 작업에 적합한 모니터링 시스템이 꽤 많이 있습니다. 그러나 첫 번째 단계는 NGINX에서 메트릭 수집을 활성화하는 것입니다.

목차

1. stub_status 모듈 사용
2. Log File 및 Syslog
3. NGINX Plus의 추가 API 모듈을 통한 고급 NGINX 모니터링
4. 다른 모니터링 솔루션

1. stub_status 모듈 사용

NGINX 활동에 대한 몇 가지 중요한 메트릭을 노출하는 ngx_http_stub_status_module(또는 간단히 stub_status)이라는 NGINX Open Source 용 모듈이 있습니다.

NGINX 빌드에 stub_status 모듈이 있는지 확인하려면 nginx -V를 실행합니다.

$ nginx -V 2>&1 | grep --color -- --with-http_stub_status_module

모든 NGINX 빌드에는 지원되는 모든 플랫폼의 stub_status 모듈이 포함되어 있습니다.

NGINX 빌드에 stub_status 모듈이 포함되지 않은 경우 소스에서 다시 빌드하고 구성 스크립트에 –with-http_stub_status_module 매개변수를 포함해야 합니다.

NGINX 모니터링 을 위한 다음 단계로 location 블록에 stub_status 지시문을 포함하여 NGINX 구성에서 모듈을 활성화합니다. 언제든지 기존 구성에 server 블록을 추가할 수 있습니다. 또는 다음과 같이 stub_status 지시문에 대한 단일 특수 위치가 있는 별도의 서버 블록을 추가합니다.

server {
    listen 127.0.0.1:80;
    server_name 127.0.0.1;

    location /nginx_status {
        stub_status;
    }
}

stub_status 지시문에 대한 적절한 server 블록은 때때로 기본 구성 파일(nginx.conf) 외부에서 찾을 수 있습니다. 해당 파일에 적합한 블록이 없으면 일반적으로 nginx.conf에 포함된 추가 구성 파일을 검색합니다.

예를 들어 location 또는 server 블록에 허용(allow) 및 거부(deny) 지시문을 포함하여 인증된 사용자만 메트릭에 액세스하도록 허용하는 것이 좋습니다.

stub_status 모듈이 구성된 후에는 NGINX 구성을 다시 로드하는 것을 잊지 마십시오(예: service nginx reload 명령 사용). NGINX 제어 신호에 대한 자세한 내용은 여기에서 확인할 수 있습니다.

stub_status 메트릭을 표시하려면 curl 쿼리를 작성하십시오. 다음은 위에 표시된 구성에 적합합니다.

$ curl http://127.0.0.1/nginx_status
Active connections: 2
server accepts handled requests
 841845 841845 1631067
Reading: 0 Writing: 1 Waiting: 1

이것이 작동하지 않으면 /nginx_status에 대한 요청이 라우팅되는 위치를 확인하십시오. 많은 경우 다른 server 블록이 stub_status 메트릭에 액세스할 수 없는 이유가 될 수 있습니다. 이러한 인스턴스 전체 NGINX 지표에 대한 자세한 내용은 참조 설명서를 참조하십시오.

NGINX에서 stub_status 모듈을 활성화하고 작동하면 원하는 NGINX 모니터링 시스템의 설치 및 구성을 진행할 수 있습니다.

2. Log File 및 Syslog

NGINX Access LogError Log에는 메트릭 수집에 적합한 유용한 정보가 많이 포함되어 있습니다. NGINX 변수를 사용하여 Access Log 형식을 사용자 지정할 수 있습니다. 특정 NGINX 모니터링 도구는 메트릭 수집에 NGINX 로그 파일을 활용할 수 있습니다.

다양한 성능 및 보안 요구 사항을 충족하려면 NGINX syslog 기능을 사용하는 것이 좋습니다. 로그 파일이 디스크에 기록되는 동안 syslog는 NGINX가 네트워크 프로토콜을 통해 로그 데이터를 전송할 수 있도록 합니다. 예를 들어 Linux 전용 시스템을 설정하여 다양한 NGINX 인스턴스에서 모든 로그 데이터를 수집할 수 있습니다.

3. NGINX Plus의 추가 API 모듈 통한 고급 NGINX 모니터링

NGINX Plus특수 API 모듈을 통해 성능 메트릭을 얻는 더 나은 방법을 제공합니다.

API 모듈은 로드 밸런싱 및 가상 서버 통계에 중점을 둔 자세한 메트릭 세트를 제공합니다. 예를 들어 server 블록에 대한 모든 HTTP 상태 코드(1xx, 2xx, 3xx, 4xx, 5xx)의 분석이 표시됩니다. 상태 정보는 HTTPTCP/UDP Upstream 서버 모두에서 사용할 수 있습니다. 캐시 메트릭에는 각 캐시 영역에 대한 적중 및 실패가 포함됩니다.

확장된 메트릭 집합을 수집하는 것 외에도 API를 사용하면 구성을 다시 로드하거나 NGINX Plus를 다시 시작하지 않고도 HTTPTCP/UDP Upstream 서버 그룹을 재구성하고 key-value 변수를 관리할 수 있습니다.

NGINX Plus에는 추가 메트릭을 활용하는 통합 대시보드도 함께 제공됩니다.

4. 다른 NGINX 모니터링 솔루션

다른 많은 NGINX 모니터링 제품도 NGINX 메트릭을 수집하고 표시할 수 있습니다. 아래 링크는 가장 일반적인 통합 시나리오를 설명합니다.

NGINX에 대한 정보 또는 직접 사용해 보거나 테스트해 보려면 지금 30일 무료 평가판을 신청하거나 사용 사례에 대해 최신 소식을 빠르게 전달받고 싶으시면 아래 뉴스레터를 구독하세요.

NGINX STORE 뉴스레터 및 최신 소식 구독하기

* indicates required