NGINX 모니터링 간단하게 구현하기
NGINX 모니터링 을 위한 NGINX Plus에서는 가장 인기 있는 기능 중 하나는 확장된 상태 보고라고도 하는 live activity 모니터링입니다. live activity 모니터링은 NGINX Plus 설치에 대한 실시간 통계를 보고합니다. 이는 문제 해결, 오류 보고, 프로덕션 환경에 대한 새 설치 및 업데이트 모니터링, 캐시 관리에 필수적입니다.
경험이 많고 NGINX Plus를 처음 접하는 DevOps 엔지니어로부터 live activity 모니터링을 구성하는 가장 좋은 방법에 대한 질문을 자주 받습니다. 이 포스트에서는 단 몇 분 만에 NGINX Plus 대시보드에서 실시간 통계를 볼 수 있는 샘플 구성 파일에 대해 설명합니다.
NGINX Plus API용 샘플 구성 파일을 사용하면 사용자 환경에서 NGINX Plus의 더 많은 고급 기능을 훨씬 쉽게 설정할 수 있습니다.
참고: 이 지침에서는 NGINX Plus 패키지를 설치할 때 자동으로 설정되는 기존 NGINX Plus 구성 체계(구성 파일이 /etc/nginx/conf.d 디렉토리에 저장됨)를 사용한다고 가정합니다. 다른 체계를 사용하는 경우 그에 따라 명령을 조정하십시오.
목차
1. 샘플 구성 파일 설치
2. 구성 사용자 지정
2-1. 모니터링 서버 및 업스트림 서버 그룹
2-2. NGINX Plus API에 대한 액세스 제한
2-3. 대시보드의 포트 변경
2-4. 모니터링 되는 IP 주소 제한
3. Demo NGINX Plus 대시보드
4. 추가 자료
1. NGINX 모니터링 – 샘플 구성 파일 설치
명령에는 프롬프트 또는 기타 불필요한 문자가 포함되어 있지 않으므로 터미널 창에 직접 붙여 넣을 수 있습니다.
1. 샘플 구성 파일을 다운로드합니다.
cd /etc/nginx/conf.d/
wget https://gist.githubusercontent.com/nginx-gists/a51341a11ff1cf4e94ac359b67f1c4ae/raw/bf9b68cca20c87f303004913a6a9e9032f24d143/nginx-plus-api.conf
브라우저에서 Gist 저장소로 이동하여 ZIP 다운로드 버튼을 클릭하거나 nginx-plus-api.conf 파일의 제목 표시 줄에서 Raw 버튼을 클릭하고 파일 콘텐츠를 복사할 수도 있습니다.
2. 구성 사용자 정의에 설명된 대로 구성 파일을 사용자 정의하십시오.
3. 구성 파일의 구문 유효성을 테스트하고 NGINX Plus를 다시 로드합니다.
nginx -t && nginx -s reload
NGINX Plus 대시보드는 http://nginx-plus-server-address:8080/(또는 대시보드용 포트 변경에서 구성한 대체 포트 번호)에서 즉시 사용할 수 있습니다.
2. NGINX 모니터링 – 구성 사용자 지정
live active 모니터링을 최대한 활용하려면 이 섹션에 설명된 대로 nginx-plus-api.conf와 기존 구성 파일 모두를 변경하십시오. 동등한 지침이 nginx-plus-api.conf에 주석으로 포함되어 있습니다.
server {
# Conventional port for the NGINX Plus API is 8080
listen 8080;
# Uncomment to use HTTP Basic authentication; see (3) above
#auth_basic "NGINX Plus API";
#auth_basic_user_file /etc/nginx/users;
# Uncomment to use permissions based on IP address; see (4) above
#allow 10.0.0.0/8;
#deny all;
# Conventional location for accessing the NGINX Plus API
location /api/ {
# Enable in read-write mode
api write=on;
# Uncomment to further restrict write permissions; see note above
#limit_except GET {
#auth_basic "NGINX Plus API";
#auth_basic_user_file /etc/nginx/admins;
#}
}
# Conventional location of the NGINX Plus dashboard
location = /dashboard.html {
root /usr/share/nginx/html;
}
# Redirect requests for "/" to "/dashboard.html"
location / {
return 301 /dashboard.html;
}
# Redirect requests for pre-R14 dashboard
location /status.html {
return 301 /dashboard.html;
}
}
2-1. 모니터링 서버 및 업스트림 서버 그룹
가상 서버 및 업스트림 그룹에 대한 통계가 대시보드에 표시되려면 각 서버 및 그룹에 대한 구성 블록에서 공유 메모리 영역을 활성화해야 합니다. 공유 메모리는 모든 NGINX Plus worker 프로세스에서 구성 및 런타임 상태 정보를 저장하는 데 사용됩니다.
공유 메모리를 구성하지 않으면 내장된 NGINX Plus 대시보드는 연결 및 요청 수에 대한 기본 정보만 보고합니다.
가상 서버를 정의하는 기존 구성 파일에서 대시보드에 표시하려는 각 server의 서버 구성 블록에 status_zone 지시문을 추가합니다.(여러 server 블록에서 동일한 영역 이름을 지정할 수 있으며, 이 경우 해당 서버에 대한 통계가 대시보드에 함께 집계됩니다.)
server {
listen 80;
status_zone my_frontend;
location / {
proxy_pass http://backend;
}
}
마찬가지로 업스트림 그룹을 정의하는 기존 구성 파일에서 대시보드에 표현하려는 각 그룹의 upstream 구성 블록에 zone 지시문을 추가합니다. 다음 예에서는 64KB의 공유 메모리를 할당하여 my_backend upstream 그룹에 있는 서버의 통계를 저장합니다. 각 업스트 그룹의 영역 이름은 고유해야 합니다.
upstream backend {
zone my_backend 64k;
server 10.2.3.5;
server 10.2.3.6;
}
2-2. NGINX Plus API에 대한 액세스 제한
샘플 구성 파일의 기본 설정을 사용하면 모든 네트워크의 모든 사람이 대시보드에 액세스 할 수 있습니다. nginx-plus-api.conf에서 다음 보안 조치 중 하나 이상을 구성하는 것이 좋습니다.
1. 방화벽. 대시보드용 포트에 대한 외부 액세스를 허용하지 않도록 방화벽을 구성하십시오.(샘플 구성 파일의 63행에 있는 8080)
2. SSL 또는 TLS 전체 구성의 일부인 클라이언트 인증서. 자세한 내용은 NGINX Plus 가이드를 참조하세요.
3. HTTP 기본 인증. 샘플 구성 파일에서 auth_basic and auth_basic_user_file 지시문(66-67행)의 주석 처리를 제거하십시오. /etc/nginx/users 파일에 적절한 사용자 항목을 추가합니다(예:htpasswd 생성기 사용). 예를 들어 Apache HTTP Server 배포에서 기존 htpasswd 파일을 재사용할 수도 있습니다.
auth_basic "NGINX Plus API";
auth_basic_user_file /etc/nginx/users;
4. IP 주소 기반 액세스 제어 목록(ACL). 샘플 구성 파일에서 allow 및 deny 지시문(70-71행)의 주석을 제거하고 관리 네트워크 주소를 10.0.0.0/8로 대체하십시오. 지정된 네트워크의 사용자만 NGINX Plus API 및 대시보드에 액세스 할 수 있습니다.
allow 10.0.0.0/8;
deny all;
읽기 권한이 있는 사용자와 구성을 변경할 수 있는 사용자를 구분하기 위해 쓰기 작업에 대한 추가 제한을 만들 수 있습니다. location api 블록에서 샘플 limit_except 블록(79-82행)의 주석을 제거하십시오. 참조 문서에 자세히 설명된 대로 예제에 사용된 HTTP 기본 인증 외에도 여러 인증 체계가 지원됩니다.
limit_except GET {
auth_basic "NGINX Plus API";
auth_basic_user_file /etc/nginx/admins;
}
2-3. 대시보드의 포트 변경
대시보드의 포트 번호를 8080 이외의 값으로 설정하려면 샘플 구성 파일에서 다음 listen 지시문(63행)을 수정하십시오.
listen 8080;
2-4. 모니터링 되는 IP 주소 제한
NGINX Plus 서버가 다중 홈(IP 주소가 여러 개 있음)이고 NGINX Plus API 및 대시보드가 그 중 하나만 노출되도록 하려면 listen 지시문(63행)을 수정하여 해당 IP 주소와 포트를 지정합니다. 다음 예에서와 같이.
listen 10.2.3.4:8080;
3. Demo NGINX Plus 대시보드
NGINX Plus 대시보드의 모든 기능을 미리 보고 싶다면 demo.nginx.com 에서 live demo를 확인하세요.
4. NGINX 모니터링 추가 자료
NGINX Plus를 직접 사용해 보시려면 30일 무료 평가판을 신청하거나 NGINX STORE에 연락하여 문의하십시오.
사용 사례에 대해 최신 소식을 빠르게 전달받고 싶으시면 아래 뉴스레터를 구독하세요.