COVALENT-APACHE-SERVER-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
    Unsigned32, Integer32, enterprises
        FROM SNMPv2-SMI
    DateAndTime
        FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
        FROM SNMPv2-CONF
    applIndex, applOperStatus
        FROM NETWORK-SERVICES-MIB
    wwwServiceIndex
        FROM WWW-MIB;

covalentApacheServerMIB MODULE-IDENTITY
    LAST-UPDATED "200204020000Z"
    ORGANIZATION 
	"Copyright (C) Covalent Technologies (2000-2002).  All Rights Reserved."
    CONTACT-INFO 
        "SNMP Engineering
         Covalent Technologies
         postal: 303 Second Street
                 Suite 375 South
                 San Francisco, CA 94107
         tel:    +1-800-444-1935
         email: support@covalent.net"
    DESCRIPTION 
        "This module defines managed objects to convey management information
         about the Apache HTTP server (application).

         $Id: COVALENT-APACHE-SERVER-MIB.txt 8676 2008-01-17 23:11:17Z ispringer $"
    ::= { covalent 9 }

covalent OBJECT IDENTIFIER
    ::= { enterprises 6100 }

ctApacheServerMIBObjects OBJECT IDENTIFIER
    ::= { covalentApacheServerMIB 1 }

ctApacheServerTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CtApacheServerEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table providing the server generations of the Apache
         HTTP servers currently running on this system."
    ::= { ctApacheServerMIBObjects 1 }

ctApacheServerEntry OBJECT-TYPE
    SYNTAX      CtApacheServerEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The entry providing the specifics of the server generations
         for the Apache HTTP servers currently running on this system."
    INDEX { applIndex }
    ::= { ctApacheServerTable 1 }

CtApacheServerEntry ::= SEQUENCE {
    ctApacheServerStartTime       DateAndTime,
    ctApacheServerRestartTime     DateAndTime,
    ctApacheServerGeneration      Unsigned32,
    ctApacheServerExtendedStatus  INTEGER,
    ctApacheServerHostNameLookup  INTEGER
    }

ctApacheServerStartTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The date and time the server started.
         This object is similar in semantics as the 
         'applUptime' of the NETWORK-SERVICES-MIB, but
         has a different syntax."
    ::= { ctApacheServerEntry 1 }

ctApacheServerRestartTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The date and time the server restarted.
         This object is similar in semantics as the 
         'applLastChange' of the NETWORK-SERVICES-MIB, but
         has a different syntax."
    ::= { ctApacheServerEntry 2 }

ctApacheServerGeneration OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION 
        "The server generation of the Apache children.
         This value gives also an indication of the
         number of restarts done of the Apache HTTP server.

         By writing to this value one can restart the
         Apache HTTP server gracefully. The value allowed
         to be written to it is always the current value
         plus 1. All other values should return a 
         inconsistentValue error."
    ::= { ctApacheServerEntry 3 }

ctApacheServerExtendedStatus OBJECT-TYPE
    SYNTAX      INTEGER { enable(1), disable(2) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION 
        "The ctExtendedStatus controls whether the server keeps
         track of extended status information for each request.
         This is only useful if the status module is enabled
         on the server. 

         This setting applies to the entire server, and cannot be
         enabled or disabled on a virtualhost-by-virtualhost basis."
    ::= { ctApacheServerEntry 4 }

ctApacheServerHostNameLookup OBJECT-TYPE
    SYNTAX      INTEGER { on(1), off(2), double(3) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION 
        "The ctHostNameLookup enables DNS lookups so that host names
         can be logged (and passed to CGIs/SSIs in REMOTE_HOST). The
         value double refers to doing double-reverse DNS. That is,
         after a reverse lookup is performed, a forward lookup is
         then performed on that result. At least one of the ip addresses
         in the forward lookup must match the original address.
         (In 'tcpwrappers' terminology this is called PARANOID.)

         Regardless of the setting, when mod_access is used for controlling
         access by hostname, a double reverse lookup will be performed.
         This is necessary for security. Note that the result of this
         double-reverse isn't generally available unless you set
         HostnameLookups double. For example, if only HostnameLookups on
         and a request is made to an object that is protected by hostname
         restrictions, regardless of whether the double-reverse fails or not,
         CGIs will still be passed the single-reverse result in REMOTE_HOST.

         The default for this directive was previously on in versions of Apache
         prior to 1.3. It was changed to off in order to save the network
         traffic for those sites that don't truly need the reverse lookups
         done. It is also better for the end users because they don't have to
         suffer the extra latency that a lookup entails. Heavily loaded sites
         should leave this directive off, since DNS lookups can take
         considerable amounts of time. The utility logresolve, provided in
         the /support directory, can be used to look up host names from
         logged IP addresses offline."
    ::= { ctApacheServerEntry 5 }

ctApacheWwwServiceTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CtApacheWwwServiceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains Apache server configuration information
         specific to a WWW-service."
    ::= { ctApacheServerMIBObjects 2 }

ctApacheWwwServiceEntry OBJECT-TYPE
    SYNTAX      CtApacheWwwServiceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The entry that contains the WWW-service specific configuration
         objects for the Apache HTTP server."
    INDEX { wwwServiceIndex }
    ::= { ctApacheWwwServiceTable 1 }

CtApacheWwwServiceEntry ::= SEQUENCE {
    ctApacheWwwConnectionTimeout               Integer32,
    ctApacheWwwKeepAliveSwitch                 INTEGER,
    ctApacheWwwKeepAliveRequests               Integer32,
    ctApacheWwwKeepAliveTimeout                Integer32,
    ctApacheWwwReqLineLimit                    Integer32,
    ctApacheWwwReqHeaderFieldLimit             Integer32,
    ctApacheWwwReqHeaderLimit                  Integer32
}

ctApacheWwwConnectionTimeout OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The ctConnectionTimeout limits the number of seconds
         Apache will wait before closing a stale connection."
    ::= { ctApacheWwwServiceEntry 1 }

ctApacheWwwKeepAliveSwitch OBJECT-TYPE
    SYNTAX      INTEGER { enable(1), disable(2) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION 
	"The ctKeepAliveSwitch enables Keep-Alive support."
    ::= { ctApacheWwwServiceEntry 2 }

ctApacheWwwKeepAliveRequests OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION 
        "The ctKeepAliveRequests limits the number of requests
         allowed per connection when KeepAlive is on. If it is
         set to '0', unlimited requests will be allowed. We
         recommend that this setting be kept to a high value
         for maximum server performance."
    ::= { ctApacheWwwServiceEntry 3 }

ctApacheWwwKeepAliveTimeout OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION 
        "The ctKeepAliveRequests manages the number of seconds Apache
         will wait for a subsequent request before closing the
         connection. Once a request has been received, the timeout
         value specified by the Timeout directive applies."
    ::= { ctApacheWwwServiceEntry 4 }

ctApacheWwwReqLineLimit OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The ctApacheWwwReqLineLimit manages the maximum amount of
         bytes for the request line that Apache will read.

         NOTE: The applicability depends on the protocol of the
               WWW service."
    ::= { ctApacheWwwServiceEntry 5 }

ctApacheWwwReqHeaderFieldLimit OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The ctApacheWwwReqHeaderFieldLimit manages the maximum
         amount of bytes for a header of the request that Apache
         will read.

         NOTE: The applicability depends on the protocol of the
               WWW service."
    ::= { ctApacheWwwServiceEntry 6 }

ctApacheWwwReqHeaderLimit OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The ctApacheWwwReqHeaderLimit manages the maximum amount of
         headers Apache will read.

         NOTE: The applicability depends on the protocol of the
               WWW service."
    ::= { ctApacheWwwServiceEntry 7 }


-- Notifications

ctApacheServerNotifications OBJECT IDENTIFIER
    ::= { covalentApacheServerMIB 3 }

ctApacheServerColdStart NOTIFICATION-TYPE
    OBJECTS { applOperStatus,
              ctApacheServerStartTime }
    STATUS      current
    DESCRIPTION
        "The trap that is sent when the Apache server boots."
    ::= { ctApacheServerNotifications 1 }

ctApacheServerWarmStart NOTIFICATION-TYPE
    OBJECTS { applOperStatus,
              ctApacheServerRestartTime,
              ctApacheServerGeneration }
    STATUS      current
    DESCRIPTION
        "The trap that is sent when the Apache server reboots/restarts."
    ::= { ctApacheServerNotifications 2 }

ctApacheServerShutdown NOTIFICATION-TYPE
    OBJECTS { applOperStatus }
    STATUS      current
    DESCRIPTION
        "The trap that is sent when the Apache server terminates."
    ::= { ctApacheServerNotifications 3 }

-- Not implemented.
-- ctApacheServerGracefullStart NOTIFICATION-TYPE
--     OBJECTS { applOperStatus,
--               ctApacheServerStartTime,
--               ctApacheServerGeneration }
--     STATUS      current
--     DESCRIPTION
--         "The trap that is sent when the Apache server reboots/restarts
--          gracefully.
--          A gracefull restart of Apache means it will not directly
--          disconnect the current connections, but finishing the
--          requests before termination the connection."
--     ::= { ctApacheServerNotifications 4 }

ctApacheServerMIBConformance OBJECT IDENTIFIER
    ::= { covalentApacheServerMIB 2 }

ctApacheServerMIBCompliances OBJECT IDENTIFIER
    ::= { ctApacheServerMIBConformance 1 }

ctApacheServerMIBGroups OBJECT IDENTIFIER
    ::= { ctApacheServerMIBConformance 2 }

ctApacheServerGroup OBJECT-GROUP
    OBJECTS     { ctApacheServerStartTime,
                  ctApacheServerRestartTime,
                  ctApacheServerGeneration,
                  ctApacheServerExtendedStatus,
                  ctApacheServerHostNameLookup }
    STATUS      current
    DESCRIPTION
        "The objects which are global for the Apache HTTP server."
    ::= { ctApacheServerMIBGroups 1 }

ctApacheServerWwwServiceGroup OBJECT-GROUP
    OBJECTS     { ctApacheWwwConnectionTimeout,
                  ctApacheWwwKeepAliveSwitch,
                  ctApacheWwwKeepAliveRequests,
                  ctApacheWwwKeepAliveTimeout,
                  ctApacheWwwReqLineLimit,
                  ctApacheWwwReqHeaderFieldLimit,
                  ctApacheWwwReqHeaderLimit }
    STATUS      current
    DESCRIPTION
        "The objects that are WWW-service specific of the Apache
         HTTP server."
    ::= { ctApacheServerMIBGroups 2 }

ctApacheServerNotificationsGroup NOTIFICATION-GROUP
    NOTIFICATIONS { ctApacheServerColdStart,
                    ctApacheServerWarmStart,
                    ctApacheServerShutdown }
    STATUS       current
    DESCRIPTION
        "The generic notifications used for Apache application events.
         Apache application events are starts, restarts, and stops."
    ::= { ctApacheServerMIBGroups 3 }


ctApacheServerFullCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION 
        "The full compliance statement for the Apache application."
    MODULE      -- this module
        MANDATORY-GROUPS        {
                ctApacheServerGroup,
                ctApacheServerWwwServiceGroup,
                ctApacheServerNotificationsGroup }
    ::= { ctApacheServerMIBCompliances 1 }

ctApacheServerBasicCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION 
        "The basic compliance statement for the Apache application.
         Basic compliance means there are no notifications implemented."
    MODULE      -- this module
        MANDATORY-GROUPS        {
                ctApacheServerGroup }
    ::= { ctApacheServerMIBCompliances 2 }

ctApacheServerFullROCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The full compliance statement for the Apache application."
    MODULE      -- this module
        MANDATORY-GROUPS        {
                ctApacheServerGroup,
                ctApacheServerWwwServiceGroup,
                ctApacheServerNotificationsGroup }
    MODULE      -- this module
        OBJECT      ctApacheServerGeneration
        MIN-ACCESS  read-only
        DESCRIPTION
            "Write access is not needed"

        OBJECT      ctApacheServerExtendedStatus
        MIN-ACCESS  read-only
        DESCRIPTION
            "Write access is not needed"

        OBJECT      ctApacheServerHostNameLookup
        MIN-ACCESS  read-only
        DESCRIPTION
            "Write access is not needed"

        OBJECT      ctApacheWwwConnectionTimeout
        MIN-ACCESS  read-only
        DESCRIPTION
            "Write access is not needed"

        OBJECT      ctApacheWwwKeepAliveSwitch
        MIN-ACCESS  read-only
        DESCRIPTION
            "Write access is not needed"

        OBJECT      ctApacheWwwKeepAliveRequests
        MIN-ACCESS  read-only
        DESCRIPTION
            "Write access is not needed"

        OBJECT      ctApacheWwwKeepAliveTimeout
        MIN-ACCESS  read-only
        DESCRIPTION
            "Write access is not needed"

        OBJECT      ctApacheWwwReqLineLimit
        MIN-ACCESS  read-only
        DESCRIPTION
            "Write access is not needed"

        OBJECT      ctApacheWwwReqHeaderFieldLimit
        MIN-ACCESS  read-only
        DESCRIPTION
            "Write access is not needed"

        OBJECT      ctApacheWwwReqHeaderLimit
        MIN-ACCESS  read-only
        DESCRIPTION
            "Write access is not needed"
    ::= { ctApacheServerMIBCompliances 3 }

END
