Monday, October 23, 2006

SNMP - Simple Is Not Easy

Simple Is Not Easy
Simple is not always Easy, and SNMP is a good example for this. In this blog I will try to broach on a few simple things about SNMP, and I hope you will find this introduction useful.

SNMP stands for - and is one of the most widely spread internet management protocols. It is based on UDP (though there exists an RFC defining SNMP over TCP) and uses BER for encoding.

SNMP is an internet technology - specified by means of RFCs (Requests For Comments), which are issued through the Internet Engineering Task Force (IETF)

SNMP defines both how to structure management information (data model exposed for management), and how to access it (protocol). According to SNMP, the management information is structured into MIBs (Management Information Bases). A MIB is defined using a formal language called Structure of Management Information (SMI) - whose syntax uses a subset of ASN.1.

So when we speak of SNMP we usually mean two things:

  • The protocol itself - of which there exists three main versions: SNMPv1, SNMPv2c, and SNMPv3 .
  • The Structure of Management Information - which is the formal language in which MIBs are specified, and of which there exists two versions, SMIv1 and SMIv2

The basic verbs of the SNMP protocol are GET, SET, and GETNEXT (SNMPv2 adds GETBULK). An SNMP entity can also send asynchronous events (a TRAP in SNMPv1, a NOTIFICATION or an INFORM in SNMPv2). What you GET and SET are individual variables of simple types (to simplify, strings/integers/enumerations) which can be either scalar - or located in tables.
These are the simple things about SNMP. Rest assure, I will not enter into more details today. But if you want to dig it further, here are a few additional links that will help you:



I can also recommend some good books on SNMP:

  • Understanding SNMP MIBs, by Perkins and McGinnis, published by Prentice Hall
  • Practical Guide to SNMPv3 and Network Management by David Zeltserman, Published by Prentice Hall.

Now at this point, you're probably wondering why you're reading this blog, and what all of this has to do with JMX, Java, etc...
Well the thing is that starting with , and following with , Java SE now comes with a built-in SNMPv2 agent, that makes it possible to access the data exposed by the through SNMP.
As we have seen, SNMP requires that the data exposed for management is described in a MIB - and the MIB that describes the data of the Management and Monitoring of the JVM is the .



0 Comments:

Post a Comment

<< Home