Checks pack for monitoring Unix/Linux and Windows hosts with SNMP
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
alignak_checks_snmp
.bintray-deb.json
.bintray-rpm.json
.gitignore
.travis.yml
LICENSE
MANIFEST.in
README.rst
package.sh
requirements.txt
setup.py
version.py

README.rst

Alignak checks package for Unix/Linux SNMP checked hosts/services

Checks pack for monitoring Unix/Linux or Windows hosts with SNMP active checks

Most recent PyPi version Join the chat #alignak on freenode.net License AGPL v3

Note that the Windows part for this pack is not yet available.

If you are interested in such a checks pack and if you are monitoring some Windows hosts with SNMP, please contact us (IRC or open an issue in this project)

Installation

The installation of this checks pack will copy some configuration files in the Alignak default configuration directory (eg. /usr/local/share/alignak/etc). The copied files are located in the default sub-directory used for the packs (eg. arbiter/packs for the Nagios legacy cfg files or arbiter/backend-json for the backend importable files).

Note

the default plugins directory used by Alignak is /usr/local/var/libexec and the installed scripts are not located in this place. You must copy them to the right place!

From Alignak packages repositories

More information in the online Alignak documentation. Here is only an abstract...

Debian:

# Alignak DEB stable packages
sudo echo deb https://dl.bintray.com/alignak/alignak-deb-stable xenial main | sudo tee -a /etc/apt/sources.list.d/alignak.list
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv D401AB61

sudo apt-get update
sudo apt install python-alignak-checks-snmp

CentOS:

sudo vi /etc/yum.repos.d/alignak-stable.repo:
   [Alignak-rpm-stable]
   name=Alignak RPM stable packages
   baseurl=https://dl.bintray.com/alignak/alignak-rpm-stable
   gpgcheck=0
   repo_gpgcheck=0
   enabled=1

sudo yum repolist

sudo yum install python-alignak-checks-snmp

Note

for Python 3 version, replace python with python3 in the packages name.

From PyPI

To install the package from PyPI:

# Python 2
sudo pip install alignak-checks-snmp

# Python 3
sudo pip3 install alignak-checks-snmp

From source files

To install the package from the source files:

git clone https://github.com/Alignak-monitoring-contrib/alignak-checks-snmp
cd alignak-checks-snmp
sudo pip install .

Note: using `sudo python setup.py install` will not correctly manage the package configuration files! The recommended way is really to use `pip`;)

Documentation

This checks pack is using the some PERL plugins that are shipped with the checks pack, but some PERL dependencies are necessary.

Install PERL dependencies for PERL plugins

On some Linux distros, you can:

sudo apt-get install libsnmp-perl libnet-snmp-perl

Or you can use the PERL cpan utility:

cpan install Net::SNMP

Configuration

Copy the shipped scripts to the right place for execution:

the /usr/local/share/alignak/etc/arbiter/packs/snmp/resources.cfg file and configure the SNMP community.:

#-- Executable scripts directory
sudo cp /usr/local/share/alignak/libexec/check_snmp*.pl /usr/local/var/libexec

Edit the /usr/local/share/alignak/etc/arbiter/packs/snmp/resources.cfg file and configure the SNMP community.:

#-- Default SNMP community
$SNMPCOMMUNITYREAD$=public

Prepare host

Some operations are necessary on the monitored hosts if SNMP remote access is not yet activated.
# Install local SNMP agent
su -
apt-get update
apt-get install snmpd

# Allow SNMP get - this configuration is intended for tests puuposes
# You should set up a more secure configuration and not allow everyone to see everything :)
vi /etc/snmp/snmpd.conf
=>
   #  Listen for connections from the local system only
   #agentAddress  udp:127.0.0.1:161
   #  Listen for connections on all interfaces (both IPv4 *and* IPv6)
   agentAddress udp:161,udp6:[::1]:161
=>
   # rocommunity public  default    -V systemonly
   rocommunity public

# Restart SNMP agent
sudo systemctl restart snmpd.service

Test remote access with the plugins files:

$ /usr/local/var/libexec/alignak/check_snmp_mem.pl -H 127.0.0.1 -C public -w 80,80 -c 90,95
Ram : 71%, Swap : 58% : ; OK

Alignak configuration

To define the SNMP community to be used per default, edit the resources.cfg file and change the default value.

$SNMPCOMMUNITYREAD$=public

You simply have to tag the concerned hosts with the template linux-snmp.

define host{
    use                     linux-snmp
    host_name               host_snmp
    address                 127.0.0.1
}

The main linux-snmp template declares macros used to configure the launched checks. The default values of these macros listed hereunder can be overriden in each host configuration.

_SNMPCOMMUNITY      $SNMPCOMMUNITYREAD$
_SNMP_MSG_MAX_SIZE  65535

_LOAD_WARN          2,2,2
_LOAD_CRIT          3,3,3
_STORAGE_WARN       90
_STORAGE_CRIT       95
_CPU_WARN           80
_CPU_CRIT           90
_MEMORY_WARN        80,80
_MEMORY_CRIT        95,95
_NET_IFACES         eth\d+|em\d+
_NET_WARN           90,90,0,0,0,0
_NET_CRIT           0,0,0,0,0,0

To set a specific value for an host, declare the same macro in the host definition file.

define host{
    use                     linux-snmp
    host_name               host_snmp
    address                 127.0.0.1

    # Specific values for this host
    # Change warning and critical alerts level for memory
    # Same for CPU, ALL_CPU, DISK, LOAD, NET, ...
    _LOAD_WARN       3,3,3
    _LOAD_CRIT       5,5,5
}

Bugs, issues and contributing

Contributions to this project are welcome and encouraged ... issues in the project repository are the common way to raise an information.