From e45b8f422a78baf2f7b00f4d94addf9798ead0d2 Mon Sep 17 00:00:00 2001 From: "Hahn Axel (hahn)" <axel.hahn@iml.unibe.ch> Date: Wed, 29 Jul 2020 10:43:05 +0200 Subject: [PATCH] add readme --- inc_pluginfunctions.md | 85 ++++++++++++++++++++++++++++++++++++++++++ readme.md | 14 +++++++ 2 files changed, 99 insertions(+) create mode 100644 inc_pluginfunctions.md create mode 100644 readme.md diff --git a/inc_pluginfunctions.md b/inc_pluginfunctions.md new file mode 100644 index 0000000..79c5dec --- /dev/null +++ b/inc_pluginfunctions.md @@ -0,0 +1,85 @@ +# [IML Checks for Icinga / Nagios](redme.md) + +## Shared functions + +### Init + +All scripts start with sourcing a shared bash file + + . `dirname $0`/inc_pluginfunctions + +In that script are several function starting with prefix **ph.** (=plugin helper) + +### Available functions + +This is a list in alphabetic order + +**ph.abort** [TEXT] +Shows error message and exit with status unknown. + +**ph.exit** + +Use at the end to send performance data and exit plugin with set statuscode + +**ph.getFileAge** [FILE] + +get age of a given file in sec + +**ph.getOS** + +get operating system as lowercase - centos/ debian/ ubuntu ... + +**ph.getOSMajor** + +get OS Major version as integer, i.e. 7 on a CentOS7 + +**ph.getValueWithParam** VALUE PARAMNAME "$@" + +return default value or its override from command line. + +Example: + + typeset -i iWarnLimit=`ph.getValueWithParam 75 w "$@"` + +This will set variable iWarnLimit based on CLI parameter -w [value] ... if it does not exist it gets the default 75. + +**ph.setStatus** [STATUS] + +Set a status with keyword ok, warning, critical, unknown +You can override it as often you want during the script. Based on the last setting the ph.exit function will set the exitcode. + +**ph.setStatusByLimit** VALUE WARNLIMIT CRITLIMIT + +set statuscode by verifying integer(!) value with crtical and warning limit + + ph.setStatusByLimit $ramUsage $iWarnLimit $iCriticalLimit + +**ph.status** [TEXT] + +Show status as Text. + +**ph.execIfReady** [FUNCTION] [ [WAITTIME] [MAXTRIES] ] + +Execute a command and repeat max. MAXTRIES times if it fails. + +**ph.perfadd** [VALUE] [OPTIONS…] + +Add performance data. Their output will be written with ph.exit. So you are free to add perfomance data anywhere within your check script. + +**ph.perfdeltaspeed** [VARNAME] [VALUE] + +For increasing system counters: get changerate per second since last check. + + # speed in byte per sec based on last stored value and its age + iSpeedRead=` ph.perfdeltaspeed "netio-${myinterface}-rx" $iRead` + +**ph.perfshow** + +dump performance data (if u are not using ph.exit) + +**ph.require** [PROG [PROG2]] + +check if a binary PROG exists in search path (=are installed) - if not then execution stops with ph.abort + + ph.reqire bc lsblk + diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..777058c --- /dev/null +++ b/readme.md @@ -0,0 +1,14 @@ +# IML Checks for Icinga / Nagios + +## Introduction + +IML - we are the Institute for Medical Education at university in Bern, Switzerland. This is a collection of our checks. They are used on Linux systems (Debian, CentOS, Ubuntu) and written in Bash using some shared functions. + +## License + +* Licence: GNU GPL 3.0 +* Source: https://git-repo.iml.unibe.ch/iml-open-source/icinga-checks + +## Scripts + +[[inc_pluginfunctions.md]] \ No newline at end of file -- GitLab