Verfügbarkeitsdiagnosen überprüfen

Diese Seite enthält Anleitungen für Folgendes:

  • Alle Verfügbarkeitsdiagnosen auflisten
  • Eine Liste der für Verfügbarkeitsdiagnosen verwendeten IP-Adressen abrufen

Wie Sie Verfügbarkeitsdiagnosen erstellen, aktualisieren und löschen, erfahren Sie unter Verfügbarkeitsdiagnosen verwalten. Informationen zu Preisen und Limits für Verfügbarkeitsdiagnosen erhalten Sie unter Preise und Limits.

Verfügbarkeitsdiagnosen auflisten

Console

Zum Auflisten Ihrer aktuellen Verfügbarkeitsdiagnosen gehen Sie so vor:

  1. Wählen Sie in der Cloud Console Monitoring aus:

    Zu Monitoring

  2. Wählen Sie Uptime checks (Verfügbarkeitsdiagnosen) aus.

Klicken Sie auf den Namen, um Details zu einer Verfügbarkeitsdiagnose anzuzeigen.

Fügen Sie Filter hinzu, um die aufgeführten Verfügbarkeitsdiagnosen einzuschränken. Jeder Filter besteht aus einem Namen und einem Wert. Sie können den Wert so einstellen, dass er genau mit dem Namen einer Verfügbarkeitsdiagnose oder einer Teilübereinstimmung übereinstimmt. Bei Übereinstimmungen wird nicht zwischen Groß- und Kleinschreibung unterschieden. Um beispielsweise alle Verfügbarkeitsdiagnosen aufzulisten, deren Name default enthält, gehen Sie so vor:

  • Klicken Sie auf Filter table (Filtertabelle) und wählen Sie Display name (Anzeigename) aus.
  • Geben Sie default ein und drücken Sie die Eingabetaste.

Wenn Sie mehrere Filter haben, werden diese automatisch durch den logischen Wert AND verbunden, sofern Sie nicht den Filter OR einfügen. Im folgenden Beispiel wird der Filter OR verwendet, sodass eine Verfügbarkeitsdiagnose aufgelistet wird, wenn der Name mit default oder testing check übereinstimmt:

Übersicht über Beispiele für Verfügbarkeitsdiagnosen mit Filtern

API

Rufen Sie die Methode projects.uptimeCheckConfigs.list auf, um eine Liste der verfügbaren Konfigurationen zu erhalten. Geben Sie folgenden Parameter an:

  • parent: Das Projekt, dessen Verfügbarkeitsdiagnosen Sie auflisten möchten. Das Format dafür ist:

    projects/[PROJECT_ID]
        

Rufen Sie die Methode projects.uptimeCheckConfigs.get auf, um eine bestimmte Verfügbarkeitsdiagnose zu erhalten. Geben Sie folgenden Parameter an:

  • name: Der vollständige Name der Verfügbarkeitsdiagnosekonfiguration.

    projects/[PROJECT_ID]/uptimeCheckConfigs/[UPTIME_CHECK_ID]
        

    Sie können die [UPTIME_CHECK_ID] aus der Antwort der Methode create oder list abrufen. Die ID wird nicht in der Google Cloud Console angezeigt.

C#

public static object ListUptimeCheckConfigs(string projectId)
    {
        var client = UptimeCheckServiceClient.Create();
        var configs = client.ListUptimeCheckConfigs(
            new ProjectName(projectId).ToString());
        foreach (UptimeCheckConfig config in configs)
        {
            Console.WriteLine(config.Name);
        }
        return 0;
    }

Java

private static void listUptimeChecks(String projectId) throws IOException {
      ListUptimeCheckConfigsRequest request = ListUptimeCheckConfigsRequest
          .newBuilder()
          .setParent(ProjectName.format(projectId))
          .build();
      try (UptimeCheckServiceClient client = UptimeCheckServiceClient.create()) {
        ListUptimeCheckConfigsPagedResponse response = client.listUptimeCheckConfigs(request);
        for (UptimeCheckConfig config : response.iterateAll()) {
          System.out.println(config.getDisplayName());
        }
      } catch (Exception e) {
        usage("Exception listing uptime checks: " + e.toString());
        throw e;
      }
    }

Go


    // list is an example of listing the uptime checks in projectID.
    func list(w io.Writer, projectID string) error {
    	ctx := context.Background()
    	client, err := monitoring.NewUptimeCheckClient(ctx)
    	if err != nil {
    		return fmt.Errorf("NewUptimeCheckClient: %v", err)
    	}
    	defer client.Close()
    	req := &monitoringpb.ListUptimeCheckConfigsRequest{
    		Parent: "projects/" + projectID,
    	}
    	it := client.ListUptimeCheckConfigs(ctx, req)
    	for {
    		config, err := it.Next()
    		if err == iterator.Done {
    			break
    		}
    		if err != nil {
    			return fmt.Errorf("ListUptimeCheckConfigs: %v", err)
    		}
    		fmt.Fprintln(w, config)
    	}
    	fmt.Fprintln(w, "Done listing uptime checks")
    	return nil
    }
    

Node.js

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

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

    /**
     * TODO(developer): Uncomment and edit the following lines of code.
     */
    // const projectId = 'YOUR_PROJECT_ID';

    const request = {
      parent: client.projectPath(projectId),
    };

    // Retrieves an uptime check config
    const [uptimeCheckConfigs] = await client.listUptimeCheckConfigs(request);

    uptimeCheckConfigs.forEach(uptimeCheckConfig => {
      console.log(`ID: ${uptimeCheckConfig.name}`);
      console.log(`  Display Name: ${uptimeCheckConfig.displayName}`);
      console.log(`  Resource: %j`, uptimeCheckConfig.monitoredResource);
      console.log(`  Period: %j`, uptimeCheckConfig.period);
      console.log(`  Timeout: %j`, uptimeCheckConfig.timeout);
      console.log(`  Check type: ${uptimeCheckConfig.check_request_type}`);
      console.log(
        `  Check: %j`,
        uptimeCheckConfig.httpCheck || uptimeCheckConfig.tcpCheck
      );
      console.log(
        `  Content matchers: ${uptimeCheckConfig.contentMatchers
          .map(matcher => matcher.content)
          .join(', ')}`
      );
      console.log(`  Regions: ${uptimeCheckConfig.selectedRegions.join(', ')}`);
    });
    

PHP

use Google\Cloud\Monitoring\V3\UptimeCheckServiceClient;

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

        $pages = $uptimeCheckClient->listUptimeCheckConfigs(
            $uptimeCheckClient->projectName($projectId)
        );

        foreach ($pages->iteratePages() as $page) {
            foreach ($page as $uptimeCheck) {
                print($uptimeCheck->getName() . PHP_EOL);
            }
        }
    }

Python

def list_uptime_check_configs(project_name):
        client = monitoring_v3.UptimeCheckServiceClient()
        configs = client.list_uptime_check_configs(project_name)

        for config in configs:
            pprint.pprint(config)

Ruby

def list_uptime_check_configs project_id
      require "google/cloud/monitoring/v3"

      client = Google::Cloud::Monitoring::V3::UptimeCheck.new
      project_name = Google::Cloud::Monitoring::V3::UptimeCheckServiceClient.project_path project_id
      configs = client.list_uptime_check_configs project_name

      configs.each { |config| puts config.name }
    end

IP-Adressen für Verfügbarkeitsdiagnose abrufen

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. Rufen Sie die IP-Adressen so ab:

Console

  1. Wählen Sie in der Cloud Console Monitoring aus:

    Zu Monitoring

  2. Wählen Sie Uptime checks (Verfügbarkeitsdiagnosen) aus.

  3. Klicken Sie auf Checker-IP-Adressen auf der weißen Liste herunterladen .

API

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

  2. 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#

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

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

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.

Die für Verfügbarkeitsdiagnosen verwendeten IP-Adressen können sich ändern. Das geschieht in der Regel höchstens einmal pro Quartal und wird entsprechend angekündigt.

Verfügbarkeitsdiagnose-Traffic identifizieren

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

  • ip: Das Feld ip enthält eine der von den Verfügbarkeitsdiagnose-Servern verwendeten Adressen. Weitere Informationen finden Sie unter IP-Adressen abrufen.
  • 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.