Server-IP-Adressen für Verfügbarkeitsdiagnosen auflisten

In diesem Dokument erfahren Sie, wie Sie eine Liste der IP-Adressen abrufen, die von Verfügbarkeitsdiagnoseservern verwendet werden, und wie Sie Traffic von den Verfügbarkeitsdiagnoseservern in Ihren Protokollen identifizieren.

IP-Adressen auflisten

Wenn Sie einen Dienst prüfen, der sich hinter einer Firewall befindet, können Sie die Firewall des Dienstes so konfigurieren, dass sie Traffic von den aktuell für die Verfügbarkeitsdiagnose verwendeten IP-Adressen akzeptiert. So rufen Sie diese IP-Adressen ab:

Console

  1. Rufen Sie in der Google Cloud Console die Seite  Uptime-Prüfungen auf:

    Verfügbarkeitsdiagnosen aufrufen

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.

  2. Klicken Sie im Menü Verfügbarkeitsdiagnosen auf  Herunterladen. Die Datei uptime-source-ips.txt wird heruntergeladen und enthält die IP-Adressen.

gcloud

Führen Sie den Befehl gcloud monitoring uptime list-ips aus:

gcloud monitoring uptime list-ips

Die Methode gibt zu jeder IP-Adresse folgende Informationen zurück:

  • Die IP-Adresse (kein Bereich) im IPv4- oder IPv6-Format
  • Die Region: USA, EUROPE, SOUTH_AMERICA oder ASIA_PACIFIC
  • Der Standort innerhalb der Region.

API

Rufen Sie die Methode uptimeCheckIps.list der Monitoring API auf.

Die Methode gibt zu jeder IP-Adresse folgende Informationen zurück:

  • Die Region: USA, EUROPE, SOUTH_AMERICA oder ASIA_PACIFIC
  • Einen genauer spezifizierten Standort innerhalb der Region
  • Die IP-Adresse (kein Bereich) im IPv4- oder IPv6-Format

C#

Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

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

Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

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

Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.


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

Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

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

Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

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

Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

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

Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

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

Verfügbarkeitsdiagnosen können von jeder der IP-Adressen stammen. Pro Zeitintervall wird jedoch nur eine einzige Adresse von jedem geografischen Standort verwendet. Die Standorte sind im Dashboard zur Verfügbarkeitsdiagnose aufgeführt, wie im vorherigen Abschnitt dargestellt. Sie können die registrierten Standorte der heruntergeladenen IP-Adressen auch mithilfe von kostenlosen, webbasierten Diensten identifizieren.

Verfügbarkeitsdiagnose-Traffic in Protokollen identifizieren

Folgen Sie zum Identifizieren der Anfragen von den Verfügbarkeitsdiagnose-Servern den Angaben in den Anfrage-Logs des Dienstes:

  • ip: Das Feld ip enthält eine der von den Verfügbarkeitsdiagnose-Servern verwendeten Adressen. Informationen zum Auflisten aller IP-Adressen finden Sie unter IP-Adressen auflisten.
  • User-Agent: Der Header User-Agent hat immer den folgenden Wert:

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

    Wenn Sie für User-Agent einen benutzerdefinierten Header angeben, wird ein Formularvalidierungsfehler ausgegeben und die Diagnosekonfiguration kann nicht gespeichert werden.

Nächste Schritte