특정 유형의 네트워크 트래픽에 대한 상태 점검 매개 변수를 정의하는 서비스 모니터를 생성합니다. 서비스 모니터를 풀에 연결하면 서비스 모니터 매개 변수에 따라 풀 멤버가 모니터링됩니다.
ICMP, TCP, UDP, HTTP, HTTPS, DNS, MSSQL 및 LDAP 유형의 모니터가 지원됩니다.
프로시저
- vSphere Web Client에 로그인합니다.
- 네트워킹 및 보안(Networking & Security) > NSX Edge(NSX Edges)를 클릭합니다.
- NSX Edge를 두 번 클릭합니다.
- 관리(Manage) > 로드 밸런서(Load Balancer) > 서비스 모니터링(Service Monitoring)을 클릭합니다.
- 추가를 클릭합니다.
- 서비스 모니터의 이름을 입력합니다.
간격, 시간 초과 및 최대 재시도 횟수는 모든 유형의 상태 점검에서 공통되는 매개 변수입니다.
- 서버를 테스트할 간격(초)을 입력합니다.
이 간격은 모니터가 백엔드 서버로 요청을 보내는 기간(초)입니다.
- 시간 초과 값을 입력합니다. 각 상태 점검에서 시간 초과 값은 서버의 응답이 수신되어야 하는 최대 시간(초)입니다.
- 최대 재시도 횟수를 입력합니다. 이 값은 다운 상태로 선언되기 전에 서버를 테스트하는 횟수입니다.
예를 들어 간격을 5초로 설정하고, 시간 초과를 15초로 설정하고, 최대 재시도 횟수를 3으로 설정하면 NSX 로드 밸런서가 5초 간격으로 백엔드 서버를 검색합니다. 각 탐색에서 예상된 응답이 15초 내에 서버에서 수신되면 상태 결과는 정상입니다. 그러지 않으면 결과는 위험입니다. 최근 3개의 상태 검사 결과가 모두 다운이면 서버는 다운으로 표시됩니다.
- 유형 드롭다운 메뉴에서 서버에 상태 점검 요청을 보내는 방법을 선택합니다. 지원되는 모니터 유형은 ICMP, TCP, UDP, HTTP, HTTPS, DNS, MSSQL 및 LDAP입니다. 미리 정의된 3가지 모니터 default_tcp_monitor, default_http_monitor, default_https_monitor가 시스템에 포함되어 있습니다.
- 모니터 유형으로 ICMP를 선택하는 경우 다른 매개 변수를 적용할 수 없습니다. 다른 매개 변수는 비워 두십시오.
- 모니터 유형으로 TCP를 선택하는 경우 보내기, 받기 및 확장의 세 가지 매개 변수를 추가로 사용할 수 있습니다.
- 보내기(옵션) - 연결이 설정된 후에 백엔드 서버로 보낸 문자열입니다. 허용되는 최대 문자열 길이는 256자입니다.
- 받기(옵션) - 일치하는지 확인할 문자열을 입력합니다. 이 문자열은 헤더이거나 응답 본문에 있을 수 있습니다. 수신된 문자열이 이 정의와 일치하면 서버가 [UP]인 것으로 간주됩니다.
- 확장: [확장] 섹션에 고급 모니터 매개 변수를 키=값 쌍으로 입력합니다.
샘플 확장 warning=10은 서버가 10초 내에 응답하지 않을 경우 상태를 주의(warning)로 설정합니다.
모든 확장 항목을 캐리지 리턴 문자로 구분해야 합니다.
표 1. TCP 프로토콜에 대한 확장 모니터 확장 설명 escape send 또는 quit 문자열에서 \n, \r, \t 또는 \ 를 사용할 수 있습니다. send 또는 quit 옵션 앞에 와야 합니다. 기본값: send에 아무 것도 추가하지 않고, quit 끝에 \r\n을 추가함. all All은 서버 응답에서 발생해야 할 문자열을 예상합니다. 기본값은 any입니다. quit=STRING 연결 닫기를 시작하기 위해 서버에 전송할 문자열입니다. refuse=ok|warn|crit ok, warn 또는 crit 상태의 TCP 거부를 수락합니다. 기본값은 crit입니다. mismatch=ok|warn|crit ok, warn 또는 crit 상태의 예상되는 문자열 불일치를 수락합니다. 기본값은 warn입니다. jail TCP 소켓에서 출력을 숨깁니다. maxbytes=INTEGER 지정된 수 이상의 바이트를 수신하면 연결을 닫습니다. delay=INTEGER 문자열 전송과 응답 폴링 간에 대기하는 시간(초)입니다. certificate=INTEGER[,INTEGER] 인증서가 유효해야 할 최소 일 수입니다. 첫 번째 값은 경고에 대한 일 수이고 두 번째 값은 위험에 대한 일 수입니다(지정하지 않은 경우 0). warning=DOUBLE 경고 상태를 발생시키는 응답 시간(초)입니다. critical=DOUBLE 위험 상태를 발생시키는 응답 시간(초)입니다.
- 모니터 유형으로 HTTP 또는 HTTPS를 선택하는 경우 다음 단계를 수행합니다.
- 예상(옵션) - [예상] 섹션에 모니터가 HTTP 응답의 상태 줄에서 일치할 것으로 예상하는 문자열을 입력합니다. 이것은 쉼표로 구분된 목록입니다.
예: 200,301,302,401.
- 메서드(옵션) - 드롭다운 메뉴에서 서버 상태를 검색할 메서드, 즉 GET, OPTIONS 또는 POST를 선택합니다.
- URL(옵션) - GET 또는 POST에 대한 URL(기본값 "/")을 입력합니다.
- POST 메서드를 선택하는 경우 전송될 데이터를 볼드체 섹션에 입력합니다.
- 받기 섹션의 응답 컨텐츠에서 일치할 문자열을 입력합니다. 이 문자열은 헤더이거나 응답 본문에 있을 수 있습니다.
[예상] 섹션의 문자열이 일치하지 않으면 모니터는 [받기] 컨텐츠와 일치시키려 하지 않습니다.
JSON 형식 예제: 응답 유효성 검사에는 "{"Healthy":true}": receive={\"Healthy\":true}가 포함됩니다.
- 확장: [확장] 섹션에 고급 모니터 매개 변수를 키=값 쌍으로 입력합니다.
샘플 확장 warning=10은 서버가 10초 내에 응답하지 않을 경우 상태를 주의(warning)로 설정합니다.모든 확장 항목을 캐리지 리턴 문자로 구분해야 합니다.참고: eregi, regex 및 ereg의 경우 문자열에 { } 및 “가 포함되면 JSON 형식에 대한 문자열을 구문 분석하기 전에 문자 \를 추가해야 합니다. JSON 형식 예제: 응답 유효성 검사에는 "{"Healthy":true}": eregi="\{\"Healthy\":true\}"가 포함됩니다.
표 2. HTTP/HTTPS 프로토콜에 대한 확장 모니터 확장 설명 no-body 문서 본문을 기다리지 않습니다. 제목 이후에 읽기를 중지합니다. 그래도 HEAD가 아니라 HTTP GET 또는 POST를 계속 수행합니다. ssl-version=3 sslv3을 사용하여 SSL 핸드셰이크를 강제로 수행합니다.
기본적으로 sslv3 및 tlsv1은 상태 점검 옵션에서 비활성화되어 있습니다.
ssl-version=10 tls 1.0을 사용하여 SSL 핸드셰이크를 강제로 수행합니다. ssl-version=11 tls 1.1을 사용하여 SSL 핸드셰이크를 강제로 수행합니다. ssl-version=12 tls 1.2를 사용하여 SSL 핸드셰이크를 강제로 수행합니다. max-age=SECONDS 문서가 SECONDS 이상 오래된 경우 경고합니다. 이 숫자는 분일 경우 10m, 시간일 경우 10h, 일 수일 경우 10d 형식일 수 있습니다. content-type=STRING POST 호출에서 Content-Type 헤더 미디어 유형을 지정합니다. linespan 정규식이 새로운 줄을 걸칠 수 있도록 허용합니다(앞에 -r 또는 -R이 와야 함). regex=STRING 또는 ereg=STRING STRING 정규식에 대한 페이지를 검색합니다. eregi=STRING 대/소문자를 구분하지 않는 STRING 정규식에 대한 페이지를 검색합니다. 예:
- 응답 유효성 검사에는 "OK1" 또는 "OK2": eregi="(OK1|OK2)"가 포함됩니다.
- 응답 유효성 검사에는 "{"Healthy":true}": eregi="{\"Healthy\":true}"가 포함됩니다.
invert-regex 있으면 CRITICAL을 반환하고, 없으면 OK를 반환합니다. proxy-authorization=AUTH_PAIR 기본 인증을 사용하는 프록시 서버의 사용자 이름:암호입니다. useragent=STRING HTTP 헤더에서 User Agent로 전송되는 문자열입니다. header=STRING HTTP 헤더에서 전송되는 기타 태그입니다. 추가 헤더를 위해 여러 번 사용합니다. 예:
header="Host: app1.xyz.com
onredirect=ok|warning|critical|follow|sticky|stickyport 리디렉션된 페이지를 처리하는 방법입니다. sticky는 follow와 유사하지만 지정된 IP 주소에 고정됩니다. stickyport를 사용하면 포트가 항상 동일합니다. pagesize=INTEGER:INTEGER 필요한 최소 페이지 크기(바이트) : 필요한 최대 페이지 크기(바이트)입니다. warning=DOUBLE 경고 상태를 발생시키는 응답 시간(초)입니다. critical=DOUBLE 위험 상태를 발생시키는 응답 시간(초)입니다. expect = STRING 쉼표로 구분된 문자열 목록입니다. 서버 응답의 첫 번째 (상태) 줄에 이 중 하나 이상의 문자열이 예상됩니다(기본값: HTTP/1). 지정될 경우 다른 모든 상태 줄 논리(예: 3xx, 4xx, 5xx processing)를 건너뜁니다.
string = STRING 컨텐츠에서 예상되는 문자열입니다. url = PATH GET 또는 POST에 대한 URL입니다(기본값: /). post = STRING http POST 데이터를 인코딩하기 위한 URL입니다. method = STRING HTTP 메서드(예: HEAD, OPTIONS, TRACE, PUT, DELETE)를 설정합니다. timeout = INTEGER 연결이 시간 초과되기 전까지의 시간(초)입니다(기본값 10초). header=Host:host_name -H host_name host_name은 호스트의 유효한 호스트 이름 또는 FQDN입니다.
표 3. HTTPS 프로토콜에 대한 확장 모니터 확장 설명 certificate=INTEGER 인증서가 유효해야 할 최소 일 수입니다. 포트 기본값이 443으로 설정됩니다. 이 옵션을 사용하면 URL이 선택되지 않습니다. authorization=AUTH_PAIR 기본 인증을 사용하는 사이트의 사용자 이름:암호입니다. ciphers=’ECDHE-RSA-AES256-GCM-SHA384’ HTTPS 상태 점검에 사용되는 암호를 표시합니다.
- 예상(옵션) - [예상] 섹션에 모니터가 HTTP 응답의 상태 줄에서 일치할 것으로 예상하는 문자열을 입력합니다. 이것은 쉼표로 구분된 목록입니다.
- 모니터 유형으로 UDP를 선택하는 경우 아래 단계를 수행합니다.
- 보내기(필수): 연결이 설정된 후에 백엔드 서버로 보낼 문자열을 입력합니다.
- 받기(필수): 백엔드 서버에서 받을 것으로 예상되는 문자열을 입력합니다. 수신된 문자열이 이 정의와 일치할 때에만 서버가 작동 상태인 것으로 간주됩니다.
참고:UDP 모니터에서는 확장을 지원하지 않습니다.
- 모니터 유형으로 DNS를 선택하는 경우 아래 단계를 수행합니다.
- 보내기(필수): 연결이 설정된 후에 백엔드 서버로 보낼 문자열을 입력합니다.
- 받기: 백엔드 서버에서 받을 것으로 예상되는 문자열을 입력합니다. 수신된 문자열이 이 정의와 일치할 때에만 서버가 작동 상태인 것으로 간주됩니다.
- 확장: [확장] 섹션에 고급 모니터 매개 변수를 키=값 쌍으로 입력합니다.
샘플 확장 warning=10은 서버가 10초 내에 응답하지 않을 경우 상태를 주의(warning)로 설정합니다. 이 모니터 유형은 TCP 프로토콜만 지원합니다.
모든 확장 항목을 캐리지 리턴 문자로 구분해야 합니다.
표 4. DNS 프로토콜에 대한 확장 모니터 확장 설명 querytype=TYPE 선택 사항: DNS 레코드 쿼리 유형(TYPE =A, AAAA, SRV, TXT, MX, CNAME, ANY)입니다.
- A=IPv4 호스트 주소
- AAAA=Ipv6 호스트 주소
- SRV=서비스 로케이터
- TXT=텍스트 레코드
- MX=도메인 레코드에 대한 메일 교환
- CNAME=별칭 레코드의 정식 이름
기본 쿼리 유형은 A입니다.
expect-authority (선택 사항): DNS 서버가 조회에 대한 인증된 것으로 예상합니다.
accept-cname (선택 사항): cname 응답을 쿼리에 대한 유효한 결과로 수락합니다. querytype=CNAME과 함께 사용됩니다.
기본값은 결과의 일부로 cname 응답을 무시하는 것입니다.
warning=seconds (선택 사항): 경과 시간이 예상 값을 초과하는 경우 경고 메시지를 반환합니다.
기본값은 off로 설정됩니다.
critical=seconds (선택 사항): 경과 시간이 예상 값을 초과하는 경우 위험 알림 메시지를 반환합니다. 기본값은 off로 설정됩니다.
- 모니터 유형으로 MSSQL을 선택하는 경우 아래 단계를 수행합니다.
- 보내기: 연결이 설정된 후에 백엔드 서버에서 실행될 문자열을 입력합니다.
- 받기: 백엔드 서버에서 받을 것으로 예상되는 문자열을 입력합니다. 수신된 문자열이 이 정의와 일치할 때에만 서버가 작동 상태인 것으로 간주됩니다.
- 사용자 이름, 암호 및 암호 확인(필수): 필요한 사용자 이름, 암호를 입력하고 입력한 암호를 확인합니다. 모니터가 풀과 연결되어 있으므로 풀의 MSSQL 서버를 여기에 지정된 것과 동일한 사용자 이름 및 암호로 설정해야 합니다.
- 확장: [확장] 섹션에 고급 모니터 매개 변수를 키=값 쌍으로 입력합니다.
샘플 확장 warning=10은 서버가 10초 내에 응답하지 않을 경우 상태를 주의(warning)로 설정합니다.
모든 확장 항목을 캐리지 리턴 문자로 구분해야 합니다.
표 5. MSSQL 프로토콜에 대한 확장 모니터 확장 설명 database=DBNAME 선택 사항: 연결할 데이터베이스 이름
이 확장은 Send 또는 storedproc 매개 변수가 사용될 경우 필요합니다.storedproc=STOREPROC 선택 사항: MSSQL 서버에 대해 실행할 저장된 절차입니다.
- 모니터 유형으로 LDAP를 선택하는 경우 아래 단계를 수행합니다.
- 암호 및 암호 확인(선택 사항): 필수 암호를 입력하고 입력한 암호를 확인합니다.
- 확장: [확장] 섹션에 고급 모니터 매개 변수를 키=값 쌍으로 입력합니다.
샘플 확장 warning=10은 서버가 10초 내에 응답하지 않을 경우 상태를 주의(warning)로 설정합니다.
모든 확장 항목을 캐리지 리턴 문자로 구분해야 합니다.
표 6. LDAP 프로토콜에 대한 확장 모니터 확장 설명 attr=’ATTR’ 선택 사항: 검색할 LDAP 특성(기본값: '(objectclass=*)’입니다.
attr과 crit-entires 범위를 함께 사용해야 합니다.
base=’cn=admin,dc=example,dc=com’ 필수: LDAP 기준(예: ou=my unit, o=my org, c=at.)
ver2 또는 ver3 선택 사항:
- ver2: LDAP 프로토콜 버전 2를 사용합니다.
- ver3: LDAP 프로토콜 버전 3을 사용합니다.
기본 프로토콜 버전은 ver2입니다.
bind=BINDDN (선택 사항): LDAP 바인딩 DN(고유 이름)입니다(필요한 경우).
자세한 내용은 https://www.ldap.com/the-ldap-bind-operation를 참조하십시오.
crit=DOUBLE 선택 사항: 위험 상태를 발생시키는 응답 시간(초)입니다. crit-entries=low:high 선택 사항: 위험 상태를 나타내는 발견된 항목 수입니다. 발견된 항목 수가 범위를 벗어나면[low, high] 상태 점검 결과는 위험이 됩니다.
- 확인을 클릭합니다.
다음에 수행할 작업
서비스 모니터를 풀과 연결합니다.