# Monitoring Plugin
This is a simple plugin for monitoring your IoT Open devices in Op5 Monitor (opens new window), Icinga (opens new window), Naemon (opens new window), Nagios (opens new window), Shinken (opens new window), Sensu (opens new window) and other monitoring applications that uses Nagios style plugins.
It works well stand alone as well as via NRPE. Thresholds might be given as arguments to the plugin or set globally in IoT Open as meta data on the functions.
The plugin fetches the latest known value from IoT Open and may use threshold for alerting set either in the monitoring software or in IoT Open as metadata on functions.
# Prerequisites
You need an API-Key to access your data in IoT Open.
# Plugin syntax
$ ./check_lynx.sh -h
check_lynx v0.9
Monitor values of functions in IoT Open Lynx platform
Usage:
check_lynx -u <url> -k <api-key> -i <installation_id> -f <function_id> [ options ]
Options:
-h, --help
Print this help
-u, --url
URL to lynx, e.g. https://lynx.iotopen.se
-k, --api-key
API-Key to Lynx (get it from user profile in Lynx
-i, --installation
Installation id from Lynx
-f, --function
Function id from Lynx
-a, --max-age
Maximal age of the value in seconds. Renders CRITICAL if too old. (optional)
-w, --warning
Warning threshold (optional)
-c, --critical
Critical threshold (optional)
-m, --min
Minimal expected value
-M, --man
Maximal expected value
Thresholds:
The thresholds can be given as arguments or set as metadata in Lynx. They should
then have the same names as the long arguments. Like below:
max-age,warning,critical,min and max
If they are given both in Lynx and as parameters as above then the parameters will
be used.
If only critical or warning is set it will raise an alarm if higher or equal to
the threshold.
If both warning and critical is used it will raise an alarm above or equal if
critical is higher than warning and below if warning is higher than critical.
Min and max values:
The min and max values are only written in perfdata.
Questions:
Contact IoT Open at support@iotopen.se
# Thresholds
The thresholds may be set in Lynx as metadata with the same name as the long option. Or given as parameters. The parameters have precedence over metadata in Lynx.
If the max-age is set it will always render CRITICAL if the value is too old according to its timestamp. This is good for alerting when some sensor stops reporting or for some reason is offline.
# Metadata in Lynx the plugin uses
The plugin uses the following FunctionX metadata in Lynx:
Metadata | Use | Example | Comment |
---|---|---|---|
name | Naming output | Engine room temperature | |
type | Naming perfdata | humidity | |
format | Formatting output | %.1f | Printf format string (optional) |
min | Sent in perfdata | 0 | (optional) |
max | Sent in perfdata | 100 | (optional) |
warning | Used as threshold | 30 | (optional) |
critical | Used as threshold | 50 | (optional) |
max_age | Used as stale check | 600 | (optional) |
Se the help text above for explanation of thresholds.
# Test run the plugin
$ ./check_lynx -k 9a9044d698e0cbfe03e59d31f74e851f -u https://lynx.iotopen.se -w 40 -c 50 -i 1 -f 1
Lynx WARNING: Engine Room Temperature: 43|temp=43;40;50;;
$ ./check_lynx -k 9a9044d698e0cbfe03e59d31f74e851f -u https://lynx.iotopen.se -i 1 -f 1 -w 50 -c 60
Lynx OK: Engine Room Temperature: 44|temp=44;50;60;;