PRTG Manual: Monitoring via HTTP
HTTP is a standard application layer protocol and the basis for data communication on the internet. It is a request-response method for client-server architectures, where the client sends a request and the server processes and responds to the request.
Monitoring via HTTP is useful if you want to monitor websites or web servers. It enables you to keep an eye on the availability and download times of a website or the performance statistics of a web server. There are also a lot of other possible use cases for HTTP sensors. For example, you can request any application programming interface (API) that is reachable via HTTP and monitor returned values. This approach lets you include almost any type of device or application into your monitoring.
PRTG comes with sensors for HTTP monitoring:
- AWS EBS v2
- AWS EC2 v2
- AWS ELB v2
- AWS RDS v2
- Cisco Meraki License
- Cisco Meraki Network Health
- Cloud HTTP v2
- Common SaaS
- Data Hub Process
- Data Hub Rule
- Data Hub Traffic
- Dell EMC Unity Enclosure Health v2
- Dell EMC Unity File System v2
- Dell EMC Unity Storage Capacity v2
- Dell EMC Unity Storage LUN v2
- Dell EMC Unity Storage Pool v2
- Dell EMC Unity VMware Datastore v2
- FortiGate System Statistics
- FortiGate VPN Overview
- HPE 3PAR Common Provisioning Group
- HPE 3PAR Virtual Volume
- HTTP
- HTTP Advanced
- HTTP Apache ModStatus PerfStats
- HTTP Apache ModStatus Totals
- HTTP Content
- HTTP Data Advanced
- HTTP Full Web Page
- HTTP IoT Push Data Advanced
- HTTP Push Count
- HTTP Push Data
- HTTP Push Data Advanced
- HTTP Transaction
- HTTP v2
- HTTP XML/REST Value
- Microsoft Azure SQL Database
- Microsoft Azure Storage Account
- Microsoft Azure Subscription Cost
- Microsoft Azure Virtual Machine
- NetApp Aggregate v2
- NetApp I/O v2
- NetApp LIF v2
- NetApp LUN v2
- NetApp NIC v2
- NetApp Physical Disk v2
- NetApp SnapMirror v2
- NetApp System Health v2
- NetApp Volume v2
- Redfish Power Supply
- Redfish System Health
- Redfish Virtual Disk
- REST Custom
- REST Custom v2
- SSL Certificate
- SSL Security Check
- Veeam Backup Job Status
- Veeam Backup Job Status Advanced
- Monitor the availability and loading times of a website
- Monitor the source code and specific content of a website
- Test the login, purchasing, and shipping processes of a web shop
- Monitor performance statistics and activity of Apache web servers
Availability Monitoring
This type monitors the availability of a website or a specific website element. For example, the HTTP sensor shows how long the HTML code of a website takes to load. If the sensor shows a loading time that is much longer than expected, the website might not be responding or might be unavailable.
The HTTP sensor uses different HTTP requests to request the specified URL:
- GET (default): requests the website directly
- POST: sends post form data to the URL
- HEAD: requests the HTTP header only, without the actual web page body, saving bandwidth
The HTTP Advanced sensor also monitors the availability of a website, along with other parameters such as bytes received, download bandwidth (speed), and time to first byte, which shows you how fast your web server responds. This sensor lets you use a (custom) user agent when connecting to the target URL and lets you send custom HTTP headers to the target URL.
The Cloud HTTP v2 sensor monitors a web server from various locations across the globe. For example, the URL of a website to measure the loading time of a page’s source code or the URL of a page asset to measure its availability and loading time. The sensor also shows the global average response time.
The Common SaaS monitors the availability of your cloud services and is an important pillar for unified monitoring.
Content Monitoring
This type monitors internal values of a web server based application or changes to specific content on a website. The HTTP Full Web Page sensor measures the time it takes to download a web page including all embedded page elements, for example Flash content or images.
This monitoring option can create a lot of bandwidth traffic, depending on the page size and the scanning interval.
Additionally, the HTTP Content sensor monitors a numeric value returned by an HTTP request. It can also optionally trigger a ‘change’ notification to notify you of changes to the content.
For example, consider a URL http://www.example.com/status.html that returns a PHP script with the current system status in a simple HTML page.
<html>
<body>
Description: Script gives back current status of disk free (%) and CPU usage (%).
[85.5][12.0]
</body>
</html>
You would configure the HTTP Content sensor using
- the script URL from above,
- value type Float,
- and number of channels 2.
The sensor calls the URL with every scanning interval and only regards the two values in brackets [ ], handling each of them in one channel. The additional description text and HTML tags are not necessary. In this example, they are added in case a human calls the URL.
If you define the number of channels as 1, the sensor only reads the first value. The second value is ignored. Using 3 as number of channels results in a sensor error message.
To be notified when the website content changes, you first need to configure a Trigger 'change' notification in the sensor's settings and then the notification itself.
For more information, see section Notification Triggers Settings.
Performance Monitoring
The HTTP Transaction sensor checks if a web shop is working as expected: with a series of requests, for example, you can simulate the login, purchasing, and shipping processes. Only if all actions can be completed successfully in a row, the check returns an "OK" message. If anything goes wrong, you are immediately alerted and can react instantly to avoid loss of earnings for your company because the web shop is unavailable or very slow.
Apache Web Server Monitoring
The HTTP Apache ModStatus PerfStats and HTTP Apache ModStatus Totals sensors monitor performance statistics and the activity of an Apache web server using mod_status over HTTP. Among other HTTP sensors, these sensors let you enter credentials for web pages that need authentication and let you choose the necessary authentication method.
Security Monitoring
PRTG also provides the option to monitor the security of your website by checking the status of Secure Sockets Layer (SSL) certificates and the security of a connection:
- SSL Certificate sensor: monitors the certificate of an SSL/TLS-secured connection. For example, it displays whether a certificate has been revoked, or is trusted as root authority, or is self-signed.
- SSL Security Check sensor: monitors the SSL connectivity to the port of a device. It tries to connect to the specified TCP/IP port number of a device with different SSL/TLS versions and shows if a specific protocol is supported.
Push Monitoring
PRTG provides the option to monitor passively received data. For this purpose, you can set up a device in a way that it automatically sends the data to PRTG. Specific sensors can receive this data and alert you based on your individual settings. For example, all Linux/Unix and most network devices support remote devices generating data, which has to be configured on each device, and sending the messages to a probe system. Usually, only the destination IP and port are required.
For more information, see the Paessler website: How to use push monitoring via HTTP.
Other Data
You can also monitor other types of data from your website, for example the number of website visitors via the HTTP XML/REST Value sensor. The sensor lets you monitor values within the returned Extensible Markup Language (XML) code, provided your web analytics tool has an XML export option. The HTTP Data Advanced sensor accesses a web server and retrieves XML or JavaScript Object Notation (JSON) encoded data.
The REST Custom sensor queries a Representational State Transfer (REST) application programming interface (API) endpoint and maps the JSON or XML result to sensor values. The mapping rule has to be available as a REST configuration file in JSON template (*.template) format according to the PRTG API definition.
For more information about the return value format, see section Custom Sensors.
The HTTP sensors show their status depending on the HTTP status codes that they receive. By default, the sensor states are the following:
HTTP Status Code |
HTTP Sensor Status |
---|---|
2xx Success |
Up |
3xx Redirection |
Warning, Down for too many redirects) |
4xx Client Error |
Down |
5xx Server Error |
Down |
You need to configure your HTTP sensors manually only if you want to change these default reactions. In this case, you can change the sensor status based on limits and/or keyword checks.
- Server Name Indication: You can configure SNI, which has to be a fully qualified domain name (FQDN) and must match the configuration of the target server. For more information, see the Knowledge Base: My HTTP sensors fail to monitor websites which use SNI. What can I do?
- HTTP Version: You can choose the HTTP version that the sensor uses when connecting to the target URL.
- Authentication Method: You can define if the configured URL needs authentication, enter credentials, and choose an authentication method.
- Custom User Agent: You can enter a string to be used as user agent when connecting to the target URL.
- Custom HTTP Headers: You can send custom HTTP headers to the target URL.
For troubleshooting and other tips for monitoring with HTTP sensors, see More below.
KNOWLEDGE BASE
My HTTP sensors fail to monitor websites which use SNI. What can I do?
Which user agent should I use in the HTTP Advanced sensor's settings?
HTTP Full Web Page sensor is unable to navigate. What can I do?
What to do when I see a CreateUniqueTempDir() error message for my HTTP Full Web Page sensor?
Where can I find more information about the HTTP XML/REST Value sensor?
Why does my HTTP XML/REST Value sensor return a 404 error?