Revisa las verificaciones de tiempo de actividad

Esta página te muestra cómo hacer lo siguiente:

  • Enumera tus verificaciones de tiempo de actividad.
  • Obtén una lista de las direcciones IP que usaron las verificaciones de tiempo de actividad.

Para crear, actualizar y borrar tus verificaciones de tiempo de actividad, consulta la página Administra verificaciones de tiempo de actividad. Para ver los precios y los límites de las verificaciones de tiempo de actividad, consulta Precios y límites.

Enumera verificaciones de tiempo de actividad

Console

Para enumerar tus verificaciones de tiempo de actividad actuales, haz lo siguiente:

  1. En Cloud Console, selecciona Monitoring:

    Ir a Monitoring

  2. Selecciona Verificaciones de tiempo de actividad.

Para ver los detalles de una verificación de tiempo de actividad, haz clic en su nombre.

Para restringir las verificaciones de tiempo de actividad que se enumeran, agrega filtros. Cada filtro se compone de un nombre y un valor. Puedes configurar que el valor sea una coincidencia exacta para un nombre de verificación de tiempo de actividad o una coincidencia parcial. Las coincidencias no distinguen mayúsculas de minúsculas. Por ejemplo, para ver una lista de todas las verificaciones de tiempo de actividad cuyo nombre contiene default, haz lo siguiente:

  • Haz clic en Filtrar tabla (Filter table) y selecciona Nombre visible (Display name).
  • Ingresa default y, luego, presiona la tecla Intro.

Si tienes varios filtros, estos se unen de manera automática con un AND lógico, a menos que insertes un filtro OR. En el siguiente ejemplo, el filtro OR se usa para que aparezca una verificación de tiempo de actividad si su nombre coincide con default o testing check:

Descripción general de las verificaciones de tiempo de actividad con filtros.

API

Para obtener una lista de tus opciones de configuración de tiempo de actividad, realiza una llamada al método projects.uptimeCheckConfigs.list. Especifica los siguientes parámetros:

  • parent: El proyecto del que se va a verificar el tiempo de actividad. El formato es el siguiente:

    projects/[PROJECT_ID]
    

Para obtener una verificación de tiempo de actividad específica, llama al método projects.uptimeCheckConfigs.get. Especifica el siguiente parámetro:

  • name: Es el nombre completo de la configuración de verificación de tiempo de actividad.

    projects/[PROJECT_ID]/uptimeCheckConfigs/[UPTIME_CHECK_ID]
    

    Puedes obtener el [UPTIME_CHECK_ID] de la respuesta de un método create o list. El ID no se muestra en Google Cloud Console.

C#

public static object ListUptimeCheckConfigs(string projectId)
{
    var client = UptimeCheckServiceClient.Create();
    var configs = client.ListUptimeCheckConfigs(new ProjectName(projectId));
    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(request={"parent": project_name})

    for config in configs:
        pprint.pprint(config)

Ruby

def list_uptime_check_configs project_id
  require "google/cloud/monitoring"

  client = Google::Cloud::Monitoring.uptime_check_service
  project_name = client.project_path project: project_id
  configs = client.list_uptime_check_configs parent: project_name

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

Obtén direcciones IP para la verificación de tiempo de actividad

Si quieres verificar un servicio que está detrás de un firewall, puedes configurar el firewall de tus servicios a fin de que acepte tráfico del conjunto actual de direcciones IP que se usan para la verificación del tiempo de actividad. Para obtener las direcciones IP, sigue las siguientes instrucciones:

Console

  1. En Cloud Console, selecciona Monitoring:

    Ir a Monitoring

  2. Selecciona Verificaciones de tiempo de actividad.

  3. Haz clic en Descarga las direcciones IP del verificador estático .

API

  1. Llama al método uptimeCheckIps.list de la API de Monitoring.

  2. El método muestra la siguiente información para cada dirección IP:

    • La región: USA, EUROPE, SOUTH_AMERICA o ASIA_PACIFIC.
    • Una ubicación más específica dentro de la región.
    • La dirección IP, no un rango, en formato IPv4 o IPv6.

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

@SuppressWarnings("checkstyle:AbbreviationAsWordInName")
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(request={})
    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"
  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

Las verificaciones de tiempo de actividad pueden provenir de cualquiera de las direcciones IP, aunque solo se usa una dirección de cada ubicación geográfica para cada intervalo de tiempo. Las ubicaciones geográficas se enumeran en el panel de verificaciones de tiempo de actividad, como se muestra en la sección anterior. También puedes usar servicios gratuitos basados en la Web para identificar las ubicaciones registradas de las direcciones IP que descargaste.

Las direcciones IP que usan las verificaciones de tiempo de actividad pueden cambiar, pero, por lo general, no más de una vez por trimestre y no sin un anuncio.

Identifica el tráfico de la verificación de tiempo de actividad

Puedes identificar solicitudes de los servidores de verificación de tiempo de actividad mediante la siguiente información en los registros de solicitud de tu servicio:

  • ip: El campo ip contiene una de las direcciones que usan los servidores de verificación de tiempo de actividad. Consulta Obtén direcciones IP.
  • User-Agent: El valor del encabezado User-Agent es siempre el siguiente:

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

    Especificar un encabezado personalizado User-Agent genera un error de validación de formato y evita que se guarde la configuración de verificación.