NGINX Plus 사용 리포트 F5로 전송(네트워크 제한 환경)
중요: NGINX Pluss R33은 NGINX Instance Manager 2.18 혹은 이후 버전이 필요합니다
데이터 플레인 인스턴스가 NGINX Plus R33 버전을 사용하고 있다면, 중단 없는 트래픽 처리를 보장하기 위해 NGINX Instance Manager을 2.18 혹은 이후 버전으로 업그레이드하세요.
NGINX Plus R33 인스턴스는 F5 라이선싱 엔드포인트 혹은 NGINX Instance Manager로 사용 데이터를 전송해야 합니다. 그러지 못한다면, NGINX Plus 인스턴스는 트래픽 처리를 멈춥니다.
사용 리포트 및 정책에 대한 더 자세한 정보는 구독 라이선스 문서를 참고하세요.
인터넷 접속이 불가능한 환경에서 NGINX Plus 는 사용 데이터 리포트 를 NGINX Instance Manager로 전송합니다. NGINX Instance Manager에서 사용 리포트를 다운로드하고, 인터넷 접속이 가능한 환경에서 F5로 사용 리포트를 전송해야 합니다. F5가 리포트를 검증한 이후, 사용 승인을 다운로드 할 수 있습니다. 사용 승인은 NGINX Instance Manager로 업로드되어야 합니다.
목차
1. NGINX Plus 사용 리포트 전송을 위한 사전 준비
2. F5로 NGINX Plus 사용 리포트 전송
2-1. Bash 스크립트
2-2. REST
2-3. 웹 인터페이스
3. 전송되는 내용
1. NGINX Plus 사용 리포트 전송을 위한 사전 준비
사용 데이터를 F5로 전송하기 전에, NGINX Plus가 원격 측정 데이터를 NGINX Instance Manager로 전송하도록 설정해야 합니다.
NGINX Plus(R33 혹은 이후 버전)가 NGINX Instance Manager로 사용 데이터를 전송하도록 설정하려면 다음 단계를 따르세요.
1. NGINX Instance Manager을 위해 443 포트를 개방합니다.
2. 각 NGINX Plus 인스턴스의 NGINX 설정(/etc/nginx/nginx.conf)에서 mgmt 블록의 usage_report 지시문에 NGINX Instance Manager 호스트를 설정합니다.
mgmt {
usage_report endpoint=<NGINX-INSTANCE-MANAGER-FQDN>;
}
자체 서명 인증서
자체 서명 인증서 사용을 위한 세부 사항은 자체 서명 인증서로 사용 리포트 전송을 위한 SSL 검증 설정을 참고하세요.
3. NGINX를 reload 합니다.
$ nginx -s reload
2. F5로 NGINX Plus 사용 리포트 전송
REST API 사용
curl혹은 Postman과 같은 도구를 사용하여 NGINX Instance Manager REST API와 상호작용을 할 수 있습니다. API URL은 https://<NIM-FQDN>/api/[nim|platform]/<API_VERSION>이며, 각 요청에는 인증이 필요합니다. 인증에 대한 세부 정보는 API 개요를 참고하세요.
2-1. Bash 스크립트(권장)
네트워크 제한 환경에서 라이선스를 추가하고 최초 리포트를 전송하려면, 제공된 license_usage_offline.sh 스크립트를 사용하세요. NGINX Instance Manager에 접근할 수 있고 443 포트로 https://product.apis.f5.com/에 연결할 수 있는 시스템에서 이 스크립트를 실행하세요. 각 예시 텍스트를 변경해서 사용하세요.
1. license_usage_offline.sh 스크립트를 다운로드합니다.
2. 다음 명령어를 사용하여 스크립트를 실행할 수 있도록 합니다.
$ chmod +x <path-to-script>/license_usage_offline.sh
3. 스크립트를 실행합니다. 각 예시 텍스트를 변경해서 사용합니다.
./license_usage_offline.sh \
-j <license-filename>.jwt \
-i <NIM-IP-address> \
-u admin \
-p <password> \
-o report.zip \
-s initial
위 명령어는 라이선스를 추가하고, 최초 사용 리포트(report.zip)를 다운로드하고, 사용 승인을 위해 F5로 리포트를 전송하며 사용 승인을 다시 NGINX Instance Manager로 업로드합니다.
license_usage_offline.sh 스크립트 전체 내용 보기
#!/bin/bash
# Function to encode the username and password to base64
encode_base64() {
echo -n "$1:$2" | base64
}
# Print help text and exit.
if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
echo
echo "Usage: $0 -j -i -u -p -o
2-2. REST
curl을 사용해 사용 리포트를 전송하기 위해 다음 단계를 따르세요.
NGINX Instance Manager에 접근할 수 있고 443 포트로 https://product.apis.f5.com/에 연결할 수 있는 시스템에서 다음 curl 명령어를 사용하세요. 각 예시 텍스트를 환경에 맞게 변경해서 사용하세요.
중요:
-k플래그는 SSL 인증서 검증을 건너뜁니다. NGINX Instance Manager가 자체 서명 인증서를 사용하거나, 시스템이 인증서를 신뢰하지 않을 경우에만 사용하세요.
1. 사용 리포트를 준비합니다.
$ curl -k --location 'https://<NIM-FQDN>/api/platform/v1/report/download?format=zip&reportType=telemetry&telemetryAction=prepare' \
--header 'accept: application/json' \
--header 'authorization: Basic <base64-encoded-credentials>' \
--header 'referer: https://<NIM-FQDN>/ui/settings/license'
2. 사용 리포트를 다운로드합니다.
$ curl -k --location 'https://<NIM-FQDN>/api/platform/v1/report/download?format=zip&reportType=telemetry&telemetryAction=download' \
--header 'accept: */*' \
--header 'authorization: Basic <base64-encoded-credentials>' \
--output report.zip
3. 확인을 위해 F5에 사용 리포트를 전송합니다.
$ curl --location 'https://product.apis.f5.com/ee/v1/entitlements/telemetry/bulk' \
--header "Authorization: Bearer $(cat /path/to/jwt-file)" \
--form 'file=@"<path-to-report>.zip"'
명령어를 실행한 이후, 응답의 “statusLink”를 확인하세요. “statusLink” 값(the UUID)의 마지막 부분이 report-id입니다. 예시는 다음과 같습니다.
{"statusLink":"/status/2214e480-3401-43a3-a54c-9dc501a01f83"}
예시의 경우, report-id 는 2214e480-3401-43a3-a54c-9dc501a01f83 입니다.
다음 단계에서 report-id가 필요합니다.
4. 사용 승인의 상태를 확인합니다.report-id를 이전 응답의 값으로 변경하세요.
$ curl --location 'https://product.apis.f5.com/ee/v1/entitlements/telemetry/bulk/status/<report-id>' \
--header "Authorization: Bearer $(cat /path/to/jwt-file)"
5. F5에서 사용 승인을 다운로드합니다.
$ curl --location 'https://product.apis.f5.com/ee/v1/entitlements/telemetry/bulk/download/<report-id>' \
--header "Authorization: Bearer $(cat /path/to/jwt-file)" \
--output <path-to-acknowledgement>.zip
6. 사용 승인을 NGINX Instance Manager로 업로드합니다.
$ curl -k --location 'https://<NIM-FQDN>/api/platform/v1/report/upload' \
--header 'Authorization: Basic <base64-encoded-credentials>' \
--form 'file=@"<path-to-acknowledgement>.zip"'
2-3. 웹 인터페이스
1. 사용 리포트 다운로드
F5로 전송하기 위해 최초 사용 리포트를 다운로드합니다.
- Licenses > Overview 페이지에서 Download License Report를 선택합니다.
2. F5로 사용 리포트 전송
REST 방식을 통해 사용 리포트를 F5로 전송하고 사용 승인을 다운받아야 합니다. REST 섹션의 3-5단계를 따르세요.
3. NGINX Instance Manager로 사용 승인 업로드
- Licenses > Overview 페이지에서 Upload Usage Acknowledgement를 선택합니다.
- Browse를 선택하거나 파일을 드래그하여 사용 승인을 업로드합니다.
- Add를 선택합니다.
3. 전송되는 내용
NGINX Plus는 사용 리포트를 시간마다 자동으로 F5에 전송합니다. 이 데이터는 POST 요청으로 전송되고 처리한 트래픽 양이나 인스턴스가 실행된 기간과 같은 세부 정보를 포함합니다. 다음은 전송되는 데이터의 예시입니다.
{
"version": "<nginx_version>",
"uuid": "<nginx_uuid>",
"nap": "<active/inactive>", // status of NGINX App Protect
"http": {
"client": {
"received": 0, // bytes received
"sent": 0, // bytes sent
"requests": 0 // number of HTTP requests processed
},
"upstream": {
"received": 0, // bytes received
"sent": 0 // bytes sent
}
},
"stream": {
"client": {
"received": 0, // bytes received
"sent": 0 // bytes sent
},
"upstream": {
"received": 0, // bytes received
"sent": 0 // bytes sent
}
},
"workers": 0, // number of worker processes running
"uptime": 0, // number of seconds the instance has been running
"reloads": 0, // number of times the instance has been reloaded
"start_time": "epoch", // start time of data collection for the report
"end_time": "epoch" // end time of data collection for the report
}