Internet Draft Mail Monitoring MIB MADMAN Working Group June 18, 1993 Expires: December 18, 1993 Status of this Memo This document is an Internet Draft. Internet Drafts are working documents of the Internet Engineering Task Force (IETF), its Areas, and its Working Groups. Note that other groups may also distribute working documents as Internet Drafts. Internet Drafts are draft documents valid for a maximum of six months. Internet Drafts may be updated, replaced, or obsoleted by other documents at any time. It is not appropriate to use Internet Drafts as reference material or to cite them other than as a "working draft" or "work in progress." Please check the I-D abstract listing contained in each Internet Draft directory to learn the current status of this or any other Internet Draft. Abstract This document extends the basic Network Services Monitoring MIB to allow monitoring of Message Transfer Agents (MTAs). MTA Objects If there are one or more MTAs on the host, the following mta group may be used to monitor them. Any number of the MTAs on a host may be monitored. Each MTA is dealt with as a separate application and has its own applTable entry in the Network Services Monitoring MIB. Message Flow Model A general model of message flow inside an MTA has to be presented before a MIB can be described. Generally speaking, message flow occurs in four steps: (1) Messages are submitted to the MTA by User Agents, Message Stores, other MTAs, and gateways. (2) The "next hop" for the each message is determined. This is simply the destination the message is to be delivered to; it may or may not be the final destination of the message. Multiple "next hops" may exist for a single message (as a result of either having multiple recipients or distribution list expansion); this may make it necessary to duplicate messages. (3) Messages are converted into the format that's appropriate for the next hop. (4) Messages are delivered to the appropriate destination, which may be a User Agent, Message Store, another MTA, or another gateway. Storage of messages in the MTA occurs at some point during this process. However, it is important to note that storage may occur at different and possibly even multiple points during this process. For example, some MTAs expand messages into multiple copies as they are received. In this case (1), (2), and (3) all occur prior to storage. Other MTAs store messages precisely as they are received and perform all expansion and conversion processing during retransmission processing. So here only (1) occurs prior to storage. This leads to a situation where, in general, a measurement of messages received may not equal a measurement of messages in store, a measurement of messages stored may not equal a measurement of messages retransmitted, or both. MTA-MIB DEFINITIONS ::= BEGIN IMPORTS OBJECT-TYPE FROM RFC-1212 experimental, Counter, Gauge FROM RFC1155-SMI DisplayString FROM RFC1213-MIB applIndex, applProtoID FROM APPLICATION-MIB; mta OBJECT IDENTIFIER ::= {experimental xxx} mtaTable OBJECT-TYPE SYNTAX SEQUENCE OF MTAEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "The table holding information specific to an MTA." ::= {mta 1} mtaEntry OBJECT-TYPE SYNTAX MTAEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "The entry associated with each MTA." INDEX {applIndex} ::= {mtaTable 1} MTAEntry ::= SEQUENCE { mtaSubmittedMessages Counter, mtaStoredMessages Gauge, mtaDeliveredMessages Counter, mtaSubmittedVolume Counter, mtaStoredVolume Gauge, mtaDeliveredVolume Counter, mtaSubmittedRecipients Counter, mtaStoredRecipients Gauge, mtaDeliveredRecipients Counter } mtaSubmittedMessages OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory DESCRIPTION "The number of messages submitted since MTA initialization." ::= {mtaEntry 1} mtaStoredMessages OBJECT-TYPE SYNTAX Gauge ACCESS read-only STATUS mandatory DESCRIPTION "The total number of messages currently stored in the MTA." ::= {mtaEntry 2} mtaDeliveredMessages OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory DESCRIPTION "The number of messages delivered since MTA initialization." ::= {mtaEntry 3} mtaSubmittedVolume OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory DESCRIPTION "The total volume of messages submitted since MTA initialization, measured in kbytes." ::= {mtaEntry 4} mtaStoredVolume OBJECT-TYPE SYNTAX Gauge ACCESS read-only STATUS mandatory DESCRIPTION "The total volume of messages currently stored in the MTA, measured in kbytes." ::= {mtaEntry 5} mtaDeliveredVolume OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory DESCRIPTION "The total volume of messages delivered since MTA initialization, measured in kbytes." ::= {mtaEntry 6} mtaSubmittedRecipients OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory DESCRIPTION "The total number of recipients specified in all messages submitted since MTA initialization." ::= {mtaEntry 7} mtaStoredRecipients OBJECT-TYPE SYNTAX Gauge ACCESS read-only STATUS mandatory DESCRIPTION "The total number of recipients specified in all messages currently stored in the MTA." ::= {mtaEntry 8} mtaDeliveredRecipients OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory DESCRIPTION "The total number of recipients specified in all messages delivered since MTA initialization." ::= {mtaEntry 9} -- MTAs typically group inbound submissions, queue storage, and -- outbound deliveries in some way. In the most extreme case -- information will be maintained for each different entity that -- submits messages and for each entity the MTA stores messages for -- and delivers messages to. Other MTAs may elect to treat all -- submissions equally, all queue storage equally, all deliveries -- equally, or some combination of this. -- In any case, a grouping abstraction is an extremely useful for -- breaking down the activities of an MTA. For purposes of labelling -- this will be called a "group" in this MIB. -- The term "channel" is often used in MTA implementations; channels -- are usually, but not always, equivalent to a "group". However, -- this MIB does not use the term "channel" because there is no -- requirement that an MTA supporting this MIB has to map its -- "channel" abstration one-to-one onto the MIB's group abstration. groupTable OBJECT-TYPE SYNTAX SEQUENCE OF GroupEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "The table holding information specific to each MTA group." ::= {mta 2} groupEntry OBJECT-TYPE SYNTAX GroupEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "The entry associated with each MTA group." INDEX {applIndex, groupIndex} ::= {groupTable 1} GroupEntry ::= SEQUENCE { groupIndex INTEGER, groupSubmittedMessages Counter, groupRejectedMessages Counter, groupStoredMessages Gauge, groupDeliveredMessages Counter, groupSubmittedVolume Counter, groupStoredVolume Gauge, groupDeliveredVolume Counter, groupSubmittedRecipients Counter, groupStoredRecipients Gauge, groupDeliveredRecipients Counter, groupQueuedMtaAssociationIndex INTEGER, groupOldestMessageStored TimeTicks, groupInboundAssociations Gauge, groupOutboundAssociations Gauge, groupAccumulatedInboundAssociations Counter, groupAccumulatedOutboundAssociations Counter, groupLastInboundActivity TimeTicks, groupLastOutboundActivity TimeTicks, groupRejectedInboundAssociations Counter, groupFailedOutboundAssociations Counter, groupInboundRejectionReason DisplayString, groupOutboundConnectFailureReason DisplayString, groupScheduledRetry TimeTicks, groupMailProtocol OBJECT IDENTIFIER, groupName DisplayString } groupIndex OBJECT-TYPE SYNTAX INTEGER (1..2147483647) ACCESS read-only STATUS mandatory DESCRIPTION "The index associated with a group for a given MTA." ::= {groupEntry 1} groupSubmittedMessages OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory DESCRIPTION "The number of messages submitted to this group since MTA initialization." ::= {groupEntry 2} groupSubmittedMessages OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory DESCRIPTION "The number of messages rejected by this group since MTA initialization." ::= {groupEntry 3} groupStoredMessages OBJECT-TYPE SYNTAX Gauge ACCESS read-only STATUS mandatory DESCRIPTION "The total number of messages currently stored in this group's queue." ::= {groupEntry 4} groupDeliveredMessages OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory DESCRIPTION "The number of messages delivered by this group since MTA initialization." ::= {groupEntry 5} groupSubmittedVolume OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory DESCRIPTION "The total volume of messages submitted to this group since MTA initialization, measured in kbytes." ::= {groupEntry 6} groupStoredVolume OBJECT-TYPE SYNTAX Gauge ACCESS read-only STATUS mandatory DESCRIPTION "The total volume of messages currently stored in this group's queue, measured in kbytes." ::= {groupEntry 7} groupDeliveredVolume OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory DESCRIPTION "The total volume of messages delivered by this group since MTA initialization, measured in kbytes." ::= {groupEntry 8} groupSubmittedRecipients OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory DESCRIPTION "The total number of recipients specified in all messages submitted to this group since MTA initialization." ::= {groupEntry 9} groupStoredRecipients OBJECT-TYPE SYNTAX Gauge ACCESS read-only STATUS mandatory DESCRIPTION "The total number of recipients specified in all messages currently stored in this group's queue." ::= {groupEntry 10} groupDeliveredRecipients OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory DESCRIPTION "The total number of recipients specified in all messages delivered by this group since MTA initialization." ::= {groupEntry 11} groupQueuedMtaAssociationIndex SYNTAX INTEGER (0..2147483647) ACCESS read-only STATUS mandatory DESCRIPTION "Reference into association table to allow correlation of this group's active association with the association table. If there is no active association for this group this value should be 0." ::= {groupEntry 12} groupOldestMessageStored SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "The age of the oldest message in this group's queue." ::= {groupEntry 13} groupInboundAssociations OBJECT-TYPE SYNTAX Gauge ACCESS read-only STATUS mandatory DESCRIPTION "The number of current associations to the group, where the group is the responder." For dynamic single ::= {groupEntry 14} groupOutboundAssociations OBJECT-TYPE SYNTAX Gauge ACCESS read-only STATUS mandatory DESCRIPTION "The number of current associations to the group, where the group is the initiator." ::= {groupEntry 15} groupAccumulatedInboundAssociations OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory DESCRIPTION "The total number of associations to the group since MTA initialization, where the group is the responder." ::= {groupEntry 16} groupAccumulatedOutboundAssociations OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory DESCRIPTION "The total number of associations from the group since MTA initialization, where the group was the initiator." ::= {groupEntry 17} groupLastInboundActivity OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "Time since the last time that this group had an active inbound association for purposes of message submission." ::= {groupEntry 18} groupLastOutboundActivity OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "Time since the last time that this group had an outbound association for purposes of message delivery." ::= {groupEntry 19} groupRejectedInboundAssociations OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory DESCRIPTION "The total number of inbound associations the group has rejected, since MTA initialization." ::= {groupEntry 20} groupFailedOutboundAssociations OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory DESCRIPTION "The total number associations where the group was the initiator and association establishment has failed, since MTA initialization." ::= {groupEntry 21} groupInboundRejectionReason SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "The failure reason, if any, for the last connection this group refused to respond to. An empty string indicates that the last attempt was successful. If no connection attempt has been made since the MTA was initializaed the value should be 'never'." ::= {groupEntry 22} groupOutboundConnectFailureReason SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "The failure reason, if any, for the last connection attempt this group initiated. An empty string indicates that the last attempt was successful. If no connection attempt has been made since the MTA was initializaed the value should be 'never'." ::= {groupEntry 23} groupScheduledRetry OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "The scheduled time at which this group will next attempt to make a connection. This time is relative to the query time." ::= {groupEntry 24} groupMailProtocol OBJECT-TYPE SYNTAX OBJECT IDENTIFIER ACCESS read-only STATUS mandatory DESCRIPTION "An identification of the protocol being used by this group. For an group employing OSI protocols, this will be the Application Context. For Internet applications, the IANA maintains a registry of the OIDs which correspond to well-known message transfer protocols. If the application protocol is not listed in the registry, the value {applProtoID port} is used where 'port' corresponds to the primary port being used by the group." ::= {groupEntry 25} groupName OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "A descriptive name for the name. If this group connects to a single remote MTA this should be the name of that MTA. If this in turn is an Internet MTA this should be the domain name. For an OSI MTA it should be the string encoded distinguished name of the managed object using the format defined in RFC-?. For X.400(1984) MTAs which do not have a Distinguished Name, the RFC-1327 syntax 'mta in globalid' should be used." ::= {groupEntry 26} END Expires: December 18, 1993