Network Monitoring Dealer http://soft.risp.ru/netmond/ ------------------------------------------------------ Netmond is an essential and flexible tool for network administrators. Netmond is a daemon providing an interface between low level network stack and a GUI monitoring program or a database. Netmond accumulates network neighborhood data, periodicaly polling network objects by several methods and collecting SNMP traps. Gathered information is parsed so that client programs can comfortably request it via unified interface. Netmond can be used as primary data source and as a notification subsystem in a network monitoring framework. Netmond have a modular architecture. Modules work indepependently but use common task scheduler, session multiplexor, topology correlator, variables pool and output channels. The unique asynchronous polling algorithm does not limit a number of simultaneously controlled objects. Collected data can be saved by variuos methods periodically or conditionally. Also, a client program can request the data dynamically via network. Netmond considers the network as a collection of objects. All objects to be monitored have to be described preliminary in a configuration file. Objects polling works in parallel, not sequentially, like in other systems. Polling requests are distributed over the poll interval as optimally as possible. While executing, Netmond can dynamically determine topological dependences of objects and interfaces and correct polling modes or even block polling for subordinate objects. The Netmond deal the with following object types: * OBJECT - primary monitoring target, an object with IP address; * INTERFACE - network interface, subobject of OBJECT; * BGPAS - autonomous system number, subobject of OBJECT; * BGPPEER - BGP peer for autonomous system, subobject of BGPAS; * ENVTEMP - environment temperature (Cisco only), subobject of OBJECT; * SERVICE - arbitrary network service, subobject of OBJECT; For any OBJECT type instance operator can define: * METHOD - list of polling methods; * TRAP - list of traps methods; * POLLING - polling interval (the time between METHOD calls); * VARIABLE - list of variables, optional; * SAVE - list of data saving methods, optional; * SAVING - data saving interval (the time between SAVE methods calls); * INTERFACE - list of network interfaces, optional; * BGPAS - list of autonomous systems, optional; * ENVTEMP - list of thermal sensors, optional; * SERVICE - list of arbitrary services, optional; If BGPPEER list is not defined for a BGPAS instance, Netmond builds this list automatically. The state of OBJECT is a result of execution of all associated methods from METHOD and/or TRAP lists. Methods are evaluated sequentially until the first error. The order of execution is defined by operator. VARIABLE values and state of subobjects INTERFACE, BGPPEER, ENVTEMP and SERVICE are also evaluated during execution of METHODs and TRAPs. All subobjects have their own SAVE list. Inside a METHOD definition the following protocols can be used: * PING - ICMP echo õ IP with Route Record option for topology discovery; * SNMP - simple SNMP v1 request for specified VARIABLE OID; * ROUTER - multiple SNMP v1 requests, indexing of certain tables, extracting internal VARIABLEs values; * TCP - simple TCP session with text chat capabilities, extracting VARIABLEs values from answers; * UDP - simple UDP sequence with arbitrary chat, extracting VARIABLEs values from answers; * DNS - DNS service check; * RADIUS - RADIUS service check; * TACACS - TACACS+ service check; TRAP collector expects SNMP v1 traps, with BGP Enterprise (RFC1657), Cisco Private Enterprise or an arbitrary Enterprise defined by operator. The protocols are implemented as separate independent modules. New modules could be added in the future. A VARIABLE instance is reffered to by an unique alphanumeric name. The name can be used in the configuration file and for dynamic data request via NetState service. Typically, the list and the names of VARIABLEs are defined by operator. Several predefined VARIABLEs exist for some METHODs. A VARIABLE can be of any of the following types: * integer * float * IP address * string * SNMP OID The actual variable type is automatically determined on value assignment. During Netmond execution the number of associated values for every VARIABLE is maintained - the current value, previous value as well as minimal, maximal, average and delta during the SAVING time interval, if applicable. Netmod provides three SAVE methods to output VARIABLE values: * writing to a file; * pushing to a pipe; * passing as an argument for external program. SAVE methods are evaluated - * periodically, with SAVING interval * on change of VARIABLE value; * by condition - when a logical or expression with VARIABLE value become TRUE NetState service is an independent module of Netmond providing asynchronous network access to current VARIABLE values for client programs. The whole variables pool is presented as a hierarchy of variables and their owners in format: "object!subobject!variable = value". The request could contain an optional regular expression to filter the required output. This feature was introduced for flexible dynamic data transmission to operator's GUI. Please, address all questions, proposals and complains regarding Netmond to netmon@service.risp.ru mail list. To subscribe send a message with body text 'subscribe netmon' to majordomo@service.risp.ru.