특정 유형의 네트워크 트래픽에 대한 상태 점검 매개 변수를 정의하는 서비스 모니터를 생성합니다. 서비스 모니터를 풀에 연결하면 서비스 모니터 매개 변수에 따라 풀 멤버가 모니터링됩니다.

ICMP, TCP, UDP, HTTP, HTTPS, DNS, MSSQL 및 LDAP 유형의 모니터가 지원됩니다.

프로시저

  1. vSphere Web Client에 로그인합니다.
  2. 네트워킹 및 보안(Networking & Security) > NSX Edge(NSX Edges)를 클릭합니다.
  3. NSX Edge를 두 번 클릭합니다.
  4. 관리(Manage) > 로드 밸런서(Load Balancer) > 서비스 모니터링(Service Monitoring)을 클릭합니다.
  5. 추가(Add)를 클릭합니다.
  6. 서비스 모니터의 이름(Name)을 입력합니다.
    간격, 시간 초과 및 최대 재시도 횟수는 모든 유형의 상태 점검에서 공통되는 매개 변수입니다.
  7. 서버를 테스트할 간격(Interval)(초)을 입력합니다.
    이 간격은 모니터가 백엔드 서버로 요청을 보내는 기간(초)입니다.
  8. 시간 초과(Timeout) 값을 입력합니다. 각 상태 점검에서 시간 초과 값은 서버의 응답이 수신되어야 하는 최대 시간(초)입니다.
  9. 최대 재시도 횟수(Max Retries)를 입력합니다. 이 값은 다운 상태로 선언되기 전에 서버를 테스트하는 횟수입니다.

    예를 들어 간격(Interval)을 5초로 설정하고, 시간 초과(Timeout)를 15초로 설정하고, 최대 재시도 횟수(Max Retries)를 3으로 설정하면 NSX 로드 밸런서가 5초 간격으로 백엔드 서버를 검색합니다. 각 탐색에서 예상된 응답이 15초 내에 서버에서 수신되면 상태 결과는 정상입니다. 그러지 않으면 결과는 위험입니다. 최근 3개의 상태 검사 결과가 모두 다운이면 서버는 다운으로 표시됩니다.

  10. 유형(Type) 드롭다운 메뉴에서 서버에 상태 점검 요청을 보내는 방법을 선택합니다. 지원되는 모니터 유형은 ICMP, TCP, UDP, HTTP, HTTPS, DNS, MSSQL 및 LDAP입니다. 미리 정의된 3가지 모니터 default_tcp_monitor, default_http_monitor, default_https_monitor가 시스템에 포함되어 있습니다.
  11. 모니터 유형으로 ICMP를 선택하는 경우 다른 매개 변수를 적용할 수 없습니다. 다른 매개 변수는 비워 두십시오.
  12. 모니터 유형으로 TCP를 선택하는 경우 보내기, 받기 및 확장의 세 가지 매개 변수를 추가로 사용할 수 있습니다.
    1. 보내기(Send)(옵션) - 연결이 설정된 후에 백엔드 서버로 보낸 문자열입니다. 허용되는 최대 문자열 길이는 256자입니다.
    2. 받기(Receive)(옵션) - 일치하는지 확인할 문자열을 입력합니다. 이 문자열은 헤더이거나 응답 본문에 있을 수 있습니다. 수신된 문자열이 이 정의와 일치하면 서버가 [UP]인 것으로 간주됩니다.
    3. 확장(Extension): [확장] 섹션에 고급 모니터 매개 변수를 키=값 쌍으로 입력합니다.
      샘플 확장 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 위험 상태를 발생시키는 응답 시간(초)입니다.
  13. 모니터 유형으로 HTTP 또는 HTTPS를 선택하는 경우 다음 단계를 수행합니다.
    1. 예상(Expected)(옵션) - [예상] 섹션에 모니터가 HTTP 응답의 상태 줄에서 일치할 것으로 예상하는 문자열을 입력합니다. 이것은 쉼표로 구분된 목록입니다.
      예: 200,301,302,401.
    2. 메서드(Method)(옵션) - 드롭다운 메뉴에서 서버 상태를 검색할 메서드, 즉 GET, OPTIONS 또는 POST를 선택합니다.
    3. URL(옵션) - GET 또는 POST에 대한 URL(기본값 "/")을 입력합니다.
    4. POST 메서드를 선택하는 경우 전송될 데이터를 볼드체(Bold) 섹션에 입력합니다.
    5. 받기(Receive) 섹션의 응답 컨텐츠에서 일치할 문자열을 입력합니다. 이 문자열은 헤더이거나 응답 본문에 있을 수 있습니다.
      [예상] 섹션의 문자열이 일치하지 않으면 모니터는 [받기] 컨텐츠와 일치시키려 하지 않습니다.

      JSON 형식 예제: 응답 유효성 검사에는 "{"Healthy":true}": receive={\"Healthy\":true}가 포함됩니다.

    6. 확장(Extension): [확장] 섹션에 고급 모니터 매개 변수를 키=값 쌍으로 입력합니다.
      샘플 확장 warning=10은 서버가 10초 내에 응답하지 않을 경우 상태를 주의(warning)로 설정합니다.
      모든 확장 항목을 캐리지 리턴 문자로 구분해야 합니다.
      참고: eregi, regexereg의 경우 문자열에 { } 및 “가 포함되면 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 --sni

      host_name은 호스트의 유효한 호스트 이름 또는 FQDN입니다.

      각 가상 호스트에 대해 별도의 서비스 모니터를 생성하고 각 서비스 모니터에 SNI(서버 이름 표시) 확장을 추가합니다.

      표 3. HTTPS 프로토콜에 대한 확장
      모니터 확장 설명
      certificate=INTEGER 인증서가 유효해야 할 최소 일 수입니다. 포트 기본값이 443으로 설정됩니다. 이 옵션을 사용하면 URL이 선택되지 않습니다.
      authorization=AUTH_PAIR 기본 인증을 사용하는 사이트의 사용자 이름:암호입니다.
      ciphers=’ECDHE-RSA-AES256-GCM-SHA384’ HTTPS 상태 점검에 사용되는 암호를 표시합니다.
  14. 모니터 유형으로 UDP를 선택하는 경우 아래 단계를 수행합니다.
    1. 보내기(Send)(필수): 연결이 설정된 후에 백엔드 서버로 보낼 문자열을 입력합니다.
    2. 받기(Receive)(필수): 백엔드 서버에서 받을 것으로 예상되는 문자열을 입력합니다. 수신된 문자열이 이 정의와 일치할 때에만 서버가 작동 상태인 것으로 간주됩니다.
    참고:

    UDP 모니터에서는 확장을 지원하지 않습니다.

  15. 모니터 유형으로 DNS를 선택하는 경우 아래 단계를 수행합니다.
    1. 보내기(Send)(필수): 연결이 설정된 후에 백엔드 서버로 보낼 문자열을 입력합니다.
    2. 받기(Receive): 백엔드 서버에서 받을 것으로 예상되는 문자열을 입력합니다. 수신된 문자열이 이 정의와 일치할 때에만 서버가 [UP]인 것으로 간주됩니다.
    3. 확장(Extension): [확장] 섹션에 고급 모니터 매개 변수를 키=값 쌍으로 입력합니다.
      샘플 확장 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로 설정됩니다.

  16. 모니터 유형으로 MSSQL을 선택하는 경우 아래 단계를 수행합니다.
    1. 보내기(Send): 연결이 설정된 후에 백엔드 서버에서 실행될 문자열을 입력합니다.
    2. 받기(Receive): 백엔드 서버에서 받을 것으로 예상되는 문자열을 입력합니다. 수신된 문자열이 이 정의와 일치할 때에만 서버가 작동 상태인 것으로 간주됩니다.
    3. 사용자 이름(User Name), 암호(Password)암호 확인(Confirm password)(필수): 필요한 사용자 이름, 암호를 입력하고 입력한 암호를 확인합니다. 모니터가 풀과 연결되어 있으므로 풀의 MSSQL 서버를 여기에 지정된 것과 동일한 사용자 이름 및 암호로 설정해야 합니다.
    4. 확장(Extension): [확장] 섹션에 고급 모니터 매개 변수를 키=값 쌍으로 입력합니다.
      샘플 확장 warning=10은 서버가 10초 내에 응답하지 않을 경우 상태를 주의(warning)로 설정합니다.

      모든 확장 항목을 캐리지 리턴 문자로 구분해야 합니다.

    표 5. MSSQL 프로토콜에 대한 확장
    모니터 확장 설명
    database=DBNAME

    선택 사항: 연결할 데이터베이스 이름

    이 확장은 Send 또는 storedproc 매개 변수가 사용될 경우 필요합니다.
    storedproc=STOREPROC

    선택 사항: MSSQL 서버에 대해 실행할 저장된 절차입니다.

  17. 모니터 유형으로 LDAP를 선택하는 경우 아래 단계를 수행합니다.
    1. 암호(Password)암호 확인(Confirm password)(선택 사항): 필수 암호를 입력하고 입력한 암호를 확인합니다.
    2. 확장(Extension): [확장] 섹션에 고급 모니터 매개 변수를 키=값 쌍으로 입력합니다.
      샘플 확장 warning=10은 서버가 10초 내에 응답하지 않을 경우 상태를 주의(warning)로 설정합니다.

      모든 확장 항목을 캐리지 리턴 문자로 구분해야 합니다.

    표 6. LDAP 프로토콜에 대한 확장
    모니터 확장 설명
    attr=’ATTR’

    선택 사항: 검색할 LDAP 특성(기본값: '(objectclass=*)’입니다.

    attrcrit-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] 상태 점검 결과는 위험이 됩니다.

  18. 확인(OK)을 클릭합니다.

다음에 수행할 작업

서비스 모니터를 풀과 연결합니다.