Table of Contents
HttpContent
Description
This check verifies if a given url can be requested. Optionally you can test if it follows wanted rules:
- specific http status code
- http response header / response body contains/ not containtains given text text
- http response header / response body matches a given regex
Syntax
$oMonitor->addCheck(
[
"name" => "HttpContent 1",
"description" => "check if the example website sends a response",
"check" => [
"function" => "HttpContent",
"params" => [
"url" => "http://www.example.com/",
"[option]" => "[see parameters table]",
],
],
]
);
Parameters
key | type | description |
---|---|---|
url🔸 | (string) | url to fetch |
userpwd | (string) | set user and password; syntax: “[username]:[password]” |
timeout | (integer) | optional timeout in sec; default: 5 |
headeronly | (boolean) | optional flag to fetch http response herader only (HEAD request); default: false = returns header and body; |
follow | (boolean) | optional flag to follow a location; default: false = do not follow; If you set it to true it ries to follow (but this is not a safe method) |
sslverify | boolean | flag: enable/ disable verification of ssl certificate; default: true (verification is on) |
status | (integer) | test for an expected http status code; if none is given then test fails on status 400 and greater |
headercontains | (string) | test for a string in the http response header; it returns OK if the text was found |
headernotcontains | (string) | test for a string in the http response header; it returns OK if the text was not found |
headerregex | (string) | test for a regex in the http response header; it returns OK if the regex matches |
bodycontains | (string) | test for a string in the http response body; it returns OK if the text was found |
bodynotcontains | (string) | test for a string in the http response body; it returns OK if the text was not found |
bodyregex | (string) | test for a regex in the http response body; it returns OK if the regex matches; |
🔸 required
Remarks:
The checks for text strings are case sensitive. If you need a case insensitive test use a regex with “i” modifyer like in example 3.
Examples
Example 1
Check if a http reponse is successful.
$oMonitor->addCheck(
[
"name" => "HttpContent 1",
"description" => "check if the example website sends a response",
"check" => [
"function" => "HttpContent",
"params" => [
"url" => "http://www.example.com/",
],
],
]
);
Example 2
Check if a http reponse is successful and contains a wanted text.
$oMonitor->addCheck(
[
"name" => "HttpContent 1",
"description" => "check if the example website sends a response and contains hello in the text",
"check" => [
"function" => "HttpContent",
"params" => [
"url" => "http://www.example.com/",
"bodycontains" => "hello",
],
],
]
);
Example 3
Check availability of an api using user and password.
$aConfig["awx"]
is an example configuration hash with subkeys url, user and pasword.
if(isset($aConfig['awx']) && isset($aConfig['awx']['url'])){
$oMonitor->addCheck(
[
"name" => "AWX API",
"description" => "check if AWX api is available",
"group" => "network",
"check" => [
"function" => "HttpContent",
"params" => [
['url'] => $aConfig['awx']['url'],
['userpwd'] => $aConfig['awx']['user'].':'.$aConfig['awx']['password'],
],
],
]
);
}
Example 4
Check the status code: Is the http status a 307 and points to a wanted target?
$oMonitor->addCheck(
[
"name" => "HttpContent 2",
"description" => "check if the example website is a redirect with 307",
"check" => [
"function" => "HttpContent",
"params" => [
"url" => "https://www.example.com/redirect",
"headeronly" => true,
"status" => 307,
"headerregex" => "#Location: https://www.example.com/mytarget#i",
],
],
]
);
In the same way - by setting a status code to 40x - you also can check if sensitive information is not accessible.
$oMonitor->addCheck(
[
"name" => "Secure config",
"description" => "check if config is not readable wit a browser",
"check" => [
"function" => "HttpContent",
"params" => [
"url" => "https://www.example.com/config/sample.json",
"headeronly" => true,
"status" => 403,
],
],
]
);