diff --git a/check_requirements b/check_requirements index ba80e9d656a2cab1e33c8ef95becf9e976064ebf..9008da192e34972e2b8683b6cb12f11043b1604a 100755 --- a/check_requirements +++ b/check_requirements @@ -11,13 +11,13 @@ # # 2023-02-13 v1.0 ah initial version with check for processes, tcp/ udp # 2023-02-15 v1.1 ah add label +# 2024-06-07 v1.2 ah use iml help and add link to docs # ====================================================================== . "$( dirname $0 )/inc_pluginfunctions" -self_APPNAME=$( basename $0 | tr [:lower:] [:upper:] ) -self_APPVERSION=1.1 +self_APPVERSION=1.2 self=$( basename $0 ) @@ -38,15 +38,8 @@ PROCESSES= # show help function showHelp(){ -cat <<EOF -______________________________________________________________________ - -$self_APPNAME -v$self_APPVERSION - -(c) Institute for Medical Education - University of Bern -Licence: GNU GPL 3 -______________________________________________________________________ + cat <<EOH +$( ph.showImlHelpHeader ) Check if a list requirements regarding processes and network connections do exist. @@ -89,7 +82,7 @@ $self -p httpd -p mysqld -t 22 -t 80 -t 443 -t 3306 $self -l "webservice" -p httpd -t 80 -t 443 -l "database" -p mysqld -t 3306 Use output with multiple sections -EOF +EOH } # show a label to divide the output in multiple sections diff --git a/docs/20_Checks/check_requirements.md b/docs/20_Checks/check_requirements.md new file mode 100644 index 0000000000000000000000000000000000000000..3aff9717d47a8c2fb53e1429ba7729c5c04eb73e --- /dev/null +++ b/docs/20_Checks/check_requirements.md @@ -0,0 +1,89 @@ +# Check_requirements + +## Introduction + +**check_requirements** is a plugin to run different check to show the ability to run an application. You can these checks + +* Check if a process exists +* Check an open udp or tcp port (local or on given host/ ip) + +You can insert a label to create multiple blocks. + +## Requirements + +* `ps` +* `top` + +## Syntax + +```txt +______________________________________________________________________ + +CHECK_REQUIREMENTS +v1.2 + +(c) Institute for Medical Education - University of Bern +Licence: GNU GPL 3 + +https://os-docs.iml.unibe.ch/icinga-checks/Checks/check_requirements.html +______________________________________________________________________ + +Check if a list requirements regarding processes and network +connections do exist. + +The check returns OK if all given requirements match. + +SYNTAX: +check_requirements [-h] [-v] [PARAMETERS] + +OPTIONS: + + -h|--help show this help. + -v|--verbose show more data: processes and port numbers from + /etc/services; add it as first param + +PARAMETERS: + + -c|--connect TYPE TARGET PORT + check if connect to a server to a given port + is reachable + TYPE string one of tcp|udp + TARGET string target host + PORT int port number + -l|--label STRING add label to divide the output in multiple sections + -p|--process STRING check if a process with given regex exists in the + output of 'ps aux' + -t|--tcp PORT check if connect on local tcp port is reachable; + This is a shortcut for '-c tcp localhost PORT' + +The parameters can be repeated multiple times. Checks will be executed in +the given order. + +EXAMPLES + +check_requirements -p httpd -p mysqld -t 22 -t 80 -t 443 -t 3306 + Check if + - a process httpd and a process mysqld exist + - localhost listens to ports 22, 80, 443 and 3306 + +check_requirements -l "webservice" -p httpd -t 80 -t 443 -l "database" -p mysqld -t 3306 + Use output with multiple sections + +``` + +### Parameters + +(none) + +## Examples + +Check a webservice as process and 2 ports: ``check_requirements -p nginx -t 443 -t 80`` + +```txt +OK: 3 Requirement checks - errors: 0 + +STATUS TYPE RESULT +OK process nginx (2 x) +OK connection tcp to localhost on port 443 +OK connection tcp to localhost on port 80 +```