Skip to content
Snippets Groups Projects
Commit 961c63cd authored by Hahn Axel (hahn)'s avatar Hahn Axel (hahn)
Browse files

add doc page

parent dc799612
No related branches found
No related tags found
1 merge request!162check_http first lines
......@@ -25,6 +25,7 @@ There is one include script used by all checks:
* [check_fs_writable](check_fs_writable.md)
* [check_haproxy_health](check_haproxy_health.md)
* [check_haproxy_status](check_haproxy_status.md)
* [check_http](check_http.md)
* [check_memory](check_memory.md)
* [check_mysqlserver](check_mysqlserver.md)
* [check_netio](check_netio.md)
......
# Check Httpd
## Introduction
Makes an http request with a given method.
Additionally you can verify the response.
## Requirements
* `curl` binary
## Syntax
```txt
______________________________________________________________________
CHECK_HTTP
v1.0
(c) Institute for Medical Education - University of Bern
Licence: GNU GPL 3
https://os-docs.iml.unibe.ch/icinga-checks/Checks/check_http.html
______________________________________________________________________
Makes an http request with a given method.
Additionally you can verify the response by
- http status code
- content in http response header
- content in http response body
- content that is NOT in http response body
SYNTAX:
check_http [-h]
check_http [-m METHOD] -u URL \
[-b REGEX] [-j FILTER] [-n REGEX] \
[-r REGEX] \
[-s STATUSCODE] \
[-l LABEL]
OPTIONS:
-h this help
PARAMETERS:
Define request:
-u URL Set url to fetch; eg. https://www.example.com/
-m METHOD Set a method, eg. HEAD; default: GET
What to check:
-s STATUSCODE exact Statuscode to check; 3 digits; by default critical
is a statuscode greater equal 400
-r REGEX Regex must match in http response header
-j JQ-FILTER for JSON Response: filter data by a jq
-b REGEX Regex must match in response body
-n REGEX Regex must NOT match in response body
Output:
-l LABEL set a custom label; default: METHOD + URL eg.
"GET https://example.com/status"
EXAMPLES:
check_http -u https://www.example.com/
Check if GET request to url responds with 200..3xx status.
check_http -m HEAD -u https://www.example.com/
Check if HEAD request to url responds with 200..3xx status
check_http -u [URL] -s 403
Check if the GET request to url has a wanted status code.
You can verify if a protected url is not accessible.
check_http -u [URL] -b "contact"
Check if the GET request to url responds with 200..3xx
status and the response body contains "contact".
check_http -u [URL] -n "error occured"
Check if the GET request to url responds with 200..3xx
status and the response body NOT contains "error occured".
check_http -u [URL] -s 200 -b -b "contact" -n "error occured"
Combine code, a matching search and a non matching one.
```
## Examples
### Simple check of an url
``check_http -u https://www.example.com/`` is a check that makes an http GET request.
The queck is OK if the responded status code is no error - if it is 2xx (OK) or a redirect (3xx).
```txt
OK: GET https://www.example.com/ (200)
Command: curl -si -X GET https://www.example.com/
Found:
- Http status is a 2xx OK [200];
```
### Http HEAD of an url
You can set the method with ``-m``.
``./check_http -m head -u https://www.example.com/`` responds
```txt
OK: HEAD https://www.example.com/ (200)
Command: curl -si -X HEAD https://www.example.com/
Found:
- Http status is a 2xx OK [200];
```
### Exact status code
With ``-m`` you can verify if the status code matches exactly a given value.
You also can set a code for http error to ensure if a protected url really is blocking the request.
Maybe you don't deny the access like
* ``./check_http -u https://www.example.com/memberarea -s 403``
* ``./check_http -u https://www.example.com/config/settings.json -s 403``
Or you can check a flag file that must be absent.
* ``./check_http -u https://www.example.com/flag_maintenance.txt -s 404``
### Matching content
You can verify if the response matches a given regex. You can search in the response header with ``-r REGEX`` and in the response body with ``-b REGEX``.
``check_http -u [URL] -b "contact"`` will resppns OK if the status code is not an error (lower 400) and the word "contact" is found in response body.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment