Mencantumkan alamat IP server cek uptime

Dokumen ini menunjukkan cara mendapatkan daftar alamat IP yang digunakan oleh server pemeriksaan waktu beroperasi, dan cara mengidentifikasi traffic dari server cek uptime di log Anda.

Mencantumkan alamat IP

Saat memeriksa layanan yang berada di belakang firewall, Anda dapat mengonfigurasi firewall layanan untuk menerima traffic dari kumpulan alamat IP saat ini yang digunakan untuk pemeriksaan waktu beroperasi. Untuk mendapatkan alamat IP ini, gunakan petunjuk berikut:

Konsol

  1. Di panel navigasi konsol Google Cloud, pilih Monitoring, lalu pilih  Uptime checks:

    Buka Cek uptime

  2. Di menu Uptime checks, klik Download. File uptime-source-ips.txt telah didownload dan berisi alamat IP.

gcloud

Jalankan perintah gcloud monitoring uptime list-ips:

gcloud monitoring uptime list-ips

Metode tersebut akan menampilkan informasi berikut untuk setiap alamat IP:

  • Alamat IP, bukan rentang, dalam format IPv4 atau IPv6.
  • Region: USA, EUROPE, SOUTH_AMERICA, atau ASIA_PACIFIC.
  • Lokasi dalam region.

API

Panggil metode uptimeCheckIps.list Monitoring API.

Metode tersebut akan menampilkan informasi berikut untuk setiap alamat IP:

  • Region: USA, EUROPE, SOUTH_AMERICA, atau ASIA_PACIFIC.
  • Lokasi yang lebih spesifik dalam region.
  • Alamat IP, bukan rentang, dalam format IPv4 atau IPv6.

C#

Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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;
}

Java

Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.


// 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: %w", 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: %w", err)
		}
		fmt.Fprintln(w, config)
	}
	fmt.Fprintln(w, "Done listing uptime check IPs")
	return nil
}

Node.js

Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

// 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

Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

use Google\Cloud\Monitoring\V3\Client\UptimeCheckServiceClient;
use Google\Cloud\Monitoring\V3\ListUptimeCheckIpsRequest;

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

    $pages = $uptimeCheckClient->listUptimeCheckIps($listUptimeCheckIpsRequest);

    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

Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

def list_uptime_check_ips() -> pagers.ListUptimeCheckIpsPager:
    """Gets all locations and IP addresses used by uptime check servers

    Returns:
        A list of locations and IP addresses of uptime check servers.
        Iterating over this object will yield results and resolve additional pages automatically.
    """
    client = monitoring_v3.UptimeCheckServiceClient()
    ips = client.list_uptime_check_ips(request={})
    print(
        tabulate.tabulate(
            [(ip.region, ip.location, ip.ip_address) for ip in ips],
            ("region", "location", "ip_address"),
        )
    )
    return ips

Ruby

Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

def list_ips
  require "google/cloud/monitoring"
  client = Google::Cloud::Monitoring.uptime_check_service

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

Cek uptime dapat berasal dari alamat IP mana pun, tetapi hanya satu alamat dari setiap lokasi geografis yang digunakan untuk setiap interval waktu. Lokasi geografis tercantum di dasbor cek uptime, seperti yang ditampilkan di bagian sebelumnya. Anda juga dapat menggunakan layanan berbasis web gratis untuk mengidentifikasi lokasi terdaftar dari alamat IP yang Anda download.

Mengidentifikasi traffic cek uptime dalam log

Anda dapat mengidentifikasi permintaan dari server cek uptime berdasarkan informasi berikut di log permintaan layanan Anda:

  • ip: Kolom ip berisi salah satu alamat yang digunakan oleh server uptime-check. Untuk mengetahui informasi tentang cara menampilkan semua alamat IP, lihat Mencantumkan alamat IP.
  • Agen Pengguna: Nilai header User-Agent selalu berikut ini:

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

    Menentukan header kustom User-Agent akan mengakibatkan error validasi formulir dan mencegah konfigurasi pemeriksaan disimpan.

Langkah selanjutnya