Elenca gli indirizzi IP dei server per il controllo di uptime

Questo documento mostra come ottenere un elenco di indirizzi IP utilizzati dai server del controllo di uptime e come è possibile identificare il traffico dai server del controllo di uptime nei tuoi log.

Elenca indirizzi IP

Quando controlli un servizio protetto da un firewall, puoi configurare il firewall del servizio in modo che accetti il traffico dall'insieme attuale di indirizzi IP utilizzati per il controllo di uptime. Per ottenere questi indirizzi IP, segui queste istruzioni:

Console

  1. Nella console Google Cloud, vai alla pagina  Controlli di uptime:

    Vai a Controlli di uptime

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.

  2. Nel menu Controlli di uptime, fai clic su Scarica. Viene scaricato un file uptime-source-ips.txt che contiene gli indirizzi IP.

gcloud

Esegui il comando gcloud monitoring uptime list-ips:

gcloud monitoring uptime list-ips

Il metodo restituisce le seguenti informazioni per ogni indirizzo IP:

  • L'indirizzo IP, non un intervallo, nel formato IPv4 o IPv6.
  • La regione: USA, EUROPE, SOUTH_AMERICA o ASIA_PACIFIC.
  • La località all'interno della regione.

API

Chiama il metodo uptimeCheckIps.list dell'API Monitoring.

Il metodo restituisce le seguenti informazioni per ogni indirizzo IP:

  • La regione: USA, EUROPE, SOUTH_AMERICA o ASIA_PACIFIC.
  • Una località più specifica all'interno della regione.
  • L'indirizzo IP, non un intervallo, nel formato IPv4 o IPv6.

C#

Per autenticarti a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per autenticarti a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per autenticarti a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.


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

Per autenticarti a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per autenticarti a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per autenticarti a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per autenticarti a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

I controlli di uptime possono provenire da qualsiasi indirizzo IP, ma viene utilizzato un solo indirizzo di ciascuna posizione geografica per ogni intervallo di tempo. Le posizioni geografiche sono elencate nella dashboard dei controlli di uptime, come mostrato nella sezione precedente. Puoi anche utilizzare servizi gratuiti basati sul web per identificare le località registrate degli indirizzi IP che hai scaricato.

Identifica il traffico relativo al controllo di uptime nei log

Puoi identificare le richieste provenienti dai server dei controlli di uptime in base alle seguenti informazioni nei log delle richieste del tuo servizio:

  • ip: il campo ip contiene uno degli indirizzi utilizzati dai server per il controllo di uptime. Per informazioni su come elencare tutti gli indirizzi IP, vedi Elencare gli indirizzi IP.
  • User-Agent: il valore dell'intestazione User-Agent è sempre il seguente:

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

    La specifica di un'intestazione personalizzata User-Agent genera un errore di convalida del modulo e impedisce il salvataggio della configurazione del controllo.

Passaggi successivi