WebNMS SNMP API - Go Edition is a comprehensive development toolkit for developing SNMP (Simple Network Management Protocol) based network management applications using Go language. It offers extensive and powerful libraries in Go to build real-time applications to manage and monitor network devices such as routers, servers, switches etc., at ease.
It provides various APIs to perform all the SNMP operations like Get, Get-Next, Set, Get-Bulk supporting all the three versions of SNMP viz., SNMPv1, SNMPv2c, and SNMPv3. Moreover, SNMP Manager application built using the Go SNMP API can receive SNMP Traps, Inform messages (notifications) with valid authenticity from agent configured network devices.
Using these APIs, one can develop a highly flexible, reliable and scalable applications with minimal development time. It also provides APIs for developing agent applications that can run in any managed devices to respond to the queries from manager applications. It offers libraries at two levels such as High-Level and Low-Level APIs to aid the developers in application development based on the development time that they can possibly invest and required customization levels.
Low-Level APIs provide more control over the resources and easy plugging of user required custom implementations, whereas High-Level APIs take care of the low-level resource management and provides the user with out-of-the-box support for performing all the SNMP operations with minimum effort. It abstracts the finer details of implementation of SNMP standards, thereby making it relatively easier for developers to develop SNMP applications.
||Built on top of open source programming language Go, providing more flexibility and reliability in building NMS softwares.|
|Multi-Version support||SNMPv1, SNMPv2c, and SNMPv3 based communication.|
|SNMPv3 security||Supports HMAC-SHA-96, HMAC-MD5-96, CBC-DES, CBC-3DES and 128,192,256 bit AES encryption algorithms.|
|Simple||High-level api for easy application development.|
|Database Support||Offers scalability by storing SNMPv3 configuration data in any relational database such as, MySQL and Oracle etc.|
|Custom Transport Protocols support||Supports UDP/TCP transport protocols out-of-the-box and option provided for plugging users’ required custom protocols easily.|
|Go Executables||Provides command line go executables to perform SNMP operations such as SNMP GET, SNMP GET-NEXT, SNMP SET, SNMP GET-BULK, SNMP TRAP, SNMP INFORM, and SNMP WALK with the remote agent.|
WebNMS SNMP API – Go Edition provides set of libraries in go language for developing SNMP based network management applications. It consists of many layers of API built over one another, providing developers with the various access levels in their application development. Different layers are Low-Level APIs, High-Level APIs, transport provider etc., offering different functionalities. For instance, Transport Provider is the base layer of the API allowing the SNMP packets to be transported through wire, whereas High-Level APIs is the uppermost layer provides users with more sophisticated types/methods for performing SNMP operations at ease. Based on the expertise level in SNMP, user can either directly use the High-Level APIs or the Low-Level APIs.
SNMP Engine: Engine is the core of SNMPv3 architecture. It comprises of all the SubSystems defined in RFC 3411 such as Dispatcher, Message Processing SubSystem, Security SubSystem and Transport SubSystem. Each SubSystem holds a set of models for providing different SNMP services. For instance, SecuritySubSystem contains User-based security model (USM) as one of the security models for performing security related operations on incoming/outgoing messages.
Low-Level API: It comprises of the core implementations of the SNMP framework. It facilitates communication with remote SNMP enabled devices and helps in performing all the SNMP operations like Get, Get-Next, Set etc., It defines SNMP Variables like SnmpOID, SnmpInteger etc., as per ASN.1 standard, and SnmpMessages required for all three versions. These low-level APIs provide users with complete control of managing all the resources such as SnmpAPI, SnmpSession and the underlying transport. SnmpAPI is the root type of the Low-Level API and it holds the single instance of SNMP Engine framework (mentioned above), thereby representing a single SNMP entity.
High-Level API: These APIs are built on top of the Low-Level APIs hiding the internal details of SNMP implementation and allowing users to develop applications with minimal development time. This layer manages the low level resources and also shares the same among other High-Level APIs for efficient resource management. It provides various SNMP operations out-of-the-box. It abstracts the finer details of implementation of SNMP standards, thereby making it easier for developers to develop SNMP applications relatively easy.
Transport Provider: Transport provider framework (Transport SubSystem) is the lowermost layer of the API which helps us in sending and receiving SNMP packets as stream of bytes. It is part of the engine architecture as per RFC5590. This layer implements the UDP and TCP transport level protocols by default to establish communication with the remote server. Low-Level API uses this transport provider for SNMP communication. User can also provide their custom implementation of Transport Provider and plug the same in SNMP Engine.
This guide gives an overview on WebNMS SNMP API – Go Edition, its architecture, and
the technologies on which it is built.
It also gives the technical details for developing lightweight SNMP-based network management applications, specifically for SNMPv1, SNMPv2c, and SNMPv3.
This document gives you the complete API specification for WebNMS SNMP API Go Edition.