블로그 | NGINX

튜토리얼: NGINX 사용 보고 구성

NGINX-F5-수평-검정-유형-RGB의 일부
아카쉬 아난타나라야난 썸네일
아카쉬 아난타나라야난
2024년 5월 1일 게시

NGINX Plus R31은 NGINX Plus 사용량을 보고하는 더 간단하고 효율적인 방법을 소개합니다. 사용 현황 보고의 기본 통합으로 별도의 NGINX 에이전트가 필요 없으므로 F5의 Flex Consumption Program(FCP)에 가입한 고객과 FCP가 아닌 기간 구독 고객 모두 원활하고 번거롭지 않게 보고 프로세스를 진행할 수 있습니다. NGINX Plus에 직접 내장된 이 기능을 통해 인스턴스는 성능에 영향을 주지 않고 주기적으로 NGINX Instance Manager에 필요한 사용 정보를 전달할 수 있습니다. 이 기능은 가상 머신과 NGINX Ingress Controller에서 사용할 수 있지만, 이 블로그에서는 NGINX Plus 인스턴스에 초점을 맞춥니다. NGINX Ingress Controller를 NGINX Instance Manager에 보고하는 방법에 대한 가이드는 여기에서 찾을 수 있습니다.

설정을 간소화하고, 사용자 정의 옵션을 제공하며, 대체 방법을 제공함으로써, 고객이 FCP를 구현하고 준수하는 데 필요한 사용량 보고를 효율적이고 적응 가능한 프로세스로 만드는 것을 목표로 합니다. 아직 R31을 사용하지 않거나 업그레이드할 계획이 없는 고객의 경우 NGINX 에이전트를 설치하거나 HTTP 상태 검사를 구성하여 사용량 보고를 활성화하는 대체 방법을 사용할 수 있습니다.

메모: NGINX Plus 사용량을 보고하려면 전용 호스트에 NGINX Instance Manager를 설치해야 합니다. 다양한 설치 방법에 대해 알아보려면 설치 안내서를 참조하세요.

NGINX Plus 인스턴스를 F5에 보고하는 데 선택할 수 있는 방법은 세 가지가 있습니다.

  • NGINX Plus R31 사용자 - 기본 NGINX 사용 보고 구성
  • R31 또는 R31 이전 사용자 - NGINX 에이전트 설치
  • R31 이전 사용자 - NGINX Plus에 대한 HTTP 상태 확인 구성

하나하나씩 살펴보겠습니다.

네이티브 NGINX 사용 보고 구성

NGINX Plus를 설치하면 기본 DNS 항목 "nginx-mgmt.local"을 통해 NGINX Instance Manager에 자동으로 연결됩니다. 기본적으로 NGINX Plus는 30분마다 인스턴스 관리자와 통신하고 사용 정보를 전송합니다. 인스턴스 관리자 DNS 항목을 변경하거나 기본 연결 간격을 요구 사항에 맞게 변경해야 하는 경우 NGINX 구성에 mgmt{} 블록을 추가하세요. 또한 UUID 파일, mTLS, DNS 확인자, 사용 간격 및 사용_보고서 엔드포인트와 같은 다른 기본 지침도 제공됩니다. 사용자 정의 가능한 지침의 전체 목록을 보려면 포괄적인 mgmtmodule 문서를 참조하세요. ngx_mgmt_module을 사용하면 지침을 쉽게 사용자 정의하여 더 큰 유연성과 편의성을 제공할 수 있습니다.

다음 섹션에서는 사용자 환경에 맞게 이 기능을 구성하는 방법을 설명합니다.

NGINX Plus 구성

  1. 시스템 보안을 강화하려면 mTLS를 사용하는 것이 좋습니다. NGINX Plus 인스턴스와 NGINX Instance Manager 모두에 대한 인증서, 키, CA 키 인증서를 생성하여 이를 달성할 수 있습니다. 키 생성 방법에 대한 자세한 내용을 보려면 여기를 클릭하세요 .
  2. 구성 파일인 nginx.conf의 관리 블록 내부에 클라이언트 인증서와 개인 키 파일의 경로를 지정합니다.
    		
       mgmt {
    ssl_프로토콜 TLSv1.2 TLSv1.3;
    ssl_ciphers 기본값;
    ssl_certificate          /home/ubuntu/agent.crt;
    ssl_certificate_key      /home/ubuntu/agent.key
    }
    
  3. 안전하고 신뢰할 수 있는 인증 프로세스를 위해 인증서의 진위성을 검증하기 위한 CA 체인 경로를 지정하세요.
    
       mgmt {
    ssl_trusted_certificate  /home/ubuntu/ca.pem;
    ssl_verify              켜짐;
    ssl_verify_depth          2;
    }
    
  4. 사용자 지정 DNS 확인자의 경우 resolver 지시어를 사용하여 mgmt{} 블록 에서 확인자 주소를 지정합니다.
    
       mgmt {
    리졸버 3.X.X.X;
    }
    
  5. NGINX Instance Manager에 대한 사용자 지정 FQDN을 구성하려면 usage_report 지시문에서 FQDN을 지정합니다. 그런 다음 호스트 이름을 NGINX Instance Manager IP 주소와 연결하는 A 레코드를 로컬 DNS에 추가합니다.
    
       mgmt {
    리졸버 3.X.X.X;
    사용 보고서 엔드포인트=nms.local 간격=15m;
    }
    

NGINX Plus 구성 예:


  mgmt {
사용 보고서 엔드포인트=nms.local 간격=30m;
리졸버 3.X.X.X;
ssl_프로토콜 TLSv1.2 TLSv1.3;
ssl_ciphers 기본값;
ssl_certificate /home/ubuntu/agent.crt;
ssl_certificate_key /home/ubuntu/agent.key;

ssl_trusted_certificate /home/ubuntu/ca.pem;
ssl_verify 켜짐;
ssl_verify_깊이 2;
}

NGINX 구성을 저장하고 NGINX Plus를 다시 로드합니다.

sudo nginx -s 다시 로드

NGINX 인스턴스 관리자 구성

/etc/nginx/conf.d/nms-HTTP.conf의 서버 블록에 SSL 인증서를 추가합니다. 여기를 클릭하여 NGINX Management Suite 서버에서 SSL 인증서를 구성하는 방법을 알아보세요.


서버 {
수신 443 ssl http2;
루트 /var/www/nms;
서버 이름 _;
ssl_프로토콜 TLSv1.1 TLSv1.2;
ssl_ciphers 높음:!aNULL:!MD5;
ssl_세션_캐시 공유:SSL:10m;
ssl_세션_시간 초과 10m;
ssl_인증서 /etc/nms/certs/server.crt;
ssl_인증서_키 /etc/nms/certs/server.key;
ssl_클라이언트_인증서 /etc/nms/certs/ca.pem;
ssl_verify_client 켜짐;
}

NGINX Plus 사용량을 보려면 브라우저에서 NGINX Management Suite에 로그인하고 NGINX Instance Manager 모듈로 이동하세요. 그런 다음 페이지 왼쪽 하단에 있는 NGINX Plus 탭을 선택하세요.

시간 경과에 따른 NGINX Plus 인벤토리 인스턴스

단계별 지침이 담긴 이 비디오 튜토리얼을 시청하세요.

오류 로그 메시지

NGINX Instance Manager에서 사용 데이터를 볼 수 없는 경우 NGINX Plus 인스턴스에서 문제를 해결해야 하는 오류 메시지 목록은 다음과 같습니다. 다음은 오류 메시지의 몇 가지 예입니다.

  • 동적 리졸버 실패: DNS 확인자를 확인하지 못했습니다.
    2024/04/02 04:02:10 [오류] 574079#574079: recv() 실패(111: 연결이 거부되었습니다) 해결하는 중, 해결자: 3.17.128.165:53
    2024/04/02 04:02:35 [경고] 574079#574079: 사용 보고서: nginx-mgmt.locals를 확인할 수 없습니다(110: 작업 시간이 초과되었습니다)
    
  • 시스템 리졸버 오류: NGINX Instance Manager 호스트 이름을 확인하지 못했습니다.
    2024/04/02 13:20:44 [info] 103888#0: 사용 보고서: 리졸버 "nginx-mgmt.local"에서 호스트를 찾을 수 없습니다.
    
  • SSL 연결 실패: SSL 인증서를 확인할 수 없거나 만료되었습니다.
    2024/04/02 13:13:50 [경고] 103877#0: 사용 보고서: 피어 SSL 연결에 실패했습니다.
    
  • 피어 커뮤니케이션 실패: NGINX 인스턴스 관리자에 접속하지 못했습니다.
    2024/04/02 13:15:25 [경고] 103877#0: 사용 보고서: 피어 연결이 실패했습니다(-1: 알 수 없는 오류)
    2024/04/02 13:23:32 [경고] 103877#0: 사용 보고서: 실패(서버가 반환함: 404 Not Found)
    2024/04/02 19:53:45 [경고] 4648#4648: 사용 보고서: 연결 시간 초과
    

NGINX 에이전트 설치

아직 R31로 전환하지 않았거나 조만간 전환할 계획이 없더라도 NGINX Plus 인스턴스를 NGINX Instance Manager에 보고할 수 있습니다. 환경에 NGINX 에이전트를 설치하면 이를 달성할 수 있습니다. 설치가 완료되면 인스턴스 관리자와 연결을 설정하고 사용 데이터 전송을 시작할 수 있습니다. NGINX 에이전트를 설치하려면 이 링크 에 제공된 지침을 따르세요.

NGINX Plus 사용량을 보려면 브라우저에서 NGINX Management Suite에 로그인하고 NGINX Instance Manager 모듈로 이동하세요. 그런 다음 페이지 왼쪽 하단에 있는 NGINX Plus 탭을 선택하세요.

시간 경과에 따른 NGINX Plus 인벤토리 인스턴스

단계별 지침이 담긴 이 비디오 튜토리얼을 시청하세요.

NGINX Plus에 대한 HTTP Health Check 구성

NGINX 에이전트를 설치하거나 R31로 업그레이드할 계획이 없더라도 NGINX Plus 인스턴스를 보고할 수 있습니다. 이는 NGINX 구성 파일을 통해 HTTP 상태 검사를 구성하여 달성할 수 있습니다. 하지만 이 옵션을 활용하려면 NGINX Plus 구성 파일을 수동으로 업데이트해야 합니다. 이 방법은 시간이 많이 걸리고 번거로울 수 있으며, 특히 환경에 여러 인스턴스가 있는 경우 더욱 그렇습니다. 따라서 이 옵션을 선택하기 전에 이러한 요소를 고려하는 것이 좋습니다.

NGINX Plus 구성

  1. NGINX Plus 구성을 열고 http {} 블록 내에 코드를 삽입합니다.
    
       keyval_zone zone=uuid:32K state=/var/lib/nginx/state/instance_uuid.json; keyval 1 $nginx_uuid zone=uuid; 업스트림 수신기 { zone 수신기 64k; # 필수: NGINX Management Suite IP 주소 또는 호스트 이름으로 NMS_FQDN을 업데이트합니다. # 호스트 이름으로 구성하는 경우 아래의 resolver 지시문의 주석 처리를 제거하고 호스트 이름을 확인할 수 있는 DNS 서버를 정의해야 합니다. server NMS_FQDN:443; # 선택 사항: # 위에 정의된 호스트 이름을 확인할 수 있는 DNS 서버 IP 주소로 DNS_UP을 업데이트합니다. #resolver DNS_IP; } map CERT $repo_crt { # 선택 사항: 클라이언트 인증서 위치 기본 /home/ubuntu/agent.crt; } map KEY $repo_key { # 선택 사항: 클라이언트 인증서 개인 키의 위치 기본 /home/ubuntu/agent.key; } 서버 { 위치 @ngx_usage_https { # 선택 사항: 여기에 스키마(http|https)를 구성하세요 proxy_pass https://receiver; # 필수: 이 인스턴스에서 NGINX APP PROTECT(NAP)를 사용하는 경우 다음 줄에 nap=active를 설정합니다. proxy_set_header Nginx-Usage "Version=$nginx_version;Hostname=$hostname;uuid=$nginx_uuid; nap=active "; health_check uri=/api/nginx-usage interval=1800s; # 수정하지 마세요 proxy_ssl_certificate $repo_crt; # 수정하지 마세요 proxy_ssl_certificate_key $repo_key; # 수정하지 마세요 } location @self { health_check uri=/_uuid interval=1d; proxy_pass http://self; } location = /_uuid { if ($nginx_uuid !~ .) { set $nginx_uuid $request_id; } return 204; } 청취 unix:/tmp/ngx_usage.sock; } 업스트림 자체 { 영역 자체 64k; 서버 unix:/tmp/ngx_usage.sock; }
    
  2. NMS FQDN을 Instance Manager 호스트 이름이나 IP 주소로 업데이트합니다. 개인 DNS를 사용하는 경우 주석 처리를 제거하고 DNS IP 주소를 업데이트하세요.
  3. NGINX Instance Manager로의 HTTP 트래픽 보안을 보장하려면 CERT 맵과 KEY 맵 블록에서 SSL 인증서와 키의 위치를 지정하는 것이 필수적입니다.

변경 사항을 저장하고 NGINX를 다시 로드합니다.

sudo nginx -s 다시 로드

NGINX Plus 사용량을 보려면 브라우저에서 NGINX Management Suite에 로그인하고 NGINX Instance Manager 모듈로 이동하세요. 그런 다음 페이지 왼쪽 하단에 있는 NGINX Plus 탭을 선택하세요.

시간 경과에 따른 NGINX Plus 인벤토리 인스턴스

단계별 지침이 담긴 이 비디오 튜토리얼을 시청하세요.

결론

당사는 고객이 있는 곳에서 서비스를 제공하고 사용 보고를 손쉽게 간소화하고 자동화할 수 있도록 돕기 위해 최선을 다하고 있습니다. 그렇기 때문에 우리는 보고 유연성을 위해 여러 가지 옵션을 제공하고 있습니다. 최근 출시된 NGINX Plus R31 업데이트를 통해 F5 요구 사항을 준수하는 동시에 성능에 영향을 주지 않고 NGINX Plus 인스턴스의 월별 사용 데이터를 더 간단하고 효율적으로 보고할 수 있습니다.


"이 블로그 게시물에는 더 이상 사용할 수 없거나 더 이상 지원되지 않는 제품이 참조될 수 있습니다. 사용 가능한 F5 NGINX 제품과 솔루션에 대한 최신 정보를 보려면 NGINX 제품군을 살펴보세요. NGINX는 이제 F5의 일부가 되었습니다. 이전의 모든 NGINX.com 링크는 F5.com의 유사한 NGINX 콘텐츠로 리디렉션됩니다."