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 Log 및 Error 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)의 분석이 표시됩니다. 상태 정보는 HTTP 및 TCP/UDP Upstream 서버 모두에서 사용할 수 있습니다. 캐시 메트릭에는 각 캐시 영역에 대한 적중 및 실패가 포함됩니다.
확장된 메트릭 집합을 수집하는 것 외에도 API를 사용하면 구성을 다시 로드하거나 NGINX Plus를 다시 시작하지 않고도 HTTP 및 TCP/UDP Upstream 서버 그룹을 재구성하고 key-value 변수를 관리할 수 있습니다.
NGINX Plus에는 추가 메트릭을 활용하는 통합 대시보드도 함께 제공됩니다.
4. 다른 NGINX 모니터링 솔루션
다른 많은 NGINX 모니터링 제품도 NGINX 메트릭을 수집하고 표시할 수 있습니다. 아래 링크는 가장 일반적인 통합 시나리오를 설명합니다.
- AppDynamics용 NGINX 모니터링 확장 프로그램
- Datadog‑NGINX 통합
- Dynatrace를 사용한 NGINX 모니터링
- New Relic용 NGINX 플러그인
- Pingdom 서버 모니터용 NGINX 플러그인
- Prometheus HTTP 내보내기 및 통합
NGINX에 대한 정보 또는 직접 사용해 보거나 테스트해 보려면 지금 30일 무료 평가판을 신청하거나 사용 사례에 대해 최신 소식을 빠르게 전달받고 싶으시면 아래 뉴스레터를 구독하세요.