check_snmp_data.md
IML Checks for Icinga / Nagios
check SNMP data
Introduction
check_snmp_data is a plugin for fetching performance data with a set of given OIDs.
It can handle current values (i.e. load or cpu usage) and counter values (i.e. network io).
Syntax
$ check_snmp_data -h HOSTNAME [-C COOMMUNITYSTRING] -v -m METHOD
Parameters
Starting the script without parameters shows a help.
SNMP performance data v1.0
University of Bern * Institute of Medical Education
GNU GPL 3.0
USAGE:
./check_snmp_data -h hostname [-C communitystring] -m method
PARAMETERS:
-h hostname as fqdn or ip address
-C communitystr optional: community string for snmp; default is public
-v verbose output
-m method what to show
method is one of ...
cpu CPU usage
load System load
netio Network IO (experimental)
synotemp Synology NAS temperature
EXAMPLE:
./check_snmp_data -h 192.168.100.12 -v -m cpu
Examples
Get values
./check_snmp_data -h 192.168.100.12 -v -m cpu
Shows the current cpu usage of host 192.168.100.12. The output is something like that:
OK: SNMP performance data :: CPU usage
cpu-user 0 %
cpu-system 0 %
cpu-idle 99 %
|cpu-user=0;;;0; cpu-system=0;;;0; cpu-idle=99;;;0;
The 3 lines with values starting from line 2 are written with -v option only.
The performance data (last line) always will be sent.
Get counter data
./check_snmp_data -h 192.168.100.12 -v -m netio
If there is a check with counter data using -v option you see the counter value and the delta speed. It is calculated by
[current_counter] - [last_counter]
delta_speed = ----------------------------------
time_since_last_check_in_sec
The output looks like that:
OK: SNMP performance data :: Network IO (experimental)
in total: 2669086814 delta: 1 per sec
out total: 2212665608 delta: 0 per sec
|in=1;;;0; out=0;;;0;
Configuration
check_snmp_data is a Bash script. If you open / view it you see a DATA section as comment lines on the top.
It starts with a short description:
# SYNTAX:
# label --> DATA:[method]:label:[text]
# n x data --> DATA:[method]:data:[perf-label]:[oid]:[optional unit]
... followed by the configuration data of the checks.
#
# DATA:cpu:label:CPU usage
# DATA:cpu:data:cpu-user:1.3.6.1.4.1.2021.11.9.0:%
# DATA:cpu:data:cpu-system:1.3.6.1.4.1.2021.11.10.0:%
# DATA:cpu:data:cpu-idle:1.3.6.1.4.1.2021.11.11.0:%
To fetch configuration data the text in $0 is grepped by ^#\ DATA:
.
There is a single line with label to define a short description of the check.
There can be severeal lines with data to define the values to get. Each data line must have a uniq label within the same check.