inc_pluginfunctions.md 2.58 KB
Newer Older
Hahn Axel (hahn)'s avatar
Hahn Axel (hahn) committed
1
2
3
4
5
# IML Checks for Icinga / Nagios

[Home](readme.md)

---
Hahn Axel (hahn)'s avatar
Hahn Axel (hahn) committed
6
7
8
9
10
11
12

## Shared functions

### Init

All scripts start with sourcing a shared bash file 

Hahn Axel (hahn)'s avatar
Hahn Axel (hahn) committed
13
``. `dirname $0`/inc_pluginfunctions``
Hahn Axel (hahn)'s avatar
Hahn Axel (hahn) committed
14

Hahn Axel (hahn)'s avatar
Hahn Axel (hahn) committed
15
In that script are several functions starting with prefix **ph.** (=plugin helper)
Hahn Axel (hahn)'s avatar
Hahn Axel (hahn) committed
16
17
18
19
20
21

### Available functions

This is a list in alphabetic order

**ph.abort** [TEXT]
Hahn Axel (hahn)'s avatar
Hahn Axel (hahn) committed
22

Hahn Axel (hahn)'s avatar
Hahn Axel (hahn) committed
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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:

Hahn Axel (hahn)'s avatar
Hahn Axel (hahn) committed
47
``typeset -i iWarnLimit=`ph.getValueWithParam 75 w "$@"` ``
Hahn Axel (hahn)'s avatar
Hahn Axel (hahn) committed
48
49
50

This will set variable iWarnLimit based on CLI parameter -w [value] ... if it does not exist it gets the default 75.

51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
**ph.hasParamoption** PARAMNAME "$@"

check if a letter was used as command line option and return as 0 (=no) or 1 (=yes)

Example:

```bash
bOptHelp=`ph.hasParamoption "h" "$@"`

if [ $bOptHelp -eq 1 -o $# -lt 1 ]; then
    _usage
    exit 0
fi
```

Hahn Axel (hahn)'s avatar
Hahn Axel (hahn) committed
66
67
68
69
70
71
72
73
74
**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	

Hahn Axel (hahn)'s avatar
Hahn Axel (hahn) committed
75
76
Example:

Hahn Axel (hahn)'s avatar
Hahn Axel (hahn) committed
77
``ph.setStatusByLimit $ramUsage $iWarnLimit $iCriticalLimit``
Hahn Axel (hahn)'s avatar
Hahn Axel (hahn) committed
78
79
80
81
82
83
84
85
86
87
88
89
90

**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.

91
**ph.perfdeltaspeed** [VARNAME] [VALUE] [[unit] [isfloat]]
Hahn Axel (hahn)'s avatar
Hahn Axel (hahn) committed
92
93
94

For increasing system counters: get changerate per second since last check.

95
96
97
98
Unit value can be
* s or sec - for seconds
* m or min - for minutes

Hahn Axel (hahn)'s avatar
Hahn Axel (hahn) committed
99
100
Example:

Hahn Axel (hahn)'s avatar
Hahn Axel (hahn) committed
101
102
103
104
105
106
107
108
109
    # 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]]

Hahn Axel (hahn)'s avatar
Hahn Axel (hahn) committed
110
111
112
check if a binary PROG exists in search path (=are installed) - if not then execution stops with showing a warning message and status unknown (using ph.abort).

Example:
Hahn Axel (hahn)'s avatar
Hahn Axel (hahn) committed
113

Hahn Axel (hahn)'s avatar
Hahn Axel (hahn) committed
114
``ph.require bc lsblk``
Hahn Axel (hahn)'s avatar
Hahn Axel (hahn) committed
115