Skip to content
Snippets Groups Projects
Select Git revision
  • cff847762a69483615c83bfaa3372aa539ab24d8
  • master default protected
  • simple-task/7248-eol-check-add-node-22
  • 6877_check_iml_deployment
4 results

check_snmp_data.md

Blame
  • 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 / cpu usage / disc usage) and counter values (i.e. network io).

    Syntax

    Start the script without parameter to get the help.

    ______________________________________________________________________
    
    CHECK_SNMP_DATA 
    v0.8
    
    (c) Institute for Medical Education - University of Bern
    Licence: GNU GPL 3
    ______________________________________________________________________
    
    SNMP performance data of Synology storages.
    
    USAGE:
        check_snmp_data [options] -h SNMPTARGET
    
    PARAMETERS:
        -a STRING
            authentication params for snmpwalk/ snmpget to connect to target; 
            default: \"-v2c -c public\" (Snmpv2 with community string \"public\")
        -h SNMPTARGET
            as fqdn or ip address; default: localhost
        -f FILE
            read authentication from config file
            default: "/etc/icinga2/snmp.cfg"
        -m  method         what to show
                           method is one of ...
                              about      About... general device infos                     
                              cpu        CPU usage                                         
                              load       System load                                       
                              mem        Memory status                                     
                              netio      Network IO                                        
                              synodisc   Synology Disc usage                               
                              synotemp   Synology NAS temperature                          
                              synoio     Synology Space IO                                 
        -v                 verbose output
    
    CONFIG FILE:
        The config file can be multiline and has the syntax
        [SNMPTARGET[,target2]]:[auth parameters]
        The auth parameters set the version and all needed values to connect.
        Snmp v2 uses a community string.
        Snmp v3 is highly recommended (you should disable Snmp v2) and needs
        a user and password.
    
    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.

    SNMP authentication configuration

    In a configuration file you can put the authentication parameters for snmpget and snmpwalk.

    By default it reads /etc/icinga2/snmp.cfg - but you can use -f FILENAME to override it.

    sudo cat /etc/icinga2/snmp.cfg 
    #
    # snmp-connections
    # SYNTAX: [hostname]:[params]
    #
    DEFAULT:-v 2c -c public
    server-01.example.com:-v 3 -l authnoPriv -a SHA -u imlmonitor -A password-for-server-01
    server-02.example.com:-v 3 -l authnoPriv -a SHA -u imlmonitor -A password-for-server-02