Create monitor
Instead of starting on your production domain, you likely should create a load balancer on a test or staging domain. This may involve temporary changes to your monitors and pools, depending on your infrastructure setup.
Starting with a test domain allows you to verify everything is working correctly before routing production traffic.
You can create a monitor within the load balancer workflow or in the Monitors section of the dashboard:
-
Go to Traffic > Load Balancing.
-
Select Manage Monitors.
-
Select Create.
-
Add the following information:
- Type: The protocol to use for health monitors
- Non-enterprise customers: Choose HTTP, HTTPS, or TCP.
- Enterprise customers: Choose HTTP, HTTPS, TCP, UDP ICMP, ICMP Ping, or SMTP.
- Path: The endpoint path to run health monitor requests against
- Port: The destination port for health monitors
- Type: The protocol to use for health monitors
-
For additional settings, select Advanced health monitor settings:
- Interval:
- By increasing the default, you can improve failover time, but you may also increase load on your endpoints.
- Minimum time in seconds is 60 (Pro), 15 (Business), and 10 (Enterprise).
- Timeout and Retries:
- The health monitor request will return unhealthy if it exceeds the duration specified in Timeout (and exceeds this duration more times than the specified number of Retries).
- Expected Code(s): The expected HTTP response codes listed individually (
200
,302
) or as a range (for example, entering2xx
would cover all response codes in the200
range). - Response Body:
- Looks for a case-insensitive substring in the response body.
- Make sure that the value is relatively static and within the first 100 MB of the HTML page.
- Simulate Zone:
- It is recommended to use the same zone in which the Load Balancer exists.
- Changes the egress zone settings of a health monitor request to ensure compatibility with features like authenticated origin pulls, Argo Smart Routing, and Aegis.
- Follow Redirects:
- Instead of reporting a
301
or302
code as unhealthy, the health monitor request follows redirects to the final endpoint.
- Instead of reporting a
- Configure Request Header(s):
- Useful if your endpoints are expecting specific incoming headers.
- Header:
- The HTTP request headers to send in the health monitor. It is recommended that you set a Host header by default. The User-Agent header cannot be overridden. This parameter is only valid for HTTP and HTTPS monitors.
- Interval:
-
Select Save.
Make sure that your firewall or web server does not block or rate limit your configured health monitors or requests associated with Cloudflare IP addresses ↗.
Each health monitor has the HTTP user-agent of "Mozilla/5.0 (compatible; Cloudflare-Traffic-Manager/1.0; +https://www.cloudflare.com/traffic-manager/; pool-id: $poolid)"
, where the $poolid
is the first 16 characters of the associated pool.
For a full list of monitor properties, refer to Create Monitor. If you need help with API authentication, refer to Cloudflare API documentation.
The response contains the complete definition of the new monitor.
Prepare your serversMake sure that your firewall or web server does not block or rate limit your configured health monitors or requests associated with Cloudflare IP addresses ↗.
Each health monitor has the HTTP user-agent of "Mozilla/5.0 (compatible; Cloudflare-Traffic-Manager/1.0; +https://www.cloudflare.com/traffic-manager/; pool-id: $poolid)"
, where the $poolid
is the first 16 characters of the associated pool.
Example monitor configuration
Field | Value |
---|---|
Type | HTTP |
Path | / |
Port | 80 |
Interval | 60 |
Method | GET |
Timeout | 5 seconds |
Retries | 2 |
Expected Code(s) | 200 |