업타임 체크 검토

이 페이지에서는 다음을 수행하는 방법을 보여줍니다.

  • 가동시간 확인 상태를 검토합니다.
  • 가동시간 확인에 사용되는 IP 주소 목록을 가져옵니다.

가동시간 확인 생성, 업데이트, 삭제 방법은 가동시간 확인 관리 페이지를 참조하세요. 작업공간별로 최대 100개까지 가동시간 확인을 만들 수 있습니다.

가동시간 확인 개요

Monitoring 개요 페이지에는 모든 가동시간 확인과 각 확인의 상세한 대시보드가 표시됩니다.

개요를 보려면 가동시간 확인 > 가동시간 확인 개요로 이동합니다.

가동시간 확인 개요로 이동

다음 스크린샷에 표시된 것처럼 각 가동시간 확인에서 각 위치의 마지막 확인 결과를 볼 수 있습니다.

가동시간 확인 모니터

대시보드

단일 업타임 체크의 세부 상태를 가져오려면 개요에서 확인을 클릭하거나 왼쪽 탐색창에 있는 업타임 체크 메뉴의 목록에서 확인을 클릭합니다. 다음은 샘플 대시보드입니다.

가동시간 확인 세부정보

위치 결과 지역은 적용 가능한 모든 지역에서 가동시간 확인의 결과를 보여줍니다. 지역 옆에 있는 녹색 점은 해당 지역에서 성공한 마지막 확인 실행을 나타내고, 빨간색 점은 실패를 나타냅니다. 점 위로 마우스를 이동하면 마지막 실행의 지연 시간과 해당되는 경우 HTTP 응답 코드가 표시됩니다.

확인 구성 지역에는 확인 ID를 포함한 가동시간 확인 설명이 포함되어 있습니다. 이 ID는 가동시간 확인이 생성될 때 할당됩니다. 이 값은 API 호출에서 [UPTIME_CHECK_ID] 값에 해당합니다.

API

기존 업타임 체크 구성을 검색하려면 projects.uptimeCheckConfigs.list를 사용합니다.

API에서 가동시간 확인은 가동시간 확인의 표시 이름과 철자가 비슷한 [UPTIME_CHECK_ID]로 식별됩니다. 예를 들어 표시 이름이 'my uptime check'인 경우 ID는 'my-uptime-check'가 되거나 조금 더 복잡한 매핑이 사용될 수 있습니다.

가동시간 개요에 표시된 이름을 Stackdriver Monitoring 콘솔에 할당합니다.

가동시간 백분율

업타임 값은 (S/T)*100 식으로 계산된 백분율입니다. 여기에서 S는 모든 위치의 성공한 확인 응답 수, T는 모든 위치의 전체 확인 응답 수입니다.

그룹 확인의 경우 ST 값이 모든 현재 그룹 구성원 간에 합산됩니다.

예를 들어 25분 동안 모든 지역에서 가동시간 확인이 1분 단위로 실행된다면 각 6개 위치에서 25개의 요청을 가져오므로 총 요청은 150개가 됩니다. 대시보드가 83.3%의 가동시간을 보고할 경우, 150개 요청 중 25개가 실패한 것입니다.

가동시간 확인 IP 주소 가져오기

방화벽 뒤에 있는 서비스를 확인하는 경우, 가동시간 확인에 사용되는 현재 IP 주소 집합에서 전송되는 트래픽을 허용하도록 서비스 방화벽을 구성할 수 있습니다. IP 주소를 가져오려면 다음 지침을 따릅니다.

콘솔

1. 프로젝트의 업타임 체크 페이지로 이동합니다.

  1. 업타임 체크 추가 옆에 있는 더보기 메뉴에서 소스 IP 다운로드를 선택합니다.

    가동시간 확인 다운로드 IP

API

  1. Monitoring API의 uptimeCheckIps.list 메소드를 호출합니다.

  2. 메소드가 각 IP 주소에 대해 다음 정보를 반환합니다.

    • 지역: USA, EUROPE, SOUTH_AMERICA 또는 ASIA_PACIFIC.
    • 지역 내에서 보다 구체적인 위치.
    • IPv4 또는 IPv6 형식의 IP 주소(범위 아님).

C#

public static object ListUptimeCheckIps()
{
    var client = UptimeCheckServiceClient.Create();
    var ips = client.ListUptimeCheckIps(new ListUptimeCheckIpsRequest());
    foreach (UptimeCheckIp ip in ips)
    {
        Console.WriteLine("{0,20} {1}", ip.IpAddress, ip.Location);
    }
    return 0;
}

자바

private static void listUptimeCheckIPs() throws IOException {
  try (UptimeCheckServiceClient client = UptimeCheckServiceClient.create()) {
    ListUptimeCheckIpsPagedResponse response =
        client.listUptimeCheckIps(ListUptimeCheckIpsRequest.newBuilder().build());
    for (UptimeCheckIp config : response.iterateAll()) {
      System.out.println(config.getRegion() + " - " + config.getIpAddress());
    }
  } catch (Exception e) {
    usage("Exception listing uptime IPs: " + e.toString());
    throw e;
  }
}

Go

// listIPs is an example of listing uptime check IPs.
func listIPs(w io.Writer) error {
	ctx := context.Background()
	client, err := monitoring.NewUptimeCheckClient(ctx)
	if err != nil {
		return fmt.Errorf("NewUptimeCheckClient: %v", err)
	}
	defer client.Close()
	req := &monitoringpb.ListUptimeCheckIpsRequest{}
	it := client.ListUptimeCheckIps(ctx, req)
	for {
		config, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			return fmt.Errorf("ListUptimeCheckIps: %v", err)
		}
		fmt.Fprintln(w, config)
	}
	fmt.Fprintln(w, "Done listing uptime check IPs")
	return nil
}

Node.js

// Imports the Google Cloud client library
const monitoring = require('@google-cloud/monitoring');

// Creates a client
const client = new monitoring.UptimeCheckServiceClient();

// List uptime check IPs
const [uptimeCheckIps] = await client.listUptimeCheckIps();
uptimeCheckIps.forEach(uptimeCheckIp => {
  console.log(
    uptimeCheckIp.region,
    uptimeCheckIp.location,
    uptimeCheckIp.ipAddress
  );
});

PHP

use Google\Cloud\Monitoring\V3\UptimeCheckServiceClient;

/**
 * Example:
 * ```
 * list_uptime_check_ips($projectId);
 * ```
 */
function list_uptime_check_ips($projectId)
{
    $uptimeCheckClient = new UptimeCheckServiceClient([
        'projectId' => $projectId,
    ]);

    $pages = $uptimeCheckClient->listUptimeCheckIps();

    foreach ($pages->iteratePages() as $page) {
        $ips = $page->getResponseObject()->getUptimeCheckIps();
        foreach ($ips as $ip) {
            printf(
                'ip address: %s, region: %s, location: %s' . PHP_EOL,
                $ip->getIpAddress(),
                $ip->getRegion(),
                $ip->getLocation()
            );
        }
    }
}

Python

def list_uptime_check_ips():
    client = monitoring_v3.UptimeCheckServiceClient()
    ips = client.list_uptime_check_ips()
    print(tabulate.tabulate(
        [(ip.region, ip.location, ip.ip_address) for ip in ips],
        ('region', 'location', 'ip_address')
    ))

Ruby

def list_ips
  require "google/cloud/monitoring/v3"
  client = Google::Cloud::Monitoring::V3::UptimeCheck.new

  # Iterate over all results.
  client.list_uptime_check_ips.each do |element|
    puts "#{element.location} #{element.ip_address}"
  end
end

반환된 정보에는 일반적으로 20개 정도의 IP 주소가 포함됩니다. 가동시간 확인은 모든 IP 주소에서 가져올 수 있지만, 각 시간 간격에 각 지리적 위치의 주소가 하나만 사용됩니다. 지리적 위치는 이전 섹션에 표시된 것처럼 가동시간 확인 대시보드에 나열됩니다. 또한 무료 웹 기반 서비스를 사용해서 다운로드한 IP 주소의 등록 위치를 식별할 수 있습니다.

가동시간 확인에 사용되는 IP 주소는 변경될 수 있지만, 일반적으로 분기별로 두 번 이상 변경할 수 없으며, 별도의 공지가 있어야 합니다.

가동시간 확인 트래픽 식별

서비스의 요청 로그에서 다음 정보를 확인하여 가동시간 확인 서버의 요청을 식별할 수 있습니다.

  • ip: ip 필드에는 업타임 체크 서버에 사용되는 주소 중 하나가 포함됩니다. IP 주소 가져오기를 참조하세요.
  • User-Agent: User-Agent 헤더 값은 항상 다음과 같습니다.

    GoogleStackdriverMonitoring-UptimeChecks(https://cloud.google.com/monitoring)
    

    User-Agent 커스텀 헤더를 지정하면 양식 유효성 검사 오류가 발생하고 확인 구성을 저장할 수 없습니다.

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Stackdriver Monitoring
도움이 필요하시나요? 지원 페이지를 방문하세요.