NGINX 모니터링

NGINX | 2018년 1월 08일

NGINX용 모니터링 도구를 설정하는 것은 웹사이트 운영을 유지하는 데 중요한 부분입니다. NGINX를 제대로 모니터링하면 기반 애플리케이션의 성능에 관한 유용한 정보를 많이 파악할 수 있습니다. 이 작업에 적합한 모니터링 시스템은 상당히 많지만, 우선 NGINX에서 메트릭 수집을 활성화해야 합니다.

Using the stub_status 모듈 사용하기

NGINX Open Source에는 ngx_http_stub_status_module(간단히 stub_status)이라는 모듈이 있으며, 이 모듈은 NGINX 활동에 관한 몇 가지 중요한 메트릭을 제공합니다.

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 매개변수를 configure 스크립트에 포함해야 합니다.

다음 단계로, NGINX 구성의 stub_status 지시어를 location 블록에 포함하여 모듈을 활성화합니다. 이 블록은 기존 server 구성에 추가할 수 있습니다. 또는 다음과 같이 별도의 server 블록을 추가하고, 그 안에 stub_status 지시어 전용 location을 하나만 구성할 수도 있습니다:

server {
    listen 127.0.0.1:80;
    server_name 127.0.0.1;

    location /nginx_status {
        stub_status;
    }
}

적절한 server 블록은 stub_status 지시어의 기본 구성 파일(nginx.conf) 외부에 있는 경우도 있습니다. 해당 파일에서 적절한 블록을 찾을 수 없다면 일반적으로 nginx.conf에 포함된 추가 구성 파일을 찾아보세요.

또한 권한이 있는 사용자만 메트릭에 액세스할 수 있도록 설정하는 것이 좋습니다. 예를 들어 allow 및 deny 지시어를 location 또는 server 블록에 포함할 수 있습니다.

After the stub_status 모듈을 구성한 후에는 NGINX 구성을 다시 로드해야 합니다(예: service nginx reload 명령 사용). NGINX 제어 신호에 대한 자세한 내용은 여기에서 확인할 수 있습니다.

To display the stub_status 메트릭을 표시하려면 curl 요청을 실행합니다. 위에 표시된 구성에는 다음 명령이 적합합니다:

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

이 방법이 작동하지 않으면 /nginx_status 요청이 어디로 라우팅되는지 확인하세요. 다른 server 블록으로 인해 stub_status 메트릭에 액세스하지 못하는 경우가 많습니다. 이러한 인스턴스 전체 NGINX 메트릭에 대한 자세한 내용은 참조 문서를 확인하세요.

NGINX에서 stub_status 모듈을 활성화하여 정상적으로 작동하는 것을 확인했다면, 원하는 모니터링 시스템을 설치하고 구성할 수 있습니다.

로그 파일 및 syslog

NGINX 액세스 로그와 오류 로그에는 메트릭 수집에 적합한 유용한 정보가 많이 포함되어 있습니다. NGINX 변수를 사용하여 액세스 로그 형식을 완전히 사용자 지정할 수 있습니다. 일부 모니터링 도구는 NGINX 로그 파일을 활용하여 메트릭을 수집할 수 있습니다.

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

로깅에 대한 자세한 내용은 NGINX Plus 관리 가이드를 참조하세요.

Amplify를 사용한 NGINX 모니터링

NGINX 모니터링을 위한 자체 도구가 있습니다. 이 도구의 이름은 NGINX Amplify이며, 최대 5대의 서버를 무료로 모니터링할 수 있는 SaaS 도구입니다(더 많은 서버를 모니터링하려면 구독을 이용할 수 있습니다).

NGINX Amplify는 쉽게 시작할 수 있습니다. 10분 이내에 모든 주요 NGINX 메트릭에 대한 기본 제공 그래프를 확인할 수 있습니다. NGINX Amplify는 stub_status와 액세스 로그의 메트릭을 자동으로 사용하며, 다양한 OS 정보도 수집할 수 있습니다.

NGINX Amplify를 사용하면 NGINX 성능을 시각화하고 OS, PHP‑FPM, Docker 컨테이너 등을 모니터링할 수 있습니다. Amplify만의 고유한 기능으로는 NGINX 구성을 분석하여 더욱 안전하고 효율적으로 개선할 수 있는 권장 사항을 제공하는 정적 분석기가 있습니다.

NGINX Amplify에 대해 자세히 알아보려면 여기를 클릭하고, 무료로 사용해 보세요.

NGINX 모니터링을 위한 Amplify 화면
NGINX Amplify는 핵심 모니터링 도구입니다

NGINX Plus의 추가 API 모듈

NGINX Plus는 전용 API 모듈을 통해 성능 메트릭을 더 효과적으로 수집할 수 있습니다.

API 모듈은 로드 밸런싱 및 가상 서버 통계를 중심으로 상세한 메트릭 세트를 제공합니다. 예를 들어 모든 HTTP 상태 코드(1xx, 2xx, 3xx, 4xx, 5xx)의 세부 내역이 server 블록별로 제공됩니다. 상태 정보는 HTTP 및 TCP/UDP 업스트림 서버 모두에 대해 제공됩니다. 캐시 메트릭에는 각 캐시 영역의 적중 및 미적중 횟수가 포함됩니다.

확장된 메트릭 세트를 수집하는 것 외에도 API를 사용하면 NGINX Plus의 구성을 다시 로드하거나 재시작하지 않고도 HTTP 및 TCP/UDP 업스트림 서버 그룹을 재구성하고 키-값 변수를 관리할 수 있습니다.

NGINX Plus에는 추가 메트릭을 활용하는 통합 대시보드도 함께 제공됩니다. 추가 메트릭은 NGINX Amplify에서도 사용할 수 있습니다.

기타 모니터링 솔루션

그 밖에도 여러 모니터링 제품을 사용하여 NGINX 메트릭을 수집하고 표시할 수 있습니다. 아래 링크에서는 가장 일반적인 통합 시나리오를 설명합니다:


공유
태그: F5 NGINX, Tech, 2018

작성자 소개

관련 블로그 게시물

시청하기: KubeCon North America 2023에서의 NGINX Gateway Fabric
NGINX | 2023. 11. 30.

시청하기: KubeCon North America 2023에서의 NGINX Gateway Fabric

이 영상에서는 KubeCon의 NGINX 부스를 찾아가, 저희가 공개한 Kubernetes Gateway API 구현을 살펴봅니다.

F5 NGINX로 대규모 WAF 플릿을 확인하고 관리하는 2가지 방법
NGINX | 2023. 03. 23.

F5 NGINX로 대규모 WAF 플릿을 확인하고 관리하는 2가지 방법

앱 보안을 강화하는 두 가지 방법을 소개합니다. NGINX Management Suite를 통해 WAF 운영에 대한 가시성을 높이고, NGINX App Protect WAF를 활용해 코드형 보안을 구현하는 것입니다.

Ingress 컨트롤러 선택 가이드, 4부: NGINX Ingress Controller 옵션
NGINX | 2021. 09. 27.

Ingress 컨트롤러 선택 가이드, 4부: NGINX Ingress Controller 옵션

개발 주체, 개발 철학, 프로덕션 환경 준비도, 보안 및 지원을 기준으로 어떤 NGINX Ingress 컨트롤러가 가장 적합한지 알아보세요.

진화하는 공격 환경에 NGINX App Protect Denial of Service가 적응하는 방법
NGINX | 2021. 07. 06.

진화하는 공격 환경에 NGINX App Protect Denial of Service가 적응하는 방법

NGINX App Protect Denial of Service(DoS)가 계층 7 DoS 공격을 방어하기 위해 완화 방법을 실시간으로 조정하는 방식을 설명합니다. 정상적인 사용자 행동과 서버 상태에 대한 모델을 생성하여 공격을 나타내는 이상 징후를 감지하고 맞춤형 완화 시그니처를 적용할 수 있습니다.

NGINX Instance Manager를 활용한 대규모 구성 업데이트 및 인증서 관리
NGINX | 2021. 06. 30.

NGINX Instance Manager를 활용한 대규모 구성 업데이트 및 인증서 관리

NGINX Instance Manager 버전 1.0에는 두 가지 새로운 기능이 도입되었습니다. NGINX 인스턴스에 태그와 사용자 역할을 지정하면 전체 그룹에 구성을 한 번에 적용할 수 있습니다. 인증서 검사는 만료 예정인 인증서를 감지하여 서비스 중단을 방지할 수 있도록 인증서를 교체할 수 있게 해줍니다.

Netflix가 자사 CDN의 핵심으로 NGINX를 선택한 이유
NGINX | 2015. 03. 25.

Netflix가 자사 CDN의 핵심으로 NGINX를 선택한 이유

Netflix가 글로벌 콘텐츠 전송 네트워크인 Open Connect의 스트리밍 미디어 기술로 NGINX를 선택한 이유를 NGINX 개발자 Gleb Smirnoff에게서 알아보세요.