Abstract:
A system and method for providing message suppression and management in a monitoring system is provided including a monitoring module including a message listener configured for receiving messages from monitored modules, and a suppression module configured for determining if an incoming message matches any existing message stored in the monitoring system and increasing a Suppression Interval (SI) exponentially for each same incoming message received at an Event Time which is within a time limit.

Description:
TECHNICAL FIELD 
       [0001]    The present invention generally relates to computerized monitoring systems, and more particularly, to a system and method for managing and suppressing messages received from monitored devices in a monitoring system to reduce excess, redundant messages from being processed by the system. 
       BACKGROUND 
       [0002]    Monitoring systems, e.g., network monitoring systems constantly monitor a computer network for slow or failing system components or modules to ensure that the network system or facility runs at optimal levels, and notify the administrator in case of problems in a facility such as email outages, power supply failures, slow network, or other alarm conditions in a facility. Network monitoring is a vital function in network management. Exemplary networks in which such monitoring might be desirable can include any type of computer network, such as Local Area Network (LAN). 
         [0003]    When performing any type of monitoring, the system can set up a test message or HTTP request to be retrieved to determine the status of the server. What is measured is the response time and availability in the network, as well as the reliability and consistency of that network. There are many tools and software that have automated aspects of network monitoring. For example, in case of a timeout or when a network connection cannot be established usually there is an alert given by the system. An alarm can sound or a message can be sent to the proper authority, e.g., a central monitoring computer. Simple Network Management Protocol (SNMP) is a protocol governing network management and the monitoring of network devices and their functions. SNMP is used in network management systems to monitor network attached devices for problem conditions. It is not necessarily limited to TCP/IP networks. Most monitoring systems contain logs listing messages detailing all the actions and functions of the network and its connected components so that the network administrator can review it in case there are unexpected problems to determine the cause of those problems. 
         [0004]    However, when using monitoring systems, users are often faced with a barrage of messages, many of which are not meaningful, important or necessary, or are redundant. Thousands of repeated messages can be generated, which fills up databases and slows does the overall monitoring system, thus rendering the monitoring system ineffective. The numerous messages can further distract from, impede and sometimes hide the genuinely important and relevant messages outlining issues and problems which must be addressed. Exemplary ways to handle this problem include simply turning off or suppressing broad categories of messages from being displayed, which might run the risk of losing important relevant data and the user not being alerted to a genuine problem in the system. On the other hand, if message suppression is turned off, the log files can lose a great deal of important data because the needed information was overwritten. 
       SUMMARY 
       [0005]    In one embodiment according to the present principles, a system and method is provided for suppressing and, thus, reducing the number of messages displayed to a monitoring user in a monitoring system while ensuring effective notification to a user of any problems/issues in the system in need of resolution. In addition, the user is provided with the ability to view a trail of messages from each device. Thus, efficiency in system monitoring is improved, while unnecessary, redundant or superfluous messages are reduced or eliminated, and users can be provided with a history and view of the rate in which messages are being generated by a monitored device(s). Such is achieved via a logarithmic suppression method in which the user is able to observe the frequency of messages coupled with the suppression. A system and method according to the present principles can be applied to SNMP and/or non-SNMP message suppression. 
         [0006]    In one aspect of the present principles, a method for suppressing messages in a monitoring system is provided comprising the steps of determining if an incoming message matches any existing message stored in the monitoring system, and increasing a Suppression Interval (SI) exponentially for each same incoming message received at an Event Time which is within a time limit. 
         [0007]    According to another aspect, a system for suppressing and managing messages is provided comprising a monitoring module including a message listener configured for receiving messages from monitored modules, and a suppression module configured for determining if an incoming message matches any existing message stored in the monitoring system and increasing a Suppression Interval (SI) exponentially for each same incoming message received at an Event Time which is within a time limit. 
         [0008]    These and other aspects, features and advantages of the present principles will be described or become apparent from the following detailed description of the preferred embodiments, which is to be read in connection with the accompanying drawings. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0009]    In the drawings, wherein like reference numerals denote similar elements throughout the views: 
           [0010]      FIG. 1  is a block diagram of an exemplary message suppression system setup according to an aspect of the present principles; and 
           [0011]      FIG. 2  is a flow diagram of an exemplary method for suppressing messages according to an aspect of the present principles. 
       
    
    
       [0012]    It should be understood that the drawings are for purposes of illustrating the concepts of the present principles and are not necessarily the only possible configurations for illustrating the present principles. 
       DETAILED DESCRIPTION 
       [0013]    A method, apparatus and system for managing and suppressing messages in a monitoring system is advantageously provided according to various aspects of the present principles. Although the present principles will be described primarily within the context of a monitoring system and method, the specific embodiments of the present principles should not be treated as limiting the scope of the invention. It will be appreciated by those skilled in the art and informed by the teachings of the present principles that the concepts of the present principles can be advantageously applied in any other environment in which a computer-related monitoring function is desired. 
         [0014]    The functions of the various elements shown in the figures can be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions can be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which can be shared. Moreover, explicit use of the term “processor” or “controller” should not be construed to refer exclusively to hardware capable of executing software, and can implicitly include, without limitation, digital signal processor (“DSP”) hardware, read-only memory (“ROM”) for storing software, random access memory (“RAM”), and non-volatile storage. Moreover, all statements herein reciting principles, aspects, and embodiments of the invention, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future (i.e., any elements developed that perform the same function, regardless of structure). 
         [0015]    Thus, for example, it will be appreciated by those skilled in the art that any block diagrams presented herein represent conceptual views of illustrative system components and/or circuitry embodying the principles of the invention. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudocode, and the like represent various processes which can be substantially represented in computer readable media and so executed by a computer or processor, whether or not such computer or processor is explicitly shown. 
         [0016]    Advantageously, according to one aspect of the present principles, a system and method for managing and suppressing messages in a network monitoring system with improved efficiency and accuracy is heretofore provided. The system and method according to the present principles can advantageously be incorporated and utilized in any network in need of monitoring actions, such as e.g., performance or security monitoring. 
         [0017]    Referring now to the Figures,  FIG. 1  is a block diagram of an exemplary message management and suppression system setup according to an aspect of the present principles. A monitoring device  104  can be provided embodied, for example, in a CPU (central processing unit), e.g., the central unit in a computer having the logic circuitry that performs the instructions of a computer&#39;s programs. The monitoring device/CPU  104  can be connected to user interface devices, such as a display and keyboard/mouse, etc. and further includes a monitoring module  103  according to an aspect of the present principles configured for performing message management and suppression functions. 
         [0018]    The monitoring module  103  preferably includes at least a message listener  105 , a suppression module  107 , and a message processor  109 , and is configured to communicate with any device  101 ,  102  which is desired to be monitored. Monitored devices can be connected via a network which can comprise, e.g., any type of computer network, such as a local area network (LAN). Generally, the monitoring module  103  is configured to monitor, detect, manage and suppress messages from monitored modules. 
         [0019]    The functions of the various components of the monitoring module  103  will be further discussed with respect to Table 1 and  FIG. 2 . 
         [0020]    Exemplary definitions for terms used in this disclosure are as follows: 
         [0021]    Entry Time (EntT): This is the current system time at which a message is received at a monitoring module (e.g., entered into a hash table). 
         [0022]    Suppression Time Exponent: value of the power in which the Suppression Interval is increased. This value starts at 0 and increases in increments of 1. 
         [0023]    Suppression Interval (SI): This is the interval within which if the same message is received then it will be suppressed. This interval is adjusted if the same message (from the same device) is continuously received by the monitoring module, depending on the frequency of the message. That is, e.g., this interval will be increased exponentially by a power of 2 if the same message is received within a Memory Time (before a Memory Time period has expired) and after any preceding suppression interval has expired. The suppression interval will follow the formula 2n, wherein n=value of a preceding Suppression Time Exponent. 
         [0024]    Suppression Count (SC): The number of suppressed messages for a particular suppression interval. When the suppression interval changes, the suppression count starts again from zero. 
         [0025]    Memory Time (MT): This comprises the period of time a message will be stored or ‘remembered’ in the system (e.g., a hash table). In one embodiment, the MT can be set to a default value. For example, a default MT can be 32 seconds from the Entry Time. The default MT time can be user specified and changed if desired. 
         [0026]    Exit Time (ExitT): This is the time at which the current suppression time will end and if any messages have been suppressed during this interval, then a message has to be sent for processing with the suppression count. In other words, this is the time until which a message will be put on hold to see if the same messages are received. The message will be forwarded for processing at the exit time with the count of suppressed messages in a particular suppression interval. 
         [0027]    Advantageously, the monitoring module  103  provides a message suppression feature which also provides the user with a history and view of the rate in which messages are being generated by monitored modules. This solves the problem of processing thousands of repeated messages filling up databases, which would slow down the overall monitoring system and render the monitoring system ineffective. A system and method according to the present principles also provides a mechanism to deal with bursts of messages, thus reducing their impact on the monitoring of any other elements in the system. 
         [0028]    This is achieved via a logarithmic message suppression algorithm in which certain messages or ‘traps’ are suppressed for intervals of time (&#39;Suppression Intervals&#39;), wherein the Suppression Interval is increased exponentially if a same message is received within certain time limits, i.e., before expiration of a Memory Time (MT) and after a previous Suppression Interval (SI) has expired. A ‘same message’ can comprise an identical message received from a particular monitored module. 
         [0029]    According to one aspect, incoming messages are initially compared to a look-up table or hash table to see if a same message exists. If so, the message can be suppressed in accordance with a suppression algorithm according to the present principles. Thus, not all messages are processed by the system, saving system resources and time, and preventing system slowdowns and filled-up databases. The process of using the hash table to manage and determine the suppression of messages is comparatively much more efficient and faster than processing all the incoming messages. 
         [0030]    The following Table 1 depicts an exemplary application of the suppression algorithm in an instance where the same message is being received from a monitored device once every second for 36 seconds. Here, the Memory Time has been set to an exemplary default time of 32 seconds for illustrative purposes. 
         [0000]    
       
         
               
               
               
               
               
               
               
             
               
               
               
               
               
               
               
             
           
               
                   
               
               
                 Msg 
                 Event 
                   
                 Next Suppress 
                 Suppress 
                 Memory 
                 Begin Process 
               
               
                 # 
                 Time (ET) 
                 Action 
                 Time Exponent 
                 Count 
                 Time 
                 Time (Exit Time) 
               
               
                   
               
             
             
               
                   
               
             
          
           
               
                 1 
                 0 
                 Process 
                 0 
                 0 
                 32 
                 Now 
               
               
                 2 
                 1 
                 Begin Suppress 
                 1 
                 0 
                 ET + 32 
                 ET + 2 0  = 2  
               
               
                 3 
                 2 
                 End Suppress - 
                 — 
                 1 
                 — 
                 — 
               
               
                   
                   
                 (begin process 
               
               
                   
                   
                 Msg #2) 
               
               
                 4 
                 3 
                 Begin Suppress 
                 2 
                 0 
                 ET + 32 
                 ET + 2 1  = 5  
               
               
                 5 
                 4 
                 Suppress 
                 — 
                 1 
                 — 
                 — 
               
               
                 6 
                 5 
                 End Suppress - 
                 — 
                 2 
                 — 
                 — 
               
               
                   
                   
                 (begin process 
               
               
                   
                   
                 Msg #4) 
               
               
                 7 
                 6 
                 Begin Suppress 
                 3 
                 0 
                 ET + 32 
                 ET + 2 2  = 10 
               
               
                 8 
                 7 
                 Suppress 
                 — 
                 1 
                 — 
                 — 
               
               
                 9 
                 8 
                 Suppress 
                 — 
                 2 
                 — 
                 — 
               
               
                 10 
                 9 
                 Suppress 
                 — 
                 3 
                 — 
                 — 
               
               
                 11 
                 10 
                 End Suppress - 
                 — 
                 4 
                 — 
                 — 
               
               
                   
                   
                 (begin process 
               
               
                   
                   
                 Msg #7) 
               
               
                 12 
                 11 
                 Begin Suppress 
                 4 
                 0 
                 ET + 32 
                 ET + 2 3  = 19 
               
               
                 13 
                 12 
                 Suppress 
                 — 
                 1 
                 — 
                 — 
               
               
                 14 
                 13 
                 Suppress 
                 — 
                 2 
                 — 
                 — 
               
               
                 15 
                 14 
                 Suppress 
                 — 
                 3 
                 — 
                 — 
               
               
                 16 
                 15 
                 Suppress 
                 — 
                 4 
                 — 
                 — 
               
               
                 17 
                 16 
                 Suppress 
                 — 
                 5 
                 — 
                 — 
               
               
                 18 
                 17 
                 Suppress 
                 — 
                 6 
                 — 
                 — 
               
               
                 19 
                 18 
                 Suppress 
                 — 
                 7 
                 — 
                 — 
               
               
                 20 
                 19 
                 End Suppress - 
                 — 
                 8 
                 — 
                 — 
               
               
                   
                   
                 (begin process 
               
               
                   
                   
                 Msg #12) 
               
               
                 21 
                 20 
                 Begin 
                 5 
                 0 
                 ET + 32 
                 ET + 2 4  = 36 
               
               
                   
                   
                 Suppress 
                 — 
               
               
                 22 
                 21 
                 Suppress 
                 — 
                 1 
                 — 
                 — 
               
               
                 23 
                 22 
                 Suppress 
                 — 
                 2 
                 — 
                 — 
               
               
                 24 
                 23 
                 Suppress 
                 — 
                 3 
                 — 
                 — 
               
               
                 25 
                 24 
                 Suppress 
                 — 
                 4 
                 — 
                 — 
               
               
                 26 
                 25 
                 Suppress 
                 — 
                 5 
                 — 
                 — 
               
               
                 27 
                 26 
                 Suppress 
                 — 
                 6 
                 — 
                 — 
               
               
                 28 
                 27 
                 Suppress 
                 — 
                 7 
                 — 
                 — 
               
               
                 29 
                 28 
                 Suppress 
                 — 
                 8 
                 — 
                 — 
               
               
                 30 
                 29 
                 Suppress 
                 — 
                 9 
                 — 
                 — 
               
               
                 31 
                 30 
                 Suppress 
                 — 
                 10 
                 — 
                 — 
               
               
                 32 
                 31 
                 Suppress 
                 — 
                 11 
                 — 
                 — 
               
               
                 33 
                 32 
                 Suppress 
                 — 
                 12 
                 — 
                 — 
               
               
                 34 
                 33 
                 Suppress 
                 — 
                 13 
                 — 
                 — 
               
               
                 35 
                 34 
                 Suppress 
                 — 
                 14 
                 — 
                 — 
               
               
                 36 
                 35 
                 Suppress 
                 — 
                 15 
                 — 
                 — 
               
               
                 37 
                 36 
                 End Suppress 
                 — 
                 16 
                 — 
                 — 
               
               
                   
                   
                 (begin process 
               
               
                   
                   
                 Msg #21) 
               
               
                   
               
             
          
         
       
     
         [0031]    When a message is received for the first time (a new message is received from a monitored device) the Suppression Interval is 0 seconds. That is, at Event Time 0 and Msg 1 is received and is immediately processed (Begin Process Time is “now”), since it is the first message ever received from the device and has not yet been processed before. 
         [0032]    If the same message is received within the Memory Time, the Suppression Interval will be 1 second (SI=2 0 ). Any message received within 1 second (2 0 ) will now be suppressed (as the Suppression Interval=1). If the same message is received again after the Suppression Interval (1 second) has elapsed, then the Suppression Interval will be reset to 2 seconds (2 1 ) and so on and so forth. Hence, the Suppression Interval (SI) will follow the formula SI=2n where n is the number of messages received which are not suppressed. The value of n increases in increments of 1. Any messages received within the period of 2 n  will be suppressed. 
         [0033]    The Memory Time (MT) is the period of time in which a message will remain/be stored in a hash table before it is deleted. The Memory Time is configurable by a user (a user can enter any desired value) or a default time can be used. The Memory Time also implies the maximum suppression interval supported. When a message is received for the first time from a monitored device, the Memory Time will be set to a user-defined or default value (e.g., here, 32 secs from the current monitoring module time) and the message will be added to the hash table or map. The message would be sent for further processing. Once the Memory Time is elapsed, that message will be removed from the hash table. If the same message is received again while the old message is already in the hash table, the Memory Time will be set to Entry Time+default MT+Suppression Interval (SI). Any message which is suppressed will also change the MT to: Entry Time+default MT+Suppression Interval. 
         [0034]    The Suppress Time Exponent is increased in increments of 1 at the end of each Suppression Interval. Each Suppression Interval in Table 1 can comprise Event Time 1-2 seconds; 3-5 seconds; 6-10 seconds; 11-19 seconds and 20-36 seconds. 
         [0035]    The Suppress Count is the number of suppressed messages for a particular Suppression Interval (SI). For example, for each of the 5 Suppression Intervals shown in Table 1, the number of suppressed message respectively is: 1, 2, 4, 8, and 16. In Table 1, the total number of messages which are processed (messages displayed to the user) in 36 seconds is 6 messages. 
         [0036]    Table 2 below illustrates another overview of how messages are suppressed, given the same example in which the incoming rate of same messages is 1 per second. 
         [0000]    
       
         
               
               
             
           
               
                   
               
               
                 Suppression Interval 
                   
               
               
                 (seconds) 
                 Comments 
               
               
                   
               
             
             
               
                   0 
                 Trap Processed right away 
               
               
                   1 (2 0 ) 
                 Trap Processed with a delay of 1 second 
               
               
                   2 (2 1 ) 
                   2 msgs suppressed-1 msg displayed to the user 
               
               
                   4 (2 2 ) 
                   4 msgs suppressed-1 msg displayed to the user 
               
               
                   8 (2 3 ) 
                   8 msgs suppressed-1 msg displayed to the user 
               
               
                  16 (2 4 ) 
                  16 msgs suppressed-1 msg displayed to the user 
               
               
                  32 (2 5 ) 
                  32 msgs suppressed-1 msg displayed to the user 
               
               
                  64 (2 6 ) 
                  64 msgs suppressed-1 msg displayed to the user 
               
               
                  128 (2 7 ) 
                  128 msgs suppressed-1 msg displayed to the user 
               
               
                  256 (2 8 ) 
                  256 msgs suppressed-1 msg displayed to the user 
               
               
                  512 (2 9 ) 
                  512 msgs suppressed-1 msg displayed to the user 
               
               
                 1024 (2 10 ) 
                 1024 msgs suppressed-1 msg displayed to the user 
               
               
                 2048 (2 11 ) 
                 2048 msgs suppressed-1 msg displayed to the user 
               
               
                 4096 (2 12 ) 
                 4096 msgs suppressed-1 msg displayed to the user 
               
               
                   
               
             
          
         
       
     
         [0037]      FIG. 2  is a block diagram of an exemplary method flow for message management and suppression in a monitoring system according to an aspect of the present principles. For explanatory purposes, the steps of  FIG. 2  will be discussed in view of the system of  FIG. 1 . 
         [0038]    After Start  201 , a system check is performed (step  202 ) in which it is determined whether any messages have been received from monitored module(s) and/or if there are any messages which are waiting or need to be processed. If a message is determined to be incoming, the message is received from a monitored device at an Event Time (ET) (step  203 ). If a message is waiting to be processed, the message is processed at a Begin Process Time or Exit Time, wherein Exit Time=Event Time (ET)+2 n . After processing, the process returns to step  201  (step  221 ). 
         [0039]    After step  203 , decision block  207  is performed in which it is determined whether the message received is a new message from the monitored device. If yes, a Suppress Time Exponent of 0 is assigned, a Memory Time (MT) is set (e.g., to any desired value or a default value), and the message is processed (step  209 ). The process goes back to step  201 . The Suppress Time Exponent value will typically be set to 0 for each new or different message received from a device. 
         [0040]    If the message is not a new message, it is determined if a Suppression Interval for messages in cache has expired (step  213 ). If yes, the incoming message is suppressed temporarily for a Suppression Interval (SI), where SI=2 n , wherein n=the value of a directly preceding Suppression Time Exponent, and n increases in increments of 1 at the expiration of each Suppression Interval (step  217 ). 
         [0041]    If at the time of an incoming message a previous Suppression Interval has not yet expired, the incoming message is permanently suppressed (i.e., deleted), the Suppress Count value is increased and the process returns to step  201 . Messages which permanently suppressed are not processed by the system, thus saving system resources. 
         [0042]    Although the embodiment which incorporates the teachings of the present principles has been shown and described in detail herein, those skilled in the art can readily devise many other varied embodiments that still incorporate these teachings. Having described preferred embodiments for a system and method for message management and suppression in a monitoring system (which are intended to be illustrative and not limiting), it is noted that modifications and variations can be made by persons skilled in the art in light of the above teachings. It is therefore to be understood that changes can be made in the particular embodiments of the present principles disclosed which are within the scope and spirit of the present principles as outlined by the appended claims. Having thus described the present principles with the details and particularity required by the patent laws, what is claimed and desired protected is set forth in the appended claims.