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


IMPORTS
    Integer32, MODULE-IDENTITY, OBJECT-TYPE, enterprises
        FROM SNMPv2-SMI
    OBJECT-GROUP, MODULE-COMPLIANCE
        FROM SNMPv2-CONF
    wwwServiceIndex
	FROM WWW-MIB;

covalentConfigMIB 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 contains Apache HTTP Server specific managed objects
         that can be used for runtime configuration.
         Only the most important operational configuration directives
         are defined in this MIB.

         $id$"
    ::= { covalent 5 }

covalent OBJECT IDENTIFIER
    ::= { enterprises 6100 }

ctConfigMIBObjects OBJECT IDENTIFIER
    ::= { covalentConfigMIB 1 }

ctConfigGlobals OBJECT IDENTIFIER
    ::= { ctConfigMIBObjects 1 }

ctExtendedStatus 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."
    ::= { ctConfigGlobals 1 }

ctMaxServers OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION 
        "The ctMaxServerss sets the limit on the number of simultaneous
         requests that can be supported; not more than this number of
         child server processes will be created. To configure more than
         256 clients, you must edit the HARD_SERVER_LIMIT entry in
         httpd.h and recompile. 

         Any connection attempts over the MaxClients limit will normally
         be queued, up to a number based on the ListenBacklog directive.
         Once a child process is freed at the end of a different request,
         the connection will then be serviced."
    ::= { ctConfigGlobals 2 }

ctMinSpareServers OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION 
        "The ctMinSpareServers sets the desired maximum number of
         idle child server processes. An idle process is one which
         is not handling a request. If there are more than
         MaxSpareServers idle, then the parent process will kill
         off the excess processes.

         Tuning of this parameter should only be necessary on very
         busy sites. Setting this parameter to a large number is
         almost always a bad idea.

         This directive has no effect when used with the Apache Web
         server on a Microsoft Windows platform."
    ::= { ctConfigGlobals 3 }

ctMaxSpareServers OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION 
        "The MinSpareServers directive sets the desired minimum number
         of idle child server processes. An idle process is one which
         is not handling a request. If there are fewer than
         MinSpareServers idle, then the parent process creates new
         children at a maximum rate of 1 per second.

         Tuning of this parameter should only be necessary on very
         busy sites. Setting this parameter to a large number is
         almost always a bad idea.

         This directive has no effect on Microsoft Windows."
    ::= { ctConfigGlobals 4 }

ctMaxRequestsPerChild OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION 
        "The ctMaxRequestsPerChild limits on the number of requests
         that an individual child server process will handle. After
         MaxRequestsPerChild requests, the child process will die.
         If MaxRequestsPerChild is 0, then the process will never expire.

         Setting MaxRequestsPerChild to a non-zero limit has two beneficial
         effects: 

         1) it limits the amount of memory that process can consume by
            (accidental) memory leakage; 
         2) by giving processes a finite lifetime, it helps reduce the
            number of processes when the server load reduces. 

         This directive has no effect on Win32."
    ::= { ctConfigGlobals 5 }

ctHostNameLookup 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."
    ::= { ctConfigGlobals 6 }

ctConfigServiceTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CtConfigServiceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains WWW-service specific configuration objects
         for the Apache HTTP server."
    ::= { ctConfigMIBObjects 2 }

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

CtConfigServiceEntry ::= SEQUENCE {
    ctKeepAliveSwitch          INTEGER,
    ctKeepAliveRequests        Integer32,
    ctKeepAliveTimeout         Integer32,
    ctLogLevel                 INTEGER
}

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

ctKeepAliveRequests 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."
    ::= { ctConfigServiceEntry 2 }

ctKeepAliveTimeout 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."
    ::= { ctConfigServiceEntry 3 }

ctLogLevel OBJECT-TYPE
    SYNTAX      INTEGER { emerg(1), alert(2), crit(3), error(4), warn(5), 
                    notice(6), info(7), debug(8) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION 
        "LogLevel adjusts the verbosity of the messages recorded
         in the error logs.
         The following levels are available, in order of
         decreasing significance: 
         emerg: Emergencies - system is unusable. 
         	'Child cannot open lock file. Exiting'
         alert: Action must be taken immediately. 
         	'getpwuid: couldn't determine user name from uid'
         crit: Critical Conditions. 
         	'socket: Failed to get a socket, exiting child'
         error: Error conditions. 
         	'Premature end of script headers'
         warn: Warning conditions. 
         	'child process 1234 did not exit, sending
         	another SIGHUP' 
         notice: Normal but significant condition. 
         	'httpd: caught SIGBUS, attempting to dump core in ...' 
         info: Informational. 
         	'Server seems busy, (you may need to increase
         	StartServers, or Min/MaxSpareServers)...' 
         debug: Debug-level messages 
         	'Opening config file ...'
         
         When a particular level is specified, messages from all
         other levels of higher significance will be reported as
         well. E.g., when LogLevel info is specified, then
         messages with log levels of notice and warn will
         also be posted. 
         Using a level of at least crit is recommended."
    ::= { ctConfigServiceEntry 4 }

ctConfigMIBConformance OBJECT IDENTIFIER
    ::= { covalentConfigMIB 2 }

ctConfigMIBCompliances OBJECT IDENTIFIER
    ::= { ctConfigMIBConformance 1 }

ctConfigBasicCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION 
        "The basic compliance statement for the CONFIG-MIB."
    MODULE      -- this module
        MANDATORY-GROUPS        { ctConfigGlobalGroup }
    ::= { ctConfigMIBCompliances 1 }

ctConfigServiceCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION 
        "The service compliance statement for the CONFIG-MIB."
    MODULE      -- this module
        MANDATORY-GROUPS        { ctConfigServiceGroup }
    ::= { ctConfigMIBCompliances 2 }

ctConfigFullCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION 
        "The full compliance statement for the CONFIG-MIB."
    MODULE      -- this module
        MANDATORY-GROUPS        { ctConfigGlobalGroup,
                                  ctConfigServiceGroup }
    ::= { ctConfigMIBCompliances 3 }

ctConfigMIBGroups OBJECT IDENTIFIER
    ::= { ctConfigMIBConformance 2 }

ctConfigGlobalGroup OBJECT-GROUP
    OBJECTS     { ctExtendedStatus, ctMaxServers, ctMinSpareServers,
                  ctMaxSpareServers, ctMaxRequestsPerChild, ctLogLevel }
    STATUS      current
    DESCRIPTION 
        "The global parameters for the Apache HTTP server."
    ::= { ctConfigMIBGroups 1 }

ctConfigServiceGroup OBJECT-GROUP
    OBJECTS     { ctKeepAliveSwitch, ctKeepAliveRequests,
                  ctKeepAliveTimeout, ctHostNameLookup }
    STATUS      current
    DESCRIPTION 
        "The service specific parameters for the Apache HTTP server."
    ::= { ctConfigMIBGroups 2 }

END -- end of module APACHE-CONFIG-MIB.
