SNMP-NMS
Contents
Introduction
Simple Network Management Protocol (SNMP) is an Internet Standard protocol for collecting and organizing information about managed devices on IP networks and for modifying that information to change device behavior. Devices that typically support SNMP include cable modems, routers, switches, servers, workstations, printers, and more.
An SNMP-managed network consists of three key components:
- Managed devices
- Agent – software which runs on managed devices
- Network management station (NMS) – software which runs on the manager
EdgeSense SNMP-NMS
EdgeSense SNMP-NMS is a plug-in of RMM agent, aim to collect object data from SNMP managed device.
Feature:
- Support SNMPv1, SNMPv2c.
- support object type: OCTET STRING, Integer32, Integer, Unsigned32
- Currently support up-link object's value to WISE-PaaS , not support down-link from WISE-PaaS.
How to
Software Installation for Ubuntu 16.04
Install Steps:
1. Install OS - Ubuntu 16.04 (ex: ubuntu-16.04.5-desktop-amd64.iso)
2. Install MQTT Broker
Copy MQTT Broker install package (ex: MQTTBrokerSetup-1.0.4-Ubuntu_16.04-x86_64.run) to gateway.
$ sudo chmod +x MQTTBrokerSetup-1.0.4-Ubuntu_16.04-x86_64.run $ sudo ./MQTTBrokerSetup-1.0.4-Ubuntu_16.04-x86_64.run
3. Install EdgeSense SNMP-NMS
Copy SNMP-NMS install package (ex: SNMP-NMS-1.0.0-Ubuntu_16.04-x86_64.run) to gateway.
$ sudo chmod +x SNMP-NMS-1.0.0-Ubuntu_16.04-x86_64.run $ sudo ./SNMP-NMS-1.0.0-Ubuntu_16.04-x86_64.run
After installation, service will be autorun.
NOTE: Please wire the gateway to Internet with Network cable before install, it is necessary to install the dependencies.
Uninstall Steps:
$ sudo /usr/local/EdgeSense/SNMP-NMS/uninstall.bash
4. Install WISE-PaaS agent
SNMP object list
Because MIBs file is not good to load in application, EdgeSense SNMP-NMS use JSON file to describe objects. Follow below format to describe objects you want to monitor in one SNMP device.
In Ubuntu 16.04 , SNMP object list file need to be put in this folder /usr/local/EdgeSense/SNMP-NMS/config/
Format:
{ "object-1 name": {
} |
name
- define object name
oid
- define object identifier
- This oid should be a unique instance number to the end of the OID, so that the EdgeSense SNMP-NMS can distinguish between the different objects.
type
- type follow SNMP object type, can be assigned to OCTET STRING, Integer32, Integer, Unsigned32
min
- define minimum value for object
max
- define maximum value for object
maxaccess
- maxaccess follow SNMP object maxaccess, can be assigned to read-only , read-write
Example:
{ "firmwareVersion": { "name": "firmwareVersion", "oid": "1.3.6.1.4.1.10297.101.1.2.1.1.3.1", "syntax": { "type": "OCTET STRING", "constraints": { "size": [ { "min": 1, "max": 16 } ] } }, "maxaccess": "read-only" }, "doValue1": { "name": "doValue1", "oid": "1.3.6.1.4.1.10297.101.1.6.1.1.11.1", "syntax": { "type": "OCTET STRING", "constraints": { "size": [ { "min": 1, "max": 8 } ] } }, "maxaccess": "read-write" }, "doValue2": { "name": "doValue2", "oid": "1.3.6.1.4.1.10297.101.1.6.1.1.11.2", "syntax": { "type": "OCTET STRING", "constraints": { "size": [ { "min": 1, "max": 8 } ] } }, "maxaccess": "read-write" } } |
Turn MIBs file into JSON documentation
Because MIBs file is not good to load in application, EdgeSense SNMP-NMS use a tool from PySMI to turn MIBs file into json file.
About installing PySMI or more detailed, please refer to this.
Usage:
mibdump.py --generate-mib-texts --destination-format json YOUR_MIB_FILE
example:
mibdump.py --generate-mib-texts --destination-format json ./device1.mib
Then a json file will be generated.
If it fail to convert your mib file to json, please make sure your MIBs file is valid. You may validate your MIBs file in the below website.
You may need to fix severity level-1 error. For example: unknown object identifier.
- MIB Validate (from SimpleWeb)
You can edit this json file to add/remove object you want to poll from several SNMP agents.
Before upload this json file into your system, please make sure this json file is valid. You may paste json file's content in the below website to verify that is valid json file.
At the end, put this json file in folder /usr/local/EdgeSense/SNMP-NMS/config
Configuration
In Ubuntu 16.04
You can modify config file by vi
$ sudo vi /usr/local/EdgeSense/SNMP-NMS/config/snmp_config.json
or modify config file by gedit
$ sudo gedit /usr/local/EdgeSense/SNMP-NMS/config/snmp_config.json
Once config is changed , please restart service in order to apply new setting.
Config File as:
{ "devicelist" : [ { ] |
interval
- miniimum value is 5 second, maximum value is 600 second.
- default value is 20 second
- If setting is greater than maximum value or is less than minimum value, it will use default value.
Config for a SNMP Agent device include bellow parameter:
devid
- device id is an identifier, a prefix for SNMP object.
- Sensor ID will look like devid/object in the WISE-PaaS, ex: device1/firmwareVersion
ip
- assign IP of the SNMP Agent device
port
- assign port of the SNMP Agent device
snmpver
- assign SNMP ver of the SNMP Agent device
- value can be assigned to "1" or "2c"
community
- assign SNMP community of the SNMP Agent device
objectfile
- assign object file of the SNMP Agent device, converted by pysmi.
- need to be put on this folder /usr/local/EdgeSense/SNMP-NMS/config
Service control
In Ubuntu
Check if service is running:
$ sudo systemctl status SNMP-NMS.service
Restart service:
$ sudo systemctl restart SNMP-NMS.service
Start service:
$ sudo systemctl start SNMP-NMS.service
Stop service:
$ sudo systemctl stop SNMP-NMS.service
Tools
PySMI
PySMI is a open source tool, we use it to turns MIBs into JSON documents.
Installation step:
$ sudo apt install python-pip $ pip install pysmi
For more detailed information, please refer to PySMI official website.
Reference: