רשימת כתובות ה-IP של שרתים לבדיקת זמינות

כדי לאפשר לגישושים נכנסים לעבור דרך חומת האש, אפשר לאחזר את רשימת כתובות ה-IP שבהן משתמשים שרתי בדיקת זמינות של Cloud Monitoring. אפשר גם להשתמש בכתובות ה-IP האלה ובUser-Agentכותרת הבקשה כדי לזהות תנועה של בדיקות זמינות ביומנים של השירות.

הצגת רשימת כתובות IP

כשבודקים שירות שנמצא מאחורי חומת אש, אפשר להגדיר את חומת האש של השירות כך שתקבל תעבורה ממערכת כתובות ה-IP הנוכחית שמשמשת לבדיקת זמינות. כדי לקבל את כתובות ה-IP האלה, צריך לפעול לפי ההוראות הבאות:

המסוף

  1. במסוף Google Cloud , עוברים לדף  בדיקת זמני פעילות:

    לדף בדיקת זמני פעילות

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Monitoring.

  2. בסרגל הכלים של מסוף Google Cloud , בוחרים את Google Cloud הפרויקט. בהגדרות של מרכז האפליקציות, בוחרים את הפרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.
  3. בתפריט בדיקת זמני פעילות, לוחצים על הורדה. קובץ uptime-source-ips.txt יורד ומכיל את כתובות ה-IP.

gcloud

מריצים את הפקודה gcloud monitoring uptime list-ips:

gcloud monitoring uptime list-ips

השיטה מחזירה את הפרטים הבאים לכל כתובת IP:

  • כתובת ה-IP, לא טווח, בפורמט IPv4 או IPv6.
  • האזור: USA,‏ EUROPE,‏ SOUTH_AMERICA או ASIA_PACIFIC.
  • המיקום בתוך האזור.

API

מבצעים קריאה ל-method‏ uptimeCheckIps.list של Monitoring API.

השיטה מחזירה את הפרטים הבאים לכל כתובת IP:

  • האזור: USA,‏ EUROPE,‏ SOUTH_AMERICA או ASIA_PACIFIC.
  • מיקום ספציפי יותר בתוך האזור.
  • כתובת ה-IP, לא טווח, בפורמט IPv4 או IPv6.

C#

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

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

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

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

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.


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

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

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

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

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

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

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

כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

gem "google-cloud-monitoring"
require "google/cloud/monitoring"

def list_ips
  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

בדיקות זמני פעילות יכולות להגיע מכל אחת מכתובות ה-IP, אבל רק כתובת אחת מכל מיקום גיאוגרפי משמשת לכל מרווח זמן. המיקומים הגיאוגרפיים מפורטים בלוח הבקרה של בדיקות זמני פעילות. אפשר גם להשתמש בשירותים חינמיים באינטרנט כדי לזהות את המיקומים הרשומים של כתובות ה-IP שהורדתם.

זיהוי תנועה של בדיקת זמינות ביומנים

אפשר לזהות בקשות מהשרתים של בדיקת הזמינות לפי המידע הבא ביומני הבקשות של השירות:

  • ‫ip: השדה ip מכיל אחת מהכתובות שמשמשות את השרתים של בדיקת הזמינות. מידע על הצגת כל כתובות ה-IP זמין במאמר הצגת כתובות IP.
  • ‫User-Agent: ערך הכותרת User-Agent הוא תמיד:

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

    אם מציינים User-Agent כותרת בהתאמה אישית, מוצגת שגיאה באימות הטופס והגדרות הבדיקה לא נשמרות.

המאמרים הבאים