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/check_sensuplugins b/check_sensuplugins deleted file mode 100755 index 0b1f8eab5c17c59843edd72920f1a865ff7a2cd4..0000000000000000000000000000000000000000 --- a/check_sensuplugins +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/bash -# ====================================================================== -# -# SENSU CHECK FOR VALIDITY OF PLUGIN LINKS -# -# ---------------------------------------------------------------------- -# -# ---------------------------------------------------------------------- -# 2018-07-17 first lines -# 2022-10-21 v1.1 <axel.hahn@unibe.ch> remove grep: warning: stray \ before white space -# ====================================================================== - -. `dirname $0`/inc_pluginfunctions - - -tmpfile=/tmp/check_sensuplugins.out - -# ---------------------------------------------------------------------- -# functions to fetch infos by status -# ---------------------------------------------------------------------- - -function _getStatus(){ - cat $tmpfile | grep '^\.\.\.' | grep " $1\:" -} - -function getTotal(){ - _getStatus '.*' -} -function getOK(){ - _getStatus "OK" -} -function getWarnings(){ - _getStatus "WARNING" -} -function getErrors(){ - _getStatus "ERROR" -} - - -# ---------------------------------------------------------------------- -# MAIN -# ---------------------------------------------------------------------- -(/usr/local/bin/link-sensu-checks.sh -i ; /usr/local/bin/link-sensu-checks.sh -f) >$tmpfile - -# --- output of errors and warnings -echo --- Check sensu plugins -getErrors -getWarnings - -# --- show status -typeset -i iTOTAL=`getTotal | wc -l` -typeset -i iOK=`getOK | wc -l` -typeset -i iERRORS=`getErrors | wc -l` -typeset -i iWARNINGS=`getWarnings | wc -l` - -echo --- Status: -echo "total : $iTOTAL" -echo "Errors : $iERRORS" -echo "Warnings: $iWARNINGS" -echo "OK : $iOK" - -rm -f $tmpfile - -# --- return with wanted exitcode -if [ $iERRORS -gt 0 ]; then - echo exit with error. - exit $EXIT_CRITICAL -fi - -if [ $iWARNINGS -gt 0 ]; then - echo exit with warning - exit $EXIT_WARNING -fi - -echo exit with OK -exit $EXIT_OK - -# ---------------------------------------------------------------------- diff --git a/docs/20_Checks/_index.md b/docs/20_Checks/_index.md index 83b0836dfa26f038d9b4f10e64bacdf1755db91d..0a06f3aae7377591d60b81c882f2fdc706cfade9 100644 --- a/docs/20_Checks/_index.md +++ b/docs/20_Checks/_index.md @@ -46,8 +46,7 @@ There is one include script used by all checks: * [check_psqlserver](check_psqlserver.md) * [check_rearbackup](check_rearbackup.md) * [check_reboot_required](check_reboot_required.md) -* check_requirements -* check_sensuplugins +* [check_requirements](check_requirements.md) * check_smartstatus * [check_snmp_data](check_snmp_data.md) * check_snmp_printer 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 +```