List uptime-check server IP addresses
Stay organized with collections
Save and categorize content based on your preferences.
This document shows you how to get a list of IP addresses used by uptime-check servers, and how you can identify traffic from the uptime-check servers in your logs.
List IP addresses
When you're checking a service that is behind a firewall, you can configure your service's firewall to accept traffic from the current set of IP addresses used for uptime checking. To get these IP addresses, use the following instructions:
Console
-
In the Google Cloud console, go to the Uptime checks page:
If you use the search bar to find this page, then select the result whose subheading is Monitoring.
- In the toolbar of the Google Cloud console, select your Google Cloud project. For App Hub configurations, select the App Hub host project or management project.
- In the Uptime checks menu, click get_app Download.
A file
uptime-source-ips.txtis downloaded and contains the IP addresses.
gcloud
Run the gcloud monitoring uptime list-ips command:
gcloudmonitoringuptimelist-ips
The method returns the following information for each IP address:
- The IP address, not a range, in IPv4 or IPv6 format.
- The region:
USA,EUROPE,SOUTH_AMERICA, orASIA_PACIFIC. - The location within the region.
API
Call the
uptimeCheckIps.list
method of the Monitoring API.
The method returns the following information for each IP address:
- The region:
USA,EUROPE,SOUTH_AMERICA, orASIA_PACIFIC. - A more specific location within the region.
- The IP address, not a range, in IPv4 or IPv6 format.
C#
To authenticate to Monitoring, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.
publicstaticobjectListUptimeCheckIps()
{
varclient=UptimeCheckServiceClient.Create();
varips=client.ListUptimeCheckIps(newListUptimeCheckIpsRequest());
foreach(UptimeCheckIpipinips)
{
Console.WriteLine("{0,20} {1}",ip.IpAddress,ip.Location);
}
return0;
}
Java
To authenticate to Monitoring, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.
privatestaticvoidlistUptimeCheckIps()throwsIOException{
try(UptimeCheckServiceClientclient=UptimeCheckServiceClient.create()){
ListUptimeCheckIpsPagedResponseresponse=
client.listUptimeCheckIps(ListUptimeCheckIpsRequest.newBuilder().build());
for(UptimeCheckIpconfig:response.iterateAll()){
System.out.println(config.getRegion()+" - "+config.getIpAddress());
}
}catch(Exceptione){
usage("Exception listing uptime IPs: "+e.toString());
throwe;
}
}Go
To authenticate to Monitoring, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.
// listIPs is an example of listing uptime check IPs.
funclistIPs(wio.Writer)error{
ctx:=context.Background()
client,err:=monitoring.NewUptimeCheckClient(ctx)
iferr!=nil{
returnfmt.Errorf("NewUptimeCheckClient: %w",err)
}
deferclient.Close()
req:=&monitoringpb.ListUptimeCheckIpsRequest{}
it:=client.ListUptimeCheckIps(ctx,req)
for{
config,err:=it.Next()
iferr==iterator.Done{
break
}
iferr!=nil{
returnfmt.Errorf("ListUptimeCheckIps: %w",err)
}
fmt.Fprintln(w,config)
}
fmt.Fprintln(w,"Done listing uptime check IPs")
returnnil
}
Node.js
To authenticate to Monitoring, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.
// Imports the Google Cloud client library
constmonitoring=require('@google-cloud/monitoring');
// Creates a client
constclient=newmonitoring.UptimeCheckServiceClient ();
// List uptime check IPs
const[uptimeCheckIps]=awaitclient.listUptimeCheckIps();
uptimeCheckIps.forEach(uptimeCheckIp=>{
console.log(
uptimeCheckIp.region,
uptimeCheckIp.location,
uptimeCheckIp.ipAddress
);
});
PHP
To authenticate to Monitoring, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.
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
To authenticate to Monitoring, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.
deflist_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
To authenticate to Monitoring, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.
gem"google-cloud-monitoring"
require"google/cloud/monitoring"
deflist_ips
client=Google::Cloud::Monitoring .uptime_check_service
# Iterate over all results.
client.list_uptime_check_ips({}).eachdo|element|
puts"#{element.location}#{element.ip_address }"
end
endUptime checks can come from any of the IP addresses, but only one address from each geographic location is used for each time interval. The geographic locations are listed in the uptime checks dashboard, as shown in the previous section. You can also use free, web-based services to identify the registered locations of the IP addresses you downloaded.
Identify uptime-check traffic in logs
You can identify requests from the uptime-check servers by the following information in your service's request logs:
- ip: The
ipfield contains one of the addresses used by the uptime-check servers. For information about how to list all IP addresses, see List IP addresses. User-Agent: The
User-Agentheader value is always the following:GoogleStackdriverMonitoring-UptimeChecks(https://cloud.google.com/monitoring)Specifying a
User-Agentcustom header results in a form validation error and prevents the check configuration from being saved.