Mid Level Manager MIB and SNMP Script Language
David Levi
SNMP Research
levi@snmp.com
History
- Language designed for XNETMON
~late 1992
- Customers requested language without GUI
~mid 1993
Created Mid-Level Manager
- Customers requested a GUI to help configure MLM
~early 1994
Created Mid-Level Manager config tool
Goals
- Ease burden of management stations
- Reduce/localize network traffic
- Expand domain of manageable devices
- Automatic corrective behaviors
Architecture
_________________________________________
| ________ Other |
| ____ ____ | MLM | ____ Mgmt |
| | || | | config | | | Apps |
| | || | | tool | | | ----- |
NMS | |____||____| |________| |____| |
| \ \ | / |
| \ \ ______|______ / |
| \____| Brass |/ |
| | Server | |
| |_____________| |
|___________________|_____________________|
|
___________________|_____________________
| ________________ |
| | Emanate | |
| | Master | |
| | Agent | |
| Other |________________| |
| Subagents / | \ |
| ____ / | \ ____ |
MLM | | |__/ _____|____ \___| | |
| | | | | | | |
| |____| | | |____| |
| |---MLM----| |
| ____ | | ____ |
| | | |__________| | | |
| | | | | | |
| |____| _____|____ |____| |
| \ | Brass | / Other |
| \____| Server |____/ Mgmt |
| |__________| Apps |
|___________________|_____________________|
/ / | \ \
/ / | \ \
/ | | | \
__ __ __ __ __
|| || || || ||
-- -- -- -- --
Agents
Architecture
_____________
| Master |
| Agent |
|_____________|
|
|
__________________|____________________
| Emanate SADK Library |
|_______________________________________|
| MLM MIB |
_ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _
| Script Engine Library |
|_______________________________________|
| Brass MADK Library |
|_______________________________________|
|
|
______|______
| Brass |
| Server |
|_____________|
MLM MIB
3 Tables:
- mlmScriptTable
- mlmCompileTable
- mlmResultTable
mlmScriptTable used to upload/download Scripts between the
MLM and manager, e.g., the MLM config tool
- Scripts are stored as Octet Strings
mlmCompileTable used for configuring and running scripts
- can contain filename of script or
pointer to mlmScriptTable
- can specify arguments to pass to a script
- can specify frequency to run script periodically
- can command script to be run once
mlmResultTable used to make result of running script available
in MIB variables
Script Language
- All variables are varbind lists
- Basic control structures (if, while)
- Various logical/mathematical operators
- Language can be extended by registering C functions with
script library
- Scripts run asynchronously
Basic Script Capabilities
- SNMP operations (get, set, etc.)
result assigned to script variable
- Send trap or M2M inform request
- Log data to a file
- Fork, call, or jump to another script
- Launch another application
Experience
Have written many MLM applications, for example:
- Intruder detection script
- uses RMON to capture source addr of packet
- script checks if packets are from a "trusted" device
- if not, script issues a warning
(should be a set request, send e-mail, etc.)
- Audio counter-attack script
- monitors audio MIB for noise level
- if level is above threshold, turn on UPS with set
- if level stays above threshold, do set to play back the noise
- M2M-like scripts
- retrieves several MIB variables, possibly from several agents
- combines the variables using a mathematical expression
- if a threshold is crossed, send an inform request
Future Directions
- MLM MIB
Separate mlmCompileTable into an "available scripts" table and
a "script execution" table
- Explore alternative means for NMS applications to get results
from MLM
- Define useful extensions to script language
- Harmonization between script language and SNMP-TCL