Mencantumkan alamat IP server cek uptime

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

Mencantumkan alamat IP

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

Konsol

  1. Di konsol Google Cloud, buka halaman  Pemeriksaan waktu aktif:

    Buka Cek uptime

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.

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

gcloud

Jalankan perintah gcloud monitoring uptime list-ips:

gcloud monitoring uptime list-ips

Metode ini 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 wilayah.

API

Panggil metode uptimeCheckIps.list Monitoring API.

Metode ini 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 melakukan autentikasi 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 melakukan autentikasi 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 melakukan autentikasi 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 melakukan autentikasi 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 melakukan autentikasi 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 melakukan autentikasi 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 melakukan autentikasi 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

Pemeriksaan waktu aktif 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 pemeriksaan uptime, seperti yang ditunjukkan di bagian sebelumnya. Anda juga dapat menggunakan layanan berbasis web gratis untuk mengidentifikasi lokasi terdaftar alamat IP yang Anda download.

Mengidentifikasi traffic pemeriksaan uptime dalam log

Anda dapat mengidentifikasi permintaan dari server pemeriksaan waktu aktif berdasarkan informasi berikut di log permintaan layanan Anda:

  • ip: Kolom ip berisi salah satu alamat yang digunakan oleh server pemeriksaan waktu aktif. Untuk mengetahui informasi tentang cara mencantumkan semua alamat IP, lihat Mencantumkan alamat IP.
  • User-Agent: Nilai header User-Agent selalu berupa:

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

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

Langkah selanjutnya