NAGIOS-NOTIFY-MIB DEFINITIONS ::= BEGIN
  IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
    Integer32, Gauge32
      FROM SNMPv2-SMI
    nagios,NotifyType,HostStateID,HostStateType,ServiceStateID
      FROM NAGIOS-ROOT-MIB;

nagiosNotify MODULE-IDENTITY
  LAST-UPDATED "200503090000Z" -- March 9, 2005
  ORGANIZATION "Nagios"
  CONTACT-INFO
      " Subhendu Ghosh

      Telephone: +1 201 232 2851
      Email: sghosh@users.sourceforge.net

      Nagios Information:
        http://www.nagios.org
      "
  DESCRIPTION
      "Objects for Nagios(tm) events. There are 2 primary tables
      reflecting the division in Nagios for Host events and
      Service events.

      The event tables are extended by the HostNotifyTable and the
      ServiceNotifyTable to keep track of the notifications based on events.

      The tables entries themselves are not accessible but are used for OID
      entries for TRAP/INFORM notifications.

      These objects are based on the macros defined in Nagios v2.0
      "
  REVISION "200503090000Z" -- March 9, 2005
  DESCRIPTION
       "Spell check"
  REVISION "200501200000Z" --January 20, 2005
  DESCRIPTION
      "Initial Version"
::= { nagios 1 }


nagiosHostEventTable OBJECT-TYPE
  SYNTAX SEQUENCE OF HostEventEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION
    "Table of Nagios host events"
  ::= { nagiosNotify 1 }

HostEventEntry ::= SEQUENCE {
  nHostEventIndex Integer32,
  nHostname OCTET STRING,
  nHostAlias OCTET STRING,
  nHostStateID HostStateID,
  nHostStateType HostStateType,
  nHostAttempt Integer32,
  nHostDurationSec Integer32,
  nHostGroupName OCTET STRING,
  nHostLastCheck INTEGER,
  nHostLastChange INTEGER,
  nHostLastUp INTEGER,
  nHostLastDown INTEGER,
  nHostLastUnreachable INTEGER,
  nHostOutput OCTET STRING,
  nHostPerfData OCTET STRING
  }

nagiosHostEventEntry OBJECT-TYPE
  SYNTAX HostEventEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION
    "Each notification event"
  INDEX { nHostEventIndex }
  ::= { nagiosHostEventTable 1 }

nHostEventIndex OBJECT-TYPE
  SYNTAX Integer32 (1..65535)
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION
    "This object uniquely identifies this host event entry. It is generated
by the SNMP application and is not related to any Nagios data."
  ::= { nagiosHostEventEntry 1 }

nHostname OBJECT-TYPE
  SYNTAX OCTET STRING
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "Hostname as specified in the Nagios configuration file."
  ::= { nagiosHostEventEntry 2 }

nHostAlias OBJECT-TYPE
  SYNTAX OCTET STRING
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "The host alias as specified in the Nagios configuration file"
  ::= { nagiosHostEventEntry 3 }

nHostStateID OBJECT-TYPE
  SYNTAX HostStateID
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "The host state as defined by the HOSTSTATEID macro"
  ::= { nagiosHostEventEntry 4 }

nHostStateType OBJECT-TYPE
  SYNTAX HostStateType
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "The host state as defined by the HOSTSTATETYPE macro"
  ::= { nagiosHostEventEntry 5 }

nHostAttempt OBJECT-TYPE
  SYNTAX Integer32
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "The number of the current host check retry. For instance, if this is the
    second time that the host is being rechecked, this will be the number two.
    Current attempt number is really only useful when writing host event
    handlers for soft states that take a specific action based on the host retry
    number. The host state as defined by the HOSTSTATEID macro"
  ::= { nagiosHostEventEntry 6 }

nHostDurationSec OBJECT-TYPE
  SYNTAX Integer32
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
   "A number indicating the number of seconds that the host has spent in its
   current state"
  ::= { nagiosHostEventEntry 7 }

nHostGroupName OBJECT-TYPE
  SYNTAX OCTET STRING
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "The short name of the hostgroup that this host belongs to. This value is
    taken from the hostgroup_name directive in the hostgroup definition. If the
    host belongs to more than one hostgroup this macro will contain the name of
    just one of them."
  ::= { nagiosHostEventEntry 8 }

nHostLastCheck OBJECT-TYPE
  SYNTAX INTEGER
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
   "This is a timestamp in time_t format (seconds since the UNIX epoch)
   indicating the time at which a check of the host was last performed."
  ::= { nagiosHostEventEntry 9 }

nHostLastChange OBJECT-TYPE
  SYNTAX INTEGER
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
   "This is a timestamp in time_t format (seconds since the UNIX epoch)
   indicating the time the host last changed state."
  ::= { nagiosHostEventEntry 10 }

nHostLastUp OBJECT-TYPE
  SYNTAX INTEGER
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "This is a timestamp in time_t format (seconds since the UNIX epoch)
    indicating the time at which the host was last detected as being in an UP
    state."
  ::= { nagiosHostEventEntry 11 }

nHostLastDown OBJECT-TYPE
  SYNTAX INTEGER
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "This is a timestamp in time_t format (seconds since the UNIX epoch)
    indicating the time at which the host was last detected as being in an
    DOWN state."
  ::= { nagiosHostEventEntry 12 }

nHostLastUnreachable OBJECT-TYPE
  SYNTAX INTEGER
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "This is a timestamp in time_t format (seconds since the UNIX epoch)
    indicating the time at which the host was last detected as being in an
    UNREACHABLE state."
  ::= { nagiosHostEventEntry 13 }

nHostOutput OBJECT-TYPE
  SYNTAX OCTET STRING
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "The text output from the last host check (i.e. Ping OK)."
  ::= { nagiosHostEventEntry 14 }

nHostPerfData OBJECT-TYPE
  SYNTAX OCTET STRING
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "This object contains any performance data that may have been returned
    by the last host check."
  ::= { nagiosHostEventEntry 15 }



--
-- Host Notifications

nagiosHostNotifyTable OBJECT-TYPE
  SYNTAX SEQUENCE OF HostNotifyEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION
    "Table of Nagios host notifications"
  ::= {nagiosNotify 2}

HostNotifyEntry ::= SEQUENCE {
  nHostNotifyType NotifyType,
  nHostNotifyNum Gauge32, -- was Integer32,
  nHostAckAuthor OCTET STRING,
  nHostAckComment OCTET STRING
  }

nagiosHostNotifyEntry OBJECT-TYPE
  SYNTAX HostNotifyEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION
   "Nagios host notifications extends the nagiosHostEventTable when a
   notification is generated for an event."
  INDEX { nHostEventIndex }
  ::= { nagiosHostNotifyTable 1 }

nHostNotifyType OBJECT-TYPE
  SYNTAX NotifyType
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "This identifies the type of notification that is being sent
    (PROBLEM, RECOVERY, ACKNOWLEDGEMENT, FLAPPINGSTART or FLAPPINGSTOP)"
  ::= { nagiosHostNotifyEntry 1 }

nHostNotifyNum OBJECT-TYPE
  SYNTAX Gauge32 -- was NotifyType
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "This identifies the current notification number for the service or host.
The notification number increases by one (1) each time a new notification
is sent out for a host or service (except for acknowledgements). The
notification number is reset to 0 when the host or service recovers
(after the recovery notification has gone out). Acknowledgements do not
cause the notification number to increase."
::= { nagiosHostNotifyEntry 2 }

nHostAckAuthor OBJECT-TYPE
  SYNTAX OCTET STRING
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "A string containing the name of the user who acknowledged the host
    problem. This macro is only valid in notifications where the
    $NOTIFICATIONTYPE$ macro is set to ACKNOWLEDGEMENT."
  ::= { nagiosHostNotifyEntry 3 }

nHostAckComment OBJECT-TYPE
  SYNTAX OCTET STRING
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "A string containing the acknowledgement comment that was entered by
    the user who acknowledged the host problem. This macro is only valid
    in notifications where the $NOTIFICATIONTYPE$ macro is set to ACKNOWLEDGEMENT"
  ::= { nagiosHostNotifyEntry 4 }


-- 
-- Service Events
-- 


nagiosSvcEventTable OBJECT-TYPE
  SYNTAX SEQUENCE OF SvcEventEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION
    "Table of Nagios service notifications"
  ::= { nagiosNotify 3 }

SvcEventEntry ::= SEQUENCE {
  nSvcEventIndex Integer32,
  nSvcHostname OCTET STRING,
  nSvcHostAlias OCTET STRING,
  nSvcHostStateID HostStateID,
  nSvcHostStateType HostStateType,
  nSvcDesc OCTET STRING,
  nSvcStateID ServiceStateID,
  nSvcAttempt Integer32,
  nSvcDurationSec Integer32,
  nSvcGroupName OCTET STRING,
  nSvcLastCheck INTEGER,
  nSvcLastChange INTEGER,
  nSvcLastOK INTEGER,
  nSvcLastWarn INTEGER,
  nSvcLastCrit INTEGER,
  nSvcLastUnkn INTEGER,
  nSvcOutput OCTET STRING,
  nSvcPerfData OCTET STRING
  }

nagiosSvcEventEntry OBJECT-TYPE
  SYNTAX SvcEventEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION
    "Table of Nagios service events."
  INDEX { nSvcEventIndex }
  ::= { nagiosSvcEventTable 1 }

nSvcEventIndex OBJECT-TYPE
  SYNTAX Integer32 (1..65535)
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION
   "This object uniquely identifies this service event entry"
  ::= { nagiosSvcEventEntry 1 }

nSvcHostname OBJECT-TYPE
  SYNTAX OCTET STRING
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "Hostname as specified in the Nagios configuration file."
  ::= { nagiosSvcEventEntry 2 }

nSvcHostAlias OBJECT-TYPE
  SYNTAX OCTET STRING
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "The host alias as specified in the Nagios configuration file"
  ::= { nagiosSvcEventEntry 3 }

nSvcHostStateID OBJECT-TYPE
  SYNTAX HostStateID
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "A number that corresponds to the current state of the service: 0=OK,
    1=WARNING, 2=CRITICAL, 3=UNKNOWN."
  ::= { nagiosSvcEventEntry 4 }

nSvcHostStateType OBJECT-TYPE
  SYNTAX HostStateType
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "Whether the host is in a hard or soft state."
  ::= { nagiosSvcEventEntry 5 }

nSvcDesc OBJECT-TYPE
  SYNTAX OCTET STRING
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "This value is taken from the description directive of the service
    definition."
  ::= { nagiosSvcEventEntry 6 }

nSvcStateID OBJECT-TYPE
  SYNTAX ServiceStateID
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    " A number that corresponds to the current state of the service: 0=OK,
    1=WARNING, 2=CRITICAL, 3=UNKNOWN"
  ::= { nagiosSvcEventEntry 7 }

nSvcAttempt OBJECT-TYPE
  SYNTAX Integer32
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "The number of the current service check retry. For instance, if this is
    the second time that the service is being rechecked, this will be the
    number two. Current attempt number is really only useful when writing
    service event handlers for soft states that take a specific action based
    on the service retry number."
  ::= { nagiosSvcEventEntry 8 }

nSvcDurationSec OBJECT-TYPE
  SYNTAX Integer32
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "A number indicating the number of seconds that the service has spent in
    its current state."
  ::= { nagiosSvcEventEntry 9 }

nSvcGroupName OBJECT-TYPE
  SYNTAX OCTET STRING
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "The short name of the servicegroup that this service belongs to. This
    value is taken from the servicegroup_name directive in the servicegroup
    definition. If the service belongs to more than one servicegroup this
    object will contain the name of just one of them."
  ::= { nagiosSvcEventEntry 10 }

nSvcLastCheck OBJECT-TYPE
  SYNTAX INTEGER
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "This is a timestamp in time_t format (seconds since the UNIX epoch)
    indicating the time at which a check of the service was last performed."
  ::= { nagiosSvcEventEntry 11 }

nSvcLastChange OBJECT-TYPE
  SYNTAX INTEGER
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "This is a timestamp in time_t format (seconds since the UNIX epoch)
    indicating the time the service last changed state."
  ::= { nagiosSvcEventEntry 12 }

nSvcLastOK OBJECT-TYPE
  SYNTAX INTEGER
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "This is a timestamp in time_t format (seconds since the UNIX epoch)
    indicating the time at which the service was last detected as being in an
    OK state."
  ::= { nagiosSvcEventEntry 13 }

nSvcLastWarn OBJECT-TYPE
  SYNTAX INTEGER
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "This is a timestamp in time_t format (seconds since the UNIX epoch)
    indicating the time at which the service was last detected as being in a
    WARNING state."
  ::= { nagiosSvcEventEntry 14 }

nSvcLastCrit OBJECT-TYPE
  SYNTAX INTEGER
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "This is a timestamp in time_t format (seconds since the UNIX epoch)
    indicating the time at which the service was last detected as being in a
    CRITICAL state."
  ::= { nagiosSvcEventEntry 15 }

nSvcLastUnkn OBJECT-TYPE
  SYNTAX INTEGER
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "This is a timestamp in time_t format (seconds since the UNIX epoch)
    indicating the time at which the service was last detected as being in an
    UNKNOWN state."
  ::= { nagiosSvcEventEntry 16 }

nSvcOutput OBJECT-TYPE
  SYNTAX OCTET STRING
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "The text output from the last service check (i.e. Ping OK)."
  ::= { nagiosSvcEventEntry 17 }

nSvcPerfData OBJECT-TYPE
  SYNTAX OCTET STRING
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "This object contains any performance data that may have been returned by
    the last service check."
  ::= { nagiosSvcEventEntry 18 }


-- 
-- Service Notifications
-- 

nagiosSvcNotifyTable OBJECT-TYPE
  SYNTAX SEQUENCE OF SvcNotifyEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION
    "Table of Nagios service notifications."
  ::= { nagiosNotify 4 }

SvcNotifyEntry ::= SEQUENCE {
  nSvcNotifyType NotifyType,
  nSvcNotifyNum Gauge32, -- Integer32,
  nSvcAckAuthor OCTET STRING,
  nSvcAckComment OCTET STRING
  }

nagiosSvcNotifyEntry OBJECT-TYPE
  SYNTAX SvcNotifyEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION
    "Nagios service notifications extends the nagiosSvcEnevtsTable when
    a notification is generated for an event."
  INDEX { nSvcEventIndex }
  ::= { nagiosSvcNotifyTable 1}


nSvcNotifyType OBJECT-TYPE
  SYNTAX NotifyType
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "A string identifying the type of notification that is being sent
    (PROBLEM, RECOVERY, ACKNOWLEDGEMENT, FLAPPINGSTART or FLAPPINGSTOP)."
  ::= { nagiosSvcNotifyEntry 1 }

nSvcNotifyNum OBJECT-TYPE
  SYNTAX Gauge32 -- Integer32
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "The current notification number for the service or host. The notification
    number increases by one (1) each time a new notification is sent out for a
    host or service (except for acknowledgements). The notification number is
    reset to 0 when the host or service recovers (after the recovery
    notification has gone out). Acknowledgements do not cause the notification
    number to increase."
  ::= { nagiosSvcNotifyEntry 2 }

nSvcAckAuthor OBJECT-TYPE
  SYNTAX OCTET STRING
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "A string containing the name of the user who acknowledged the service
    problem. This object is only valid in notifications where the
    nSvcNotifyType object is set to ACKNOWLEDGEMENT."
  ::= { nagiosSvcNotifyEntry 3 }

nSvcAckComment OBJECT-TYPE
  SYNTAX OCTET STRING
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "A string containing the acknowledgement comment that was entered by the
    user who acknowledged the service problem. This object is only valid in
    notifications where the nSvcNotifyType object is set to ACKNOWLEDGEMENT."
  ::= { nagiosSvcNotifyEntry 4 }


--
-- Events and Notifications
--

nHostEvent NOTIFICATION-TYPE
  OBJECTS { nHostname, nHostStateID, nHostStateType, nHostAttempt,
            nHostDurationSec, nHostGroupName, nHostLastCheck, nHostLastChange,
            nHostOutput }
  STATUS current
  DESCRIPTION
    "The SNMP trap that is generated as a result of an event with the host
    in Nagios."

  ::= { nagiosNotify 5 }

nHostNotify NOTIFICATION-TYPE
  OBJECTS { nHostNotifyType, nHostNotifyNum, nHostAckAuthor, nHostAckComment,
            nHostname, nHostStateID, nHostStateType, nHostAttempt,
            nHostDurationSec, nHostGroupName, nHostLastCheck, nHostLastChange,
            nHostOutput }
  STATUS current
  DESCRIPTION
    "The SNMP trap that is generated as a result of an event requiring
    notification for a host in Nagios."
  ::= { nagiosNotify 6 }

nSvcEvent NOTIFICATION-TYPE
  OBJECTS { nHostname, nHostStateID, nSvcDesc, nSvcStateID, nSvcAttempt,
            nSvcDurationSec, nSvcGroupName, nSvcLastCheck, nSvcLastChange,
            nSvcOutput }
  STATUS current
  DESCRIPTION
    "The SNMP trap that is generated as a result of an event with the service
    in Nagios."
  ::= { nagiosNotify 7 }

nSvcNotify NOTIFICATION-TYPE
  OBJECTS { nSvcNotifyType, nSvcNotifyNum, nSvcAckAuthor, nSvcAckComment,
            nHostname, nHostStateID, nSvcDesc, nSvcStateID, nSvcAttempt,
            nSvcDurationSec, nSvcGroupName, nSvcLastCheck, nSvcLastChange,
            nSvcOutput }
  STATUS current
  DESCRIPTION
    "The SNMP trap that is generated as a result of an event requiring
    notification for a service in Nagios."
  ::= { nagiosNotify 8 }


END
