INTERNET DRAFT WWW MIB Febrary 1, 1997 Definitions of Managed Objects for WWW Servers Carl W. Kalbfleisch OnRamp Technologies, Inc. cwk@onramp.net Harrie Hazewinkel DESIRE / MUSIQ Joint Research Centre of the E.C. harrie.hazewinkel@jrc.it Juergen Schoenwaelder University of Twente schoenw@cs.utwente.nl February 1, 1997 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 and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet- Drafts as reference material or to cite them other than as ``work in progress.'' To learn the current status of any Internet-Draft, please check the ``1id-abstracts.txt'' listing contained in the Internet- Drafts Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe), munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or ftp.isi.edu (US West Coast). Distribution of this document is unlimited. Please send comments to the Application MIB Working Group, . 1. Abstract Expires August 1, 1997 [Page 1] INTERNET DRAFT WWW MIB Febrary 1, 1997 This memo defines an experimental portion of the Management Information Base (MIB) for use with network management protocols in the Internet Community. In particular it describes a set of managed objects for WWW servers. These objects include extensions to Network Services Monitoring MIB, extensions to sysApplMIB, error reporting and document storage information. Some portions of this information are not yet defined and will be added to this document in future revisions. These attributes are applicable to the HTTP protocol of WWW but may also be applicable to other information retrieval services like ftp, nntp, gopher and wais. 2. The SNMPv2 Network Management Framework The SNMPv2 Network Management Framework consists of four major components. They are: o STD 17, RFC 1213 [1] defines MIB-II, the core set of managed objects for the Internet suite of protocols. o RFC 1902 Structure of Management Information for Version 2 of the Simple Network Management Protocol (SNMPv2) o RFC 1903 Textual Conventions for Version 2 of the Simple Network Management Protocol (SNMPv2) o RFC 1904 Conformance Statements for Version 2 of the Simple Network Management Protocol (SNMPv2) o RFC 1905 Protocol Operations for Version 2 of the Simple Network Management Protocol (SNMPv2) o RFC 1906 Transport Mappings for Version 2 of the Simple Network Management Protocol (SNMPv2) o RFC 1907 Management Information Base for Version 2 of the Simple Network Management Protocol (SNMPv2) o RFC 1908 Coexistence between Version 1 and Version 2 of the Internet-standard Network Management Framework The Framework permits new objects to be defined for the purpose of experimentation and evaluation. 2.1. Object Definitions Managed objects are accessed via a virtual information store, termed the Management Information Base or MIB. Objects in the MIB are defined using the subset of Abstract Syntax Notation One (ASN.1) defined in the SMI [ref]. In particular, each object type is named by an OBJECT IDENTIFIER, an administratively assigned name. The object type together with an object instance serves to uniquely identify a specific instantiation of the object. For human convenience, we often use a textual string, termed the Expires August 1, 1997 [Page 2] INTERNET DRAFT WWW MIB Febrary 1, 1997 object descriptor, to refer to the object type. 3. Notation This notation [## .. ##] delineates editorial text. This information will either be removed in the final document or replaced with real text at those points. 4. A Note on Terminology This section defines the terminology used throughout this draft. The 'World Wide Web' (WWW) is the name of a world wide information system which is based on the concept of documents that can be linked together by embedding references to documents located at local or remote locations. References to a document are made using Uniform Resource Locators (URL) as defined in RFC 1738 [?]. A 'WWW-site' is defined as a host in the Internet that embodies the WWW. A 'document' is defined like a coherent piece of information/data. No assumptions are made about the content or type. A 'Document Transport Protocol' (DTP) is defined as a generic name for all protocols that are allowed to perform operations on 'documents' stored on WWW-sites. A 'Uniform Resource Locator' (URL) is defined as a formatted string representation for a 'document' available via the Internet. The 'URL' maps onto a certain 'DTP' and 'WWW-site' of where and how to retrieve a 'document'. For the syntax and semantics of the string representation is referred to rfc1630 [?] and rfc1738 [?] A 'request' is defined as a protocol operation which is targeted to a 'document' and invokes an action on the target document. The 'request type' specifies the action that should be performed and a 'request' can have a document attached to it. A 'response' is defined as a protocol operation which is returned as a result of a previous (and associated) request. The 'response status' indicates if the requested action was successful or if errors occurred. A 'response' can have a document attached to it. An 'application' is defined as one or more units of executable code and other resources, installed on a single host system that a manager may think of as a single object for management purposes. A 'networked application' is defined as an application type which is not necessarily installed an a single host, but makes use of an underlying transport protocol in order to behave as a single object in the eyes of an operator. Expires August 1, 1997 [Page 3] INTERNET DRAFT WWW MIB Febrary 1, 1997 A 'server' is defined as the networked application invoking the DTP operations. A 'server' provides access facility to 'documents' and/or storage facility of 'documents'. The 'document' resides on locally accessible disks or in applications processing the DTP operations. A 'client' is defined as the networked application invoking the DTP operations. A 'client' issues the 'requests' and interprets the 'responses'. A 'proxy' is defined as a networked application acting both as a server and a client for the purpose of making request for other clients. 'Requests' and 'responses' are passed by the 'proxy' with possible mapping between different DTP's. The 'proxy doesn't change the 'document' transferred. A 'caching proxy' is defined as a proxy with the capability of locally storing 'responses' to associated 'requests' in order to respond with the local stored 'response' to the associated 'request'. An 'entity' is defined as a 'server', a 'client', a 'proxy' or a 'caching proxy' which can be accessed by an unique transport address. 5. Introduction The World Wide Web (WWW) is a network of information, accessible via a simple easy to use interface. The information is often presented in HyperText and/or multi-media. The information is provided by servers which are located all around the world and are linked to each other via hyperlinks. The protocol these servers listen to is the Hypertext Transfer Protocol performing the actual transfer of the information. The usability of the web depends largely on the performance of these servers. WWW servers are typically monitored through log files. This becomes a difficult task when a single organization is responsible for a number of servers. Since many organizations currently use the Internet Standard SNMP to manage their network devices, it is desirable to treat these WWW servers as additional devices within this framework. This will allow a single Network Management Station (NMS) to automate the management of a number of WWW servers as well as the entire enterprise. Defining a standard for this purpose allows a single management application to manage a number of servers from a variety of vendors. Additionally, a formal definition of what has to be managed and how to manage it tends to lead to integrated and improved performance and fault management. 6. WWW Entities The focus of this MIB is the management of WWW entities. These entities are servers, clients and proxies which communicate with each other using the HyperText transfer Protocol (HTTP). This is a stateless protocol based on the Client/ Server paradigm. Therefore, this MIB includes WWW Server, client and proxy role of the WWW Expires August 1, 1997 [Page 4] INTERNET DRAFT WWW MIB Febrary 1, 1997 entity. The following section describe what is meant by server, client and proxy entities. Due to the similarity of HTTP to other information retrieval protocols, it is anticipated that this MIB may be directly useful to the management of applications processing other types of protocols such ftp, nntp, gopher and wais. An appendix is provided to describe how such application of this MIB might be made to other protocols. 6.1. WWW Server A WWW server is a proprietor of a general store of information. It waits for a client to come with a request for information and then returns the requested information to the client. The coverage of this MIB is suitable for WWW server although certain variables are not relevant in case the MIB is used for WWW server management. In that case the not relevant objects should return the zero-value. 6.2. WWW Client A WWW client, or also called a browser, is a application which can request information from a server and present the returned information in the appropriate format. Whenever, the client application cannot display the proper format of the retrieved information helper applications assist the WWW client with presenting the information. The coverage of this MIB is primarily for WWW servers, but clients can be managed by it as well. In case of managing the client certain variables are not relevant which should than return the zero-value. 6.3. WWW Proxy Proxies are used to provide transformations of information passed between systems/ applications. The proxies are inside the chain of the client and the server handling the request for the operator. That server is not necessarily a WWW server, but can also be an other type of application providing information requested. Such an application can be, for instance, a database which can be examined with SQL. In this particular case the proxy transfers the HTTP-request into SQL request and performs the other way around on the SQL respond by transferring it into an HTTP-request. Another way of using the proxy is to create some extra fire-wall whereby the proxy takes care of security issues. Although, this is not a real proxy. To have useful management information about proxies the MIB definition contains objects for outgoing and incoming of any particular request or response. Derived information from these so called low-level values are dependent on the use. For instance, if request are transformed into database requests you can have Expires August 1, 1997 [Page 5] INTERNET DRAFT WWW MIB Febrary 1, 1997 information on successful transformations. Whenever the proxy is used inside the fire-wall you can see how many attempts of breaking the fire-wall were made. This last one can mean there is someone trying to break a way into your network. 6.4. WWW Cached Proxy A special kind of proxies are the cached proxies. They are not always requesting information from the server lying behind. The cache contains already information made by earlier requests. The cached proxy uses that information to return the appropriate information without asking the real information provider. The useful network management information is here to know how many requests were already inside the cache of the proxy. This can also be explained as the so called 'hits/miss'-ratio. This ratio is not contained explicitly by this MIB. Instead, the ratio can be calculated by the two objects incoming requests and outgoing requests or even by the responses. [## perhaps some additional attributes are also necessary to fully cover proxy. ##] 7. HTTP Message The WWW server, client and proxy described above communicate with each other using HTTP Messages. A HTTP message consist of request from clients to servers and responses from servers to clients. The message types use the generic format of RFC 822 [## ref TBD ##]. generic-message = ( Request-Line | Status-Line) *message-header CRLF [ message-body ] The mapping of the message onto the byte counter need some special attention. All bytes before the optional message-body are in this MIB are counted as header bytes and the bytes of the message body are named the data bytes. [## is this sufficiently clear to understand the *HeaderBytes and *DataBytes attributes defined in the MIB ##] 8. Relationship to other Standards Efforts WWW servers are seen as a specific type of generic application as well as a specific type of networked application. For this reason, their management can be viewed either in terms of the operational model of the sysApplMIB or the service model of the NSM MIB. Since organizations have members of their staff interested in one and/or both of these models, this MIB is designed to address viewing the WWW server from one and/or both models simultaneously. These attributes are intended to address the requirements specified Expires August 1, 1997 [Page 6] INTERNET DRAFT WWW MIB Febrary 1, 1997 in the document "Applicability of Standards Track MIBs to Management of World Wide Web Servers" [ref]. 8.1. Relationship to NSM The Network Services Monitoring MIB is defined as the base set of attributes for managing network applications. The MIB relies on a distinguished name to define what an instance of the applTable is. In addition, it is not possible to learn from an independently developed sub-agent which indexes correspond to which wwwEntities. For these reasons, no relationship is defined to NSM. Instead, this MIB defines a base set of attributes for a service view of the WWW Server and relates those attributes to the sysApplMIB framework. 8.2. Relationship to sysAppl and applMib The sysApplMIB defines attributes for management of applications which can be realized without instrumenting an application. The ApplMIB extends that framework to include additional attributes which will require instrumentation. This MIB extends the framework again with attributes specific to WWW. 8.3. Document relation to sysApplInstall This MIB treats documents on the WWW server as packages installed on the server. Any collection of documents can be defined as a package. The wwwDocInstallPkg and wwwDocInstallElmt attributes provide details of a document on the server. [## it has been noted that relationship to sysApplInstall may be difficult, if not impossible, to implement on some platforms because it may require root access to access the data repository for the operating system. We should investigate the feasibility of implementation. ##] 8.4. Usage example for NSM to sysApplMIB relationship [## note that the relationship to NSM has been removed and that the wwwEnity table is now indexed by an independent attribute. This relationship described below and defined in the application mib is still necessary and useful to relate the service and implementation views. We need to adjust the naming to remove NSM from this portion of the text. ##] The nsmToSysApplElmtRunTable is defined in the applMib to relate NSM and sysApplMIB. The relationship between services defined in the NSM and the applications and elements implementing them in the sysAppl/applMIB framework depends on the implementation of the software. The manager needs to know about this so that a management application can understand the ramification of such things that effect instances in the various tables. WWW servers supporting "virtual hosts" on a single machine may implement the NSM and sysAppl components quite differently. Two such implementations are Apache and Netscape. Expires August 1, 1997 [Page 7] INTERNET DRAFT WWW MIB Febrary 1, 1997 Apache implements a set of processes each capable of servicing requests for any of the virtual domains configured for the host. In comparison, the Netscape server implements a set of processes for each virtual domain. So if a machine were configured as the virtual domain servers for www.a.com and www.b.com, then the following entries in NSM and sysApplMIB would make sense: Apache applTable 1) www.a.com 2) www.b.com sysApplRunTable 1) httpd sysApplElmtRunTable 1.1-1.N (where N is max simultaneous requests) Netscape applTable 1) www.a.com 2) www.b.com sysApplRunTable 1) httpd 2) httpd sysApplElmtRunTable 1.1 - 1.N ( N is max simultaneous for www.a.com) 2.1 - 2.M ( M is max simultaneous for www.a.com) With the definition of the nsmToSysApplElmtRunTable, the relationships between the applTable and sysApplRunElmtTable can be defined. If N and M are both fixed to 2, then the Apache and Netscape examples above would have the following entries in the nsmToSysApplElmtRunTable: NOTE: Entries in the following tables are of the form: index) applIndex <-> sysApplRunIndex.sysAppRunElmtIndex Apache nsmToSysApplElmtRunTable 1) 1 <-> 1.1 2) 1 <-> 1.2 3) 2 <-> 1.1 4) 2 <-> 1.2 Netscape Expires August 1, 1997 [Page 8] INTERNET DRAFT WWW MIB Febrary 1, 1997 1) 1 <-> 1.1 2) 1 <-> 1.2 3) 2 <-> 2.1 4) 2 <-> 2.2 The management application would read this table. It would determine if non-unique sysApplRunIndex.sysAppRunElmtIndex occur for different values of applIndex and if so, know that control of those entries would also effect the other entries. 9. Structure of the MIB This document defines a MIB for management of WWW servers. The MIB has the following portions: -Extensions to NSM [ref] -Extensions to sysAppl [ref] framework -error reporting -document storage and statistics -relationships to other MIBs 9.1. The systems group The System group consists of a table describing all the entities operated by this host. The table contains not only basic network management information for (potentially) multiple entities running on a single host, but also information for all entities within virtual domains of the host. The columnar objects in the table can be divided into two main groups: 1. global administrative information of the entity, such as entity contact person, and 2. network information, such as the transport address to which the entity listens. [## see appendix todo list for discussion of the indexing of this table ##] 9.2. The Statistics group The statistics group provides network management information about the traffic received or transmitted by an entity. This group contains all network traffic related counters and consists of three tables, which are the summary table, the request table and the response table. 9.2.1. SummaryTable The SummaryTable, containing a set of network traffic related counters. The table provides a summarization of the network traffic which is also found in the request and response table as well as counters of discarded and unknown incoming traffic. It is well recognized that certain variables are redundant with respect to the request and response tables, but they are added to provide Expires August 1, 1997 [Page 9] INTERNET DRAFT WWW MIB Febrary 1, 1997 an operator a quick network overview and reduce SNMP network traffic. 9.2.2. RequestInTable The RequestInTable contains the set of detailed information of incoming requests. Here every particular request type can be counted separately. 9.2.3. RequestOutTable The RequestOutTable contains the set of detailed information of outgoing requests. Here every particular request type can be counted separately. 9.2.4. ResponseInTable The ResponseInTable contains the set of detailed information of incoming responses. Here every particular response type can be counted separately. 9.2.5. ResponseOutTable The ResponseOutTable contains the set of detailed information of outgoing responses. Here every particular response type can be counted separately. 9.3. The Document group The document group contains the network management information about the accessed data. The group consists of the following tables. [## there is an implementation issue with using pkgadd to install groups that may require root access. ##] 9.3.1. wwwDocNameTable The wwwDocNameTbale provides a means for fast indexing to an entry into the document table given the name of the document. 9.3.2. wwwDocTable The wwwDocTable defines the attributes maintained about a given document. The statistics are defined based on the view of the document from the service. The wwwDocInstallPkg and wwwDocInstallElmt are provided to map to a file on the servers disk and provide information via the sysAppl package framework on the specifics of the file. 9.3.3. wwwDocFilterTable The wwwDocFilterTable is provided so that the manager can configure which documents are stored into the other two tables. The filtering is based on regular expressions [## need to define reference ##]. This allows the manager to customize the statistics that are gathered Expires August 1, 1997 [Page 10] INTERNET DRAFT WWW MIB Febrary 1, 1997 to the most relevant documents that he is interested in. 9.4. The Error group [## TBD ##] 9.5. The Application group The application group defines those attributes which extend the sysAppl/applMIB framework for WWW. For each table in the sysApplMIB, a table is defined utilizing the defined indexing scheme to extend the table for WWW specific attributes. [## additional sections can be added here when we define attributes within the skeleton tables ##] 9.6. The Relation group This group of objects defines how this MIB relates to other MIBs. 10. Definitions WWW-MIB DEFINITIONS ::= BEGIN IMPORTS sysApplInstallPkgIndex, sysApplInstallElmtIndex, sysApplRunIndex, sysApplPastRunIndex, sysApplElmtRunIndex,sysApplElmtPastRunIndex, sysApplElmtRunInvocID, sysApplElmtPastRunInvocID FROM SYSAPPL-MIB ZeroBasedCounter32, TimeFilter FROM RMON2-MIB mib-2 FROM RFC1213-MIB MODULE-IDENTITY, OBJECT-TYPE, Counter32, Integer32 FROM SNMPv2-SMI TEXTUAL-CONVENTION, DisplayString, TimeStamp, TAddress, DateAndTime, RowStatus FROM SNMPv2-TC MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF; wwwMIB MODULE-IDENTITY LAST-UPDATED "9701300000Z" ORGANIZATION "Application MIB Working Group" CONTACT-INFO " Carl W. Kalbfleisch Postal: On-Ramp Technologies 1950 Stemmons Freeway Suite 2026 - INFOMART Dallas, TX 75207 US Tel: +1 214 672-RAMP Expires August 1, 1997 [Page 11] INTERNET DRAFT WWW MIB Febrary 1, 1997 Fax: +1 214 672-7275 E-mail: cwk@onramp.net" DESCRIPTION "The MIB module for WWW entities. The MIB is named www-mib although it should be applicable to include a wide family of 'Networked Information Retrieval' protocols such as http, nntp, ftp, gopher and wais." REVISION "9701300000Z" DESCRIPTION "Removed wwwEntityAddress, wwwDocFirstAccessTimeStamp, wwwDocInBytes and wwwDocInCount. Rename wwwDocOutBytes to wwwDocBytes and wwwDocOutCount to wwwDocCount. Changed description of wwwDocStatus. Add separate indexes for request and response in and out tables." REVISION "9701080000Z" DESCRIPTION "Remove usage of applIndex. Split request/response tables." REVISION "9611190000Z" DESCRIPTION "Add skeleton tables for extending sysApplMib framework within the wwwAppl branch." REVISION "9609240000Z" DESCRIPTION "Update a number of descriptions to make MIB less www specific and more general. Remove wwwEntityObjectID. Move wwwDocNamePkg and wwwDocNameElmt to wwwDocInstallElmt and wwwDocInstallPkg in wwwDocTable." REVISION "9609230000Z" DESCRIPTION "Update a number of descriptions to make MIB less www specific and more general. Changed names of Header/Data byte attributes to Control/Content byte attributes." ::= { mib-2 8080 } -- -- Object Identifiers for the www-MIB -- wwwMIBObjects OBJECT IDENTIFIER ::= { wwwMIB 1 } wwwMIBConformance OBJECT IDENTIFIER ::= { wwwMIB 2 } wwwMIBCompliances OBJECT IDENTIFIER ::= { wwwMIBConformance 1 } wwwMIBGroups OBJECT IDENTIFIER ::= { wwwMIBConformance 2 } -- -- Textual Conventions -- WwwRequestType ::= TEXTUAL-CONVENTION Expires August 1, 1997 [Page 12] INTERNET DRAFT WWW MIB Febrary 1, 1997 STATUS current DESCRIPTION "The WwwRequestType describes the types of requests. The value of this type is exactly the same textual identification of request types used in the information transport protocol. For the proper values is referred to the specific protocol specification." SYNTAX DisplayString (SIZE (1..40)) WwwResponseType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "The WwwResponseType defines the different response values used by information transport protocols. The value of this type are the 3-digit codes used in the information transport protocol. For the proper values is referred to the specific protocol specification." SYNTAX INTEGER (100..999) WwwEntityType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "The type of the wwwEntity." SYNTAX INTEGER { wwwEntityTypeServer(1), wwwEntityTypeClient(2), wwwEntityTypeProxy(3), wwwEntityTypeCachingProxy(4), wwwEntityTypeOther (5) } WwwEntityOperStatus ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "The operational status of the wwwEntity. 'down' indicates that the wwwEntity is not available. 'running' indicates that the wwwEntity is operational and available. 'halted' indicates that the wwwEntity is operational but not available. 'congested' indicates that the wwwEntity is operational but no additional inbound associations can be accommodated. 'restarting' indicates that the wwwEntity is currently unavailable but is in the process of restarting and will be available soon." SYNTAX INTEGER { down(1), running(2), halted(3), Expires August 1, 1997 [Page 13] INTERNET DRAFT WWW MIB Febrary 1, 1997 congested(4), restarting(5) } -- -- The following textual conventions are used for document -- storage. -- WwwDocType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "This data type is used to describe the document type. It differentiates between 'static' and 'dynamic' documents. A document is said to be 'static' if subsequent accesses of the same document cause the same data to be sent to the requester. The document is not changed during the processing of the request by the server and transport towards the client. A document is said to be 'dynamic' if subsequent accesses of the file may produce various response data depending on various input parameters or run-time conditions." SYNTAX INTEGER { wwwDocStatic (1), wwwDocDynamic (2) } WwwDocName ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "The server relative name of a document. If the URL were http://www.x.org/standards/search/search.cgi?string=test then the value of this textual convention would resolve to '/standards/search/search.cgi'." SYNTAX DisplayString WwwDocIndex ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "This data type is used to index documents. Index values are monotonically increasing from 1. Index values are not reused unless the value wraps. This means that if a documents entry in the table is deleted, then re-added in the document table because it is accessed again, then the document will have a new index value." SYNTAX INTEGER (1..2147483647) -- -- The www System Group -- -- The www System group contains information about the www protocol -- entities. -- wwwSystem OBJECT IDENTIFIER ::= { wwwMIBObjects 1 } Expires August 1, 1997 [Page 14] INTERNET DRAFT WWW MIB Febrary 1, 1997 wwwEntityTable OBJECT-TYPE SYNTAX SEQUENCE OF WwwEntityEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The table of the entities present on the system." ::= { wwwSystem 1 } wwwEntityEntry OBJECT-TYPE SYNTAX WwwEntityEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Details of a particular entity which can be a Server, a Client, a Proxy or a Caching-Proxy." INDEX { wwwEntityIndex } ::= { wwwEntityTable 1 } WwwEntityEntry ::= SEQUENCE { wwwEntityIndex Integer32, wwwEntityDescription DisplayString, wwwEntityContact DisplayString, wwwEntityProtocol OBJECT IDENTIFIER, wwwEntityProtocolVersion DisplayString, wwwEntityName DisplayString, wwwEntityType WwwEntityType, wwwEntityUptime TimeStamp, wwwEntityOperStatus WwwEntityOperStatus, wwwEntityLastChange TimeStamp } wwwEntityIndex OBJECT-TYPE SYNTAX Integer32 (1..'7fffffff'h) MAX-ACCESS not-accessible STATUS current DESCRIPTION "Textual description of the entity. This shall include at least the vendor and version number of the application. In a minimal case, this might be the Product Token for the application." ::= { wwwEntityEntry 1 } wwwEntityDescription OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "Textual description of the entity. This shall include at least the vendor and version number of the application. In a minimal case, this might be the Product Token [ref] for the application. [## ref is rfc-2068 ##]" ::= { wwwEntityEntry 2 } Expires August 1, 1997 [Page 15] INTERNET DRAFT WWW MIB Febrary 1, 1997 wwwEntityContact OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "The textual identification of the contact person for this entity, together with information on how to contact this person. For instance, this might be 'webmaster@domain.name'." ::= { wwwEntityEntry 3 } wwwEntityProtocol OBJECT-TYPE SYNTAX OBJECT IDENTIFIER MAX-ACCESS read-only STATUS current DESCRIPTION "An identification of the primary protocol in use by this entity. For Internet applications, the IANA maintains a registry of the OIDs which correspond to well-known applications. If the application protocol is not listed in the registry, an OID value of the form {applTCPProtoID port} or {applUDProtoID port} are used for TCP-based and UDP-based protocols, respectively. In either case 'port' corresponds to the primary port number being used by the protocol." ::= { wwwEntityEntry 4 } wwwEntityProtocolVersion OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "Textual description of the version of the information transport protocol implemented. For HTTP version 1.1, the value shall be the 'HTTP/1.1'." ::= { wwwEntityEntry 5 } wwwEntityName OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "The fully qualified domain name by which this entity is known. This may be different than applName since that value is only a textual name for the application." ::= { wwwEntityEntry 6 } wwwEntityType OBJECT-TYPE SYNTAX WwwEntityType MAX-ACCESS read-only STATUS current DESCRIPTION "Identification of the role of the entity." Expires August 1, 1997 [Page 16] INTERNET DRAFT WWW MIB Febrary 1, 1997 ::= { wwwEntityEntry 7 } wwwEntityUptime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime at the time the wwwEntity was last initialized. If the application was last initialized prior to the last initialization of the network management subsystem, then this object contains a zero value." ::= { wwwEntityEntry 8 } wwwEntityOperStatus OBJECT-TYPE SYNTAX WwwEntityOperStatus MAX-ACCESS read-only STATUS current DESCRIPTION "Indicates the operational status of the wwwEntity." ::= { wwwEntityEntry 9 } wwwEntityLastChange OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime at the time the wwwEntity entered its current operational state. If the current state was entered prior to the last initialization of the local network management subsystem, then this object contains a zero value." ::= { wwwEntityEntry 10 } -- The www Statistics Group -- -- The www Statistics group contains information concerning the -- utilization of the www protocol entity. wwwStatistics OBJECT IDENTIFIER ::= { wwwMIBObjects 2 } -- -- wwwSummaryTable -- -- wwwSummaryTable OBJECT-TYPE SYNTAX SEQUENCE OF WwwSummaryEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The table providing overview statistics for the entities on this system." ::= { wwwStatistics 1 } Expires August 1, 1997 [Page 17] INTERNET DRAFT WWW MIB Febrary 1, 1997 wwwSummaryEntry OBJECT-TYPE SYNTAX WwwSummaryEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Overview statistics for an individual entity." INDEX { wwwEntityIndex } ::= { wwwSummaryTable 1 } WwwSummaryEntry ::= SEQUENCE { wwwSummaryInRequests Counter32, wwwSummaryOutRequests Counter32, wwwSummaryRequestErrors Counter32, wwwSummaryRequestDiscards Counter32, wwwSummaryInResponses Counter32, wwwSummaryOutResponses Counter32, wwwSummaryResponseDiscards Counter32, wwwSummaryInUnknowns Counter32, wwwSummaryInControlBytes Counter32, wwwSummaryInContentBytes Counter32, wwwSummaryOutControlBytes Counter32, wwwSummaryOutContentBytes Counter32 } wwwSummaryInRequests OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of requests received by this entity." ::= { wwwSummaryEntry 1 } wwwSummaryOutRequests OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of requests generated by this entity." ::= { wwwSummaryEntry 2 } wwwSummaryRequestErrors OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of requests containing errors and detected by this entity" ::= { wwwSummaryEntry 3 } wwwSummaryRequestDiscards OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only Expires August 1, 1997 [Page 18] INTERNET DRAFT WWW MIB Febrary 1, 1997 STATUS current DESCRIPTION "The number of requests discarded by this entity." ::= { wwwSummaryEntry 4 } wwwSummaryInResponses OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of responses received by this entity." ::= { wwwSummaryEntry 5 } wwwSummaryOutResponses OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of responses generated by this entity." ::= { wwwSummaryEntry 6 } wwwSummaryResponseDiscards OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of responses discarded by this entity." ::= { wwwSummaryEntry 7 } wwwSummaryInUnknowns OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of unknown messages detected by this entity." ::= { wwwSummaryEntry 8 } wwwSummaryInControlBytes OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of protocol control bytes received by this entity." ::= { wwwSummaryEntry 9 } wwwSummaryInContentBytes OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of protocol content bytes received by this entity." ::= { wwwSummaryEntry 10 } Expires August 1, 1997 [Page 19] INTERNET DRAFT WWW MIB Febrary 1, 1997 wwwSummaryOutControlBytes OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of protocol control bytes generated by this entity." ::= { wwwSummaryEntry 11 } wwwSummaryOutContentBytes OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of protocol content bytes generated by this entity." ::= { wwwSummaryEntry 12 } -- -- wwwRequestTables -- wwwRequestInTable OBJECT-TYPE SYNTAX SEQUENCE OF WwwRequestInEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The table providing detailed request statistics for the entities on this system." ::= { wwwStatistics 2 } wwwRequestInEntry OBJECT-TYPE SYNTAX WwwRequestInEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Request statistics for an individual entity." INDEX { wwwEntityIndex, wwwRequestInIndex } ::= { wwwRequestInTable 1 } WwwRequestInEntry ::= SEQUENCE { wwwRequestInIndex WwwRequestType, wwwRequestInCount Counter32, wwwRequestInControlBytes Counter32, wwwRequestInContentBytes Counter32, wwwRequestInLastTime TimeStamp } wwwRequestInIndex OBJECT-TYPE SYNTAX WwwRequestType MAX-ACCESS not-accessible STATUS current DESCRIPTION Expires August 1, 1997 [Page 20] INTERNET DRAFT WWW MIB Febrary 1, 1997 "The particular request type the statistics apply to." ::= { wwwRequestInEntry 1 } wwwRequestInCount OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of requests of this type received by this entity." ::= { wwwRequestInEntry 2 } wwwRequestInControlBytes OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of protocol control bytes of this type received by this entity." ::= { wwwRequestInEntry 3 } wwwRequestInContentBytes OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of protocol content data bytes received with this type by this entity." ::= { wwwRequestInEntry 4 } wwwRequestInLastTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime when the last byte of the last complete request of this type was received by this entity." ::= { wwwRequestInEntry 5 } wwwRequestOutTable OBJECT-TYPE SYNTAX SEQUENCE OF WwwRequestOutEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The table providing detailed request statistics for the entities on this system." ::= { wwwStatistics 3 } wwwRequestOutEntry OBJECT-TYPE SYNTAX WwwRequestOutEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION Expires August 1, 1997 [Page 21] INTERNET DRAFT WWW MIB Febrary 1, 1997 "Request statistics for an individual entity." INDEX { wwwEntityIndex, wwwRequestOutIndex } ::= { wwwRequestOutTable 1 } WwwRequestOutEntry ::= SEQUENCE { wwwRequestOutIndex WwwRequestType, wwwRequestOutCount Counter32, wwwRequestOutControlBytes Counter32, wwwRequestOutContentBytes Counter32, wwwRequestOutLastTime TimeStamp } wwwRequestOutIndex OBJECT-TYPE SYNTAX WwwRequestType MAX-ACCESS not-accessible STATUS current DESCRIPTION "The particular request type the statistics apply to." ::= { wwwRequestOutEntry 1 } wwwRequestOutCount OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of requests of this type generated by this entity." ::= { wwwRequestOutEntry 2 } wwwRequestOutControlBytes OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of protocol control bytes of this type generated by this entity." ::= { wwwRequestOutEntry 3 } wwwRequestOutContentBytes OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of protocol content bytes generated by this type of request by this entity." ::= { wwwRequestOutEntry 4 } wwwRequestOutLastTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime when the first byte of the last request of this type was send by this entity." Expires August 1, 1997 [Page 22] INTERNET DRAFT WWW MIB Febrary 1, 1997 ::= { wwwRequestOutEntry 5 } -- -- wwwResponseTables -- wwwResponseInTable OBJECT-TYPE SYNTAX SEQUENCE OF WwwResponseInEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The table providing detailed response statistics for the entities on this system." ::= { wwwStatistics 4 } wwwResponseInEntry OBJECT-TYPE SYNTAX WwwResponseInEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Response statistics for an individual entity." INDEX { wwwEntityIndex, wwwResponseInIndex } ::= { wwwResponseInTable 1 } WwwResponseInEntry ::= SEQUENCE { wwwResponseInIndex WwwResponseType, wwwResponseInCount Counter32, wwwResponseInControlBytes Counter32, wwwResponseInContentBytes Counter32, wwwResponseInLastTime TimeStamp } wwwResponseInIndex OBJECT-TYPE SYNTAX WwwResponseType MAX-ACCESS not-accessible STATUS current DESCRIPTION "The particular response type the statistics apply to." ::= { wwwResponseInEntry 1 } wwwResponseInCount OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of responses of this type received by this entity." ::= { wwwResponseInEntry 2 } wwwResponseInControlBytes OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION Expires August 1, 1997 [Page 23] INTERNET DRAFT WWW MIB Febrary 1, 1997 "The number of protocol control bytes of this type received by this entity." ::= { wwwResponseInEntry 3 } wwwResponseInContentBytes OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of protocol content bytes received by this type of response by this entity." ::= { wwwResponseInEntry 4 } wwwResponseInLastTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime when the last byte of the last complete response of this type was received by this entity." ::= { wwwResponseInEntry 5 } wwwResponseOutTable OBJECT-TYPE SYNTAX SEQUENCE OF WwwResponseOutEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The table providing detailed response statistics for the entities on this system." ::= { wwwStatistics 5 } wwwResponseOutEntry OBJECT-TYPE SYNTAX WwwResponseOutEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Response statistics for an individual entity." INDEX { wwwEntityIndex, wwwResponseOutIndex } ::= { wwwResponseOutTable 1 } WwwResponseOutEntry ::= SEQUENCE { wwwResponseOutIndex WwwResponseType, wwwResponseOutCount Counter32, wwwResponseOutControlBytes Counter32, wwwResponseOutContentBytes Counter32, wwwResponseOutLastTime TimeStamp } wwwResponseOutIndex OBJECT-TYPE SYNTAX WwwResponseType MAX-ACCESS not-accessible STATUS current DESCRIPTION Expires August 1, 1997 [Page 24] INTERNET DRAFT WWW MIB Febrary 1, 1997 "The particular response type the statistics apply to." ::= { wwwResponseOutEntry 1 } wwwResponseOutCount OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of responses of this type generated by this entity." ::= { wwwResponseOutEntry 2 } wwwResponseOutControlBytes OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of protocol control bytes of this type generated by this entity." ::= { wwwResponseOutEntry 3 } wwwResponseOutContentBytes OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of protocol content bytes generated by this type of response by this entity." ::= { wwwResponseOutEntry 4 } wwwResponseOutLastTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime when the first byte of the last response of this type was sent by this entity." ::= { wwwResponseOutEntry 5 } -- -- wwwDocument -- -- This portion of the MIB defines objects for the document store. -- -- The document store is viewed from two perspectives: -- -- -as seen from clients of the entity from a service perspective -- -as viewed by the collection of files in the filesystem -- -- The first case is defined as a table of statistics as seen from -- the service perspective. This wwwDocTable is indexed by -- wwwEntityIndex and a unique value for that entity for each -- document. The entries in this table defines statistics and -- information from this service perspective. Expires August 1, 1997 [Page 25] INTERNET DRAFT WWW MIB Febrary 1, 1997 -- -- The second case is defined using the sysApplInstallPkgTable and the -- sysApplInstallElmtTable. An entry in the sysApplInstallPkgTable can -- be defined for the entire collection of document resources the -- service provides, or any subset of those document resources. For -- instance, an Internet service provider may configure a separate -- entry in the sysApplInstallPkgTable for each customer on a server -- supporting multiple virtual servers, for each user name of a -- domain, etc. -- -- Entries in the sysApplInstallElmtTable correspond to each file in -- the filesystem which are mapped to entries in wwwDocTable. These -- entries in sysApplInstallElmtTable may be loaded by the agent when -- the file is first accessed, or be pre-loaded even with entries of -- files that have never been accessed by the service. -- -- The wwwDocNameTable provides a mapping from the name of the -- document resource from the service perspective to the indices -- of the wwwDocTable, the sysApplInstallPkgTable and the -- sysApplInstallElmtTable. -- wwwDocument OBJECT IDENTIFIER ::= { wwwMIBObjects 3 } -- -- wwwDocNameTable -- -- [## Note that SMI limits the max. number of elements in an -- object identifier to 128. This means that a wwwDocNameName is -- more or less limited to 100 characters. ##] wwwDocNameTable OBJECT-TYPE SYNTAX SEQUENCE OF WwwDocNameEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The table of document name to index mappings. This table is provided so that if the document name is known, the index into the wwwDocTable can be obtained without having to traverse the entire wwwDocTable. Entries are indexed by the URL path without any possible arguments. If the value of wwwEntityName.1 is www.a.org, then the wwwDocTable entry for http://www.a.org/foo/bar.html can be obtained by retrieving wwwDocNameIndex.1.13.47.102.111.111.47.98.97.114.46.104.116.109.108" ::= {wwwDocument 1} wwwDocNameEntry OBJECT-TYPE SYNTAX WwwDocNameEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION Expires August 1, 1997 [Page 26] INTERNET DRAFT WWW MIB Febrary 1, 1997 "An entry associated with a particular mapping in the wwwDocNameTable." INDEX {wwwEntityIndex, wwwDocNameName} ::= {wwwDocNameTable 1} WwwDocNameEntry ::= SEQUENCE { wwwDocNameName WwwDocName, wwwDocNameIndex WwwDocIndex } wwwDocNameName OBJECT-TYPE SYNTAX WwwDocName MAX-ACCESS not-accessible STATUS current DESCRIPTION "Auxiliary object used along with wwwEntityIndex to uniquely identify a wwwDocNameEntry for a wwwEntityEntry. wwwEntityIndex is the table index value from the Network Services Monitoring MIB." ::= {wwwDocNameEntry 1} wwwDocNameIndex OBJECT-TYPE SYNTAX WwwDocIndex MAX-ACCESS read-only STATUS current DESCRIPTION "A value that can be used along with wwwEntityIndex to access the wwwDocNameName document information in the wwwDocTable." ::= {wwwDocNameEntry 2} -- -- wwwDocFilterTable -- wwwDocFilterTable OBJECT-TYPE SYNTAX SEQUENCE OF WwwDocFilterEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table is used to filter out entries that should not appear in the wwwDocNameTable. A document name is matched against the expressions listed in this table. A successful match will stop further processing of this entry so that this document name will not appear in the wwwDocNameTable." ::= { wwwDocument 2 } wwwDocFilterEntry OBJECT-TYPE SYNTAX WwwDocFilterEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry that filters documents that match a specific regular expression." INDEX { wwwEntityIndex, wwwDocFilterIndex } Expires August 1, 1997 [Page 27] INTERNET DRAFT WWW MIB Febrary 1, 1997 ::= { wwwDocFilterTable 1} WwwDocFilterEntry ::= SEQUENCE { wwwDocFilterIndex Integer32, wwwDocFilterRegexp DisplayString, wwwDocFilterStatus RowStatus } wwwDocFilterIndex OBJECT-TYPE SYNTAX Integer32 (1..10000) MAX-ACCESS not-accessible STATUS current DESCRIPTION "An arbitrary integer used only for indexing purposes." ::= { wwwDocFilterEntry 1 } wwwDocFilterRegexp OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "A regular expression that is matched against the document name. [## Definition of a regular expression missing. ##]" ::= { wwwDocFilterEntry 2 } wwwDocFilterStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "An object used to create and remove entries in the wwwDocFilterTable." ::= { wwwDocFilterEntry 3 } -- -- wwwDocTable -- -- -- -- wwwDocTable OBJECT-TYPE SYNTAX SEQUENCE OF WwwDocEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The table of documents accessible from any entity configured in the wwwEntityTable. The agent minimally adds entries to this table to correspond with documents that have been accessed. It may choose to add entries for documents which have not yet been accessed as well." ::= { wwwDocument 3 } wwwDocEntry OBJECT-TYPE Expires August 1, 1997 [Page 28] INTERNET DRAFT WWW MIB Febrary 1, 1997 SYNTAX WwwDocEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry associated with a particular mapping in the wwwDocTable." INDEX {wwwEntityIndex, wwwDocNameIndex, wwwDocTimeMark} ::= {wwwDocTable 1} WwwDocEntry ::= SEQUENCE { wwwDocTimeMark TimeFilter, wwwDocInstallPkg Integer32, wwwDocInstallElmt Integer32, wwwDocName WwwDocName, wwwDocType WwwDocType, wwwDocFirstAccessTimeStamp DateAndTime, wwwDocLastAccessTimeStamp DateAndTime, wwwDocLastAccessResponseType WwwResponseType, wwwDocBytes ZeroBasedCounter32, wwwDocCount ZeroBasedCounter32, wwwDocSpecific OBJECT IDENTIFIER, wwwDocStatus RowStatus } wwwDocTimeMark OBJECT-TYPE SYNTAX TimeFilter MAX-ACCESS not-accessible STATUS current DESCRIPTION "A TimeFilter for this entry by which the real accesses are counted between two sequential retrievals of this table. The TimeFilter is a textual convention in RMON-2, draft-ietf-rmonmib-rmonmib-v2-03.txt. For the appropriate behaviour is referred to that MIB. The values during startup time are exactly the same during the last actions of the HTTP-server before the server went down. [## we do not actually want to purge this table when sysUptime resets. We need to consider whether this is still an acceptable use of TimeFilter. The reasoning is that we want these attributes to be maintained across restarts of the http software, the management software and the host computer. In other words, we want the data in the table to be persistent. At the same time, since the table is likely very large, we want the ability to read the updates since a given time. I would prefer the following. Rather than purging the table when sysUptime is zero (wrap or restart), return all entries in the table. For instance wwwDocName.x.y.0 would return all documents for all valid values of x and y. ##]" ::= {wwwDocEntry 1} Expires August 1, 1997 [Page 29] INTERNET DRAFT WWW MIB Febrary 1, 1997 wwwDocInstallPkg OBJECT-TYPE SYNTAX Integer32 (0..'7fffffff'h) MAX-ACCESS read-only STATUS current DESCRIPTION "This value can be used to index into the sysApplInstallPkgTable which defines the documents for this wwwEntity. Entries in the sysApplInstallPkgTable can be allocated so that the documents that the web server provides are viewed as an installed package. There might be a single package for the entire server, a package for each virtual host on the server, or entries for each user. For instance, the documents that make up www.a.com could be viewed as a package. Additionally, users whose pages show up as www.a.com/~user could be separate packages or part of the main package. If there is no file on the filesystem which corresponds to this URL (for instance it is handled internally to the web server) and there is no corresponding entry in the sysApplInstallPkgTable, then the value of this object is 0." ::= {wwwDocEntry 2} wwwDocInstallElmt OBJECT-TYPE SYNTAX Integer32 (0..'7fffffff'h) MAX-ACCESS read-only STATUS current DESCRIPTION "This value can be used along with the corresponding value for wwwDocNamePkg to index into the sysApplInstallElmtTable to find specific information about the representation of this document on the fileservers disk. The sysApplInstallPkgTable should contain an entry for every document, file, and script utilized by the web server, even if those entries correspond to items that have never been accessed. This means that there may be items in the sysApplInstallElmt tables that are not referenced from this table. If there is no corresponding file on the fileserver, then the value of this object is 0. This can occur if the URL is handled internally to the web server, or if all accesses to the URL indicate a failed requests such as document not found." ::= {wwwDocEntry 3} wwwDocName OBJECT-TYPE SYNTAX WwwDocName MAX-ACCESS read-only STATUS current DESCRIPTION "The name of this document relative to the www entity name as seen from the web. For instance if the www entity name is www.a.com and this file is accessible on the web as http://www.a.com/foo.html, then the value of this object would be '/foo.html'." ::= {wwwDocEntry 4} wwwDocType OBJECT-TYPE SYNTAX WwwDocType Expires August 1, 1997 [Page 30] INTERNET DRAFT WWW MIB Febrary 1, 1997 MAX-ACCESS read-only STATUS current DESCRIPTION "Indicates the type of the document. If the document is 'static', then the related sysApplInstallElmtSize refers to the size that is transmitted when this document is requested. If the document is 'dynamic', then the related sysApplInstallElmtSize is 0 and the amount of data transmitted on access is not known, but understood to be variable." ::= {wwwDocEntry 5} wwwDocLastAccessTimeStamp OBJECT-TYPE SYNTAX DateAndTime MAX-ACCESS read-only STATUS current DESCRIPTION "The date and time that this document was last accessed." ::= {wwwDocEntry 6} wwwDocLastAccessResponseType OBJECT-TYPE SYNTAX WwwResponseType MAX-ACCESS read-only STATUS current DESCRIPTION "The protocol response type which was sent to the client the last time this document was accessed." ::= {wwwDocEntry 7} wwwDocBytes OBJECT-TYPE SYNTAX ZeroBasedCounter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of content bytes while transmitting this document." ::= {wwwDocEntry 8} wwwDocCount OBJECT-TYPE SYNTAX ZeroBasedCounter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of times this document has been transmitted." ::= {wwwDocEntry 9} wwwDocSpecific OBJECT-TYPE SYNTAX OBJECT IDENTIFIER MAX-ACCESS read-only STATUS current DESCRIPTION "A reference to MIB definitions specific to the particular document being realized by this entry. For example, if this entry corresponds to a CGI based URL, then this value might refer to a table specific to the usage of that URL with various parameter combinations. If this information is not Expires August 1, 1997 [Page 31] INTERNET DRAFT WWW MIB Febrary 1, 1997 present, its value should be set to the OBJECT IDENTIFIER { 0 0 }, which is a syntactically valid object identifier, and any conformant implementation of ASN.1 and BER must be able to generate and recognize this value. Agents that do not support any extensions return { 0 0 } for all entries in this table." ::= {wwwDocEntry 10} wwwDocStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-write STATUS current DESCRIPTION "The status of this row. Rows are added to this table by the agent, normally when a resource is first requested. However, the agent may choose to populate the table before the document is accessed. In this case, the value of this attribute will be 'notInService'. Writing 'Destroy' to this object removes this entry from the wwwDocTable as well as removing the associated entry in the wwwDocNameTable. No other value is supported." ::= {wwwDocEntry 11} -- -- wwwError -- -- Objects which define error reporting conditions -- wwwError OBJECT IDENTIFIER ::= { wwwMIBObjects 4 } -- -- wwwAppl -- -- Objects which extend sysApplMIB/applMIB framework -- wwwAppl OBJECT IDENTIFIER ::= { wwwMIBObjects 5 } wwwApplInstalled OBJECT IDENTIFIER ::= { wwwAppl 1 } wwwApplRun OBJECT IDENTIFIER ::= { wwwAppl 2 } -- -- wwwApplInstallPkgTable -- wwwApplInstallPkgTable OBJECT-TYPE SYNTAX SEQUENCE OF WwwApplInstallPkgEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The table listing the www software application packages installed on a host computer. In order to appear in this table, it may be necessary for the application to be installed using some type of software installation mechanism or global registry so that its existence can be detected by the agent implementation. Expires August 1, 1997 [Page 32] INTERNET DRAFT WWW MIB Febrary 1, 1997 This table extends the sysApplInstallPkgTable of the sysApplMib/applMib framework with attributes specific to www applications." ::= { wwwApplInstalled 1 } wwwApplInstallPkgEntry OBJECT-TYPE SYNTAX WwwApplInstallPkgEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The logical row describing an installed www application package." INDEX { sysApplInstallPkgIndex } ::= { wwwApplInstallPkgTable 1 } WwwApplInstallPkgEntry ::= SEQUENCE { wwwApplInstallPkgBogus Integer32 } wwwApplInstallPkgBogus OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "A place holder to satisfy the MIB compiler." ::= { wwwApplInstallPkgEntry 1} -- -- wwwApplInstallElmtTable -- wwwApplInstallElmtTable OBJECT-TYPE SYNTAX SEQUENCE OF WwwApplInstallElmtEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table details the individual application package elements (files and executables) which comprise the www applications defined in the wwwApplInstallPkgTable. Table entries are indexed by sysApplInstallPkgIndex, sysApplInstallElmtIndex to facilitate retrieval of all elements associated with a particular installed application package. This table extends the sysApplInstallElmtTable of the sysApplMib/applMib framework with attributes specific to www applications." ::= { wwwApplInstalled 2 } wwwApplInstallElmtEntry OBJECT-TYPE SYNTAX WwwApplInstallElmtEntry MAX-ACCESS not-accessible STATUS current Expires August 1, 1997 [Page 33] INTERNET DRAFT WWW MIB Febrary 1, 1997 DESCRIPTION "The logical row describing an element of an installed www application. The element may be an executable or non-executable file." INDEX {sysApplInstallPkgIndex, sysApplInstallElmtIndex} ::= { wwwApplInstallElmtTable 1 } WwwApplInstallElmtEntry ::= SEQUENCE { wwwApplInstallElmtBogus Integer32 } wwwApplInstallElmtBogus OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "A place holder to satisfy the MIB compiler." ::= { wwwApplInstallElmtEntry 1} -- -- wwwApplRunTable -- wwwApplRunTable OBJECT-TYPE SYNTAX SEQUENCE OF WwwApplRunEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The table describes the www applications which are executing on the host. Each time an application is invoked, an entry is created in this table. When an application ends, the entry is removed from this table and placed in the wwwApplPastRunTable. Note that the corresponding entry in sysApplRunTable is moved to sysAPplPastRunTable at the same time. The table is indexed by sysApplInstallPkgIndex, sysApplRunIndex to enable managers to easily locate all invocations of a particular application package. This table extends the sysApplRunTable of the sysApplMib/applMib framework with attributes specific to www applications." ::= { wwwApplRun 1 } wwwApplRunEntry OBJECT-TYPE SYNTAX WwwApplRunEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The logical row describing a www application which is currently running on this host." INDEX { sysApplInstallPkgIndex, sysApplRunIndex } Expires August 1, 1997 [Page 34] INTERNET DRAFT WWW MIB Febrary 1, 1997 ::= { wwwApplRunTable 1 } WwwApplRunEntry ::= SEQUENCE { wwwApplRunBogus Integer32 } wwwApplRunBogus OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "A place holder to satisfy the MIB compiler." ::= { wwwApplRunEntry 1} -- -- wwwApplPastRunTable -- wwwApplPastRunTable OBJECT-TYPE SYNTAX SEQUENCE OF WwwApplPastRunEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A history of the www applications that have previously run on the host computer. An entry is moved to this table from the wwwApplRunTable when the invoked application represented by the entry ceases to be running. Entries remain in this table until they are aged out when either the table size reaches a maximum as determined by the sysApplPastRunMaxRows, or when an entry has aged to exceed a time limit as set by sysApplPastRunTblTimeLimit. Entries in this table are indexed by sysApplInstallPkgIndex, sysApplPastRunIndex to facilitate retrieval of all past run invocations of a particular installed application. This table extends the sysApplPastRunTable of the sysApplMib/applMib framework with attributes specific to www applications." ::= { wwwApplRun 2 } wwwApplPastRunEntry OBJECT-TYPE SYNTAX WwwApplPastRunEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The logical row describing an invocation of a www application which was previously run and has terminated. The entry is basically copied from the wwwApplRunTable when the application instance terminates. Hence, the entry's value for sysApplPastRunIndex is the same as its value was for sysApplRunIndex." INDEX { sysApplInstallPkgIndex, sysApplPastRunIndex } ::= { wwwApplPastRunTable 1 } Expires August 1, 1997 [Page 35] INTERNET DRAFT WWW MIB Febrary 1, 1997 WwwApplPastRunEntry ::= SEQUENCE { wwwApplPastRunBogus Integer32 } wwwApplPastRunBogus OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "A place holder to satisfy the MIB compiler." ::= { wwwApplPastRunEntry 1} -- -- wwwApplElmtRunTable -- wwwApplElmtRunTable OBJECT-TYPE SYNTAX SEQUENCE OF WwwApplElmtRunEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The table describes the processes which are currently executing on the host system which are associated with an invoked www application. The table is indexed by sysApplElmtRunInvocID, sysApplElmtRunIndex to make it easy to locate all running elements of a particular invoked application. This table extends the sysApplElmtRunTable of the sysApplMib/applMib framework with attributes specific to www applications." ::= { wwwApplRun 3 } wwwApplElmtRunEntry OBJECT-TYPE SYNTAX WwwApplElmtRunEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The logical row describing a process currently running on this host which is associated with an invoked www application." INDEX { sysApplElmtRunInvocID, sysApplElmtRunIndex } ::= { wwwApplElmtRunTable 1 } WwwApplElmtRunEntry ::= SEQUENCE { wwwApplElmtRunBogus Integer32 } wwwApplElmtRunBogus OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only Expires August 1, 1997 [Page 36] INTERNET DRAFT WWW MIB Febrary 1, 1997 STATUS current DESCRIPTION "A place holder to satisfy the MIB compiler." ::= { wwwApplElmtRunEntry 1} -- -- wwwApplElmtPastRunTable -- wwwApplElmtPastRunTable OBJECT-TYPE SYNTAX SEQUENCE OF WwwApplElmtPastRunEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The table describes the processes which have previously executed on the host system as part of a www application. Entries are added to this table when the corresponding process in the wwwApplElmtRun Table terminates. Just as the sysApplElmtRun entry is copied to sysApplElmtPastRun, the wwwApplElmtRun entry is copied to wwwApplElmntPastRun. Entries remain in this table until they are aged out when either the number of entries in the table reaches a maximum as determined by sysApplElmtPastRunMaxRows, or when an entry has aged to exceed a time limit as set by sysApplElmtPastRunTblTimeLimit. When aging out entries, the oldest entry, as determined by the value of sysApplElmtPastRunTimeEnded, will be removed first. The table is indexed by sysApplElmtPastRunInvocID, sysApplElmtPastRunIndex to make it easy to locate all previously executed processes of a particular invoked application. This table extends the sysApplElmtPastRunTable of the sysApplMib/applMib framework with attributes specific to www applications." ::= { wwwApplRun 4 } wwwApplElmtPastRunEntry OBJECT-TYPE SYNTAX WwwApplElmtPastRunEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The logical row describing a process which was previously executed on this host as part of a www application. The entry is basically copied from the wwwApplElmtRunTable when the process terminates. Hence, the entry's value for sysApplElmtPastRunIndex is the same as its value was for sysApplElmtRunIndex. Only those processes which could be associated with an identified application are included in this table." INDEX { sysApplElmtPastRunInvocID, sysApplElmtPastRunIndex } Expires August 1, 1997 [Page 37] INTERNET DRAFT WWW MIB Febrary 1, 1997 ::= { wwwApplElmtPastRunTable 1 } WwwApplElmtPastRunEntry ::= SEQUENCE { wwwApplElmtPastRunBogus Integer32 } wwwApplElmtPastRunBogus OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "A place holder to satisfy the MIB compiler." ::= { wwwApplElmtPastRunEntry 1} -- -- -- wwwRelate -- -- [## Placeholder in case relationships are defined later ##] -- -- Objects which define relationships to other MIB modules. -- wwwRelate OBJECT IDENTIFIER ::= { wwwMIBObjects 6 } -- -- -- Conformance and compliance definitions. -- -- wwwMIBEntityGroup OBJECT-GROUP OBJECTS { wwwEntityDescription, wwwEntityContact, wwwEntityProtocol, wwwEntityProtocolVersion, wwwEntityName, wwwEntityType, wwwEntityUptime, wwwEntityOperStatus, wwwEntityLastChange } STATUS current DESCRIPTION "" ::= { wwwMIBGroups 1 } wwwMIBSummaryGroup OBJECT-GROUP OBJECTS { wwwSummaryInRequests, wwwSummaryOutRequests, wwwSummaryRequestErrors, Expires August 1, 1997 [Page 38] INTERNET DRAFT WWW MIB Febrary 1, 1997 wwwSummaryRequestDiscards, wwwSummaryInResponses, wwwSummaryOutResponses, wwwSummaryResponseDiscards, wwwSummaryInUnknowns, wwwSummaryInControlBytes, wwwSummaryInContentBytes, wwwSummaryOutControlBytes, wwwSummaryOutContentBytes } STATUS current DESCRIPTION "" ::= { wwwMIBGroups 2 } wwwMIBRequestInGroup OBJECT-GROUP OBJECTS { wwwRequestInCount, wwwRequestInControlBytes, wwwRequestInContentBytes, wwwRequestInLastTime } STATUS current DESCRIPTION "" ::= { wwwMIBGroups 3 } wwwMIBRequestOutGroup OBJECT-GROUP OBJECTS { wwwRequestOutCount, wwwRequestOutControlBytes, wwwRequestOutContentBytes, wwwRequestOutLastTime } STATUS current DESCRIPTION "" ::= { wwwMIBGroups 4 } wwwMIBResponseInGroup OBJECT-GROUP OBJECTS { wwwResponseInCount, wwwResponseInControlBytes, wwwResponseInContentBytes, wwwResponseInLastTime } STATUS current DESCRIPTION "" ::= { wwwMIBGroups 5 } Expires August 1, 1997 [Page 39] INTERNET DRAFT WWW MIB Febrary 1, 1997 wwwMIBResponseOutGroup OBJECT-GROUP OBJECTS { wwwResponseOutCount, wwwResponseOutControlBytes, wwwResponseOutContentBytes, wwwResponseOutLastTime } STATUS current DESCRIPTION "" ::= { wwwMIBGroups 6 } wwwMIBDocumentGroup OBJECT-GROUP OBJECTS { wwwDocNameIndex, wwwDocFilterRegexp, wwwDocFilterStatus, wwwDocInstallPkg, wwwDocInstallElmt, wwwDocName, wwwDocType, wwwDocFirstAccessTimeStamp, wwwDocLastAccessResponseType, wwwDocBytes, wwwDocCount, wwwDocSpecific, wwwDocStatus } STATUS current DESCRIPTION "" ::= { wwwMIBGroups 7 } -- -- [## Placeholder in case relationships are defined later ##] -- -- wwwMIBRelateGroup OBJECT-GROUP -- OBJECTS -- { -- } -- STATUS current -- DESCRIPTION -- "" -- ::= { wwwMIBGroups 8 } wwwMIBApplGroup OBJECT-GROUP OBJECTS { wwwApplInstallPkgBogus, wwwApplInstallElmtBogus, wwwApplRunBogus, wwwApplPastRunBogus, Expires August 1, 1997 [Page 40] INTERNET DRAFT WWW MIB Febrary 1, 1997 wwwApplElmtRunBogus, wwwApplElmtPastRunBogus } STATUS current DESCRIPTION "" ::= { wwwMIBGroups 9 } -- -- [## need to define remaining attributes here. ##] -- wwwCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for SNMP entities which implement the WWW-MIB." MODULE -- this module MANDATORY-GROUPS { wwwMIBEntityGroup, wwwMIBSummaryGroup, wwwMIBRequestInGroup, wwwMIBRequestOutGroup, wwwMIBResponseInGroup, wwwMIBResponseOutGroup, wwwMIBDocumentGroup, -- wwwMIBRelateGroup, wwwMIBApplGroup } ::= { wwwMIBCompliances 1 } END 11. Verification The MIB module is verified using the SMICng MIB compiler by Dave Perkins. The following include file can be used along with the SMICng compiler. Besides the standard MIBs released with the SMICng distribution, the RMON2-MIB and SYSAPPL-MIB are require for the compilation. 11.1. SMICng Include File -- file: http.inc - HTTP-MIB -- IMPORTS #condInclude "rfc1155.inc" -- RFC1155-SMI (SNMPv1 SMI) #condInclude "rfc1212.inc" -- RFC-1212 (OBJECT-TYPE macro) #condInclude "rfc1215.inc" -- RFC-1215 (TRAP-TYPE macro) #condInclude "rfc1213.inc" -- RFC1213-MIB (MIB-II) Expires August 1, 1997 [Page 41] INTERNET DRAFT WWW MIB Febrary 1, 1997 #condInclude "rfc1215t.inc" -- RFC1215-TRAP (SNMP generic traps) #condInclude "rfc1902.inc" -- SNMPv2-SMI (SNMPv2 SMI) #condInclude "rfc1903.inc" -- SNMPv2-TC (SNMPv2 TC macro and base TCs) #condInclude "rfc1904.inc" -- SNMPv2-CONF (SNMPv2 Conformance macros) #condInclude "rfc1565.inc" -- APPLICATION-MIB #condInclude "sysappl-06.inc" -- SYSAPPL-MIB #condInclude "rmon2-03.inc" -- RMON2-MIB -- MIB module #pushOpt #removeOpt "C R W 7 S B" -- remove strict checking #condInclude "mib-01.my" -- WWW-MIB #condExcludeModule WWW-MIB 0 #popOpt 12. References [] Kalbfleisch, C., "Applicability of Standards Track MIBs to Management of World Wide Web Servers", RFC-2039, OnRamp Technologies, November 1996 [] Anonymous, "Logging in the W3C httpd", http://www.w3.org/hypertext/WWW/Daemon/User/Config/Logging.html, W3C, July 1995 [] McCloghrie, K., and M. Rose, Editors, "Management Information Base for Network Management of TCP/IP-based internets: MIB- II", STD 17, RFC 1213, Hughes LAN Systems, Performance Systems International, March 1991. [] Grillo, P., and S. Waldbusser, "Host Resources MIB", RFC 1514, Network Innovations, Intel Corporation, Carnegie Mellon University, September 1993 [] Kille, S., and N. Freed, "Network Services Monitoring MIB", RFC 1565, ISODE Consortium, Innosoft, January 1994 [] Saperia, J., C. Krupczak, R. Sturm, and J. Weinstock, "Definition of Managed Objects for Applications", draft-ietf-applmib-sysapplmib-02.txt, BGS Systems, Empire Technologies, Enterprise Management Professional Services, Bellcore, May 1996 [] Krupczak, C. and S. Waldbusser, "Applicability of Host Resources MIB to Application Management", Empire Technologies, Inc., International Network Services, October 1995. [] Kille, S., and N. Freed, "Mail Monitoring MIB", RFC 1566, ISODE Consortium, Innosoft, January 1994 [] Mansfield, G., and S. Kille, "X.500 Directory Monitoring MIB", RFC 1567, AIC Systems Laboratory, ISODE Consortium, January 1994 Expires August 1, 1997 [Page 42] INTERNET DRAFT WWW MIB Febrary 1, 1997 [] Postel, J., and Reynolds, J.K., "File TransferProtocol (FTP).", RFC 959, USC/ISI, October 1985. [] Kantor, B., and P. Lapsley, "Network News Transfer Protocol: A Proposed Standard for the Stream-Based Transmission of News", RFC 977, UC San Diego & UC Berkeley, February 1986. [] Horton, M., and R. Adams, "Standard for interchange of USENET messages", RFC 1036, AT&T Bell Laboratories, Center for Seismic Studies, December 1987. [] Fielding, R., J. Gettys, J. Mogul, H. Frystyk, T. Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC 2068, UC Irvine, DEC, DEC, MIT/LCS, January 1997 [## Addition references are needed here for RMON-2, FTP, NNTP, GOPHER, WAIS, HTTP 1.1 ##] 13. Acknowledgments This document was produced by the Application MIB working group and the members of the http-mib@onramp.net mailing list. The authors gratefully acknowledges the comments of the following individuals: Randy Preshun John Saperia Cheryl Krupczak 14. Security Considerations Security issues are not discussed in this memo. 15. Appendix A: Document Transfer Protocol Mappings This appendix describes the mapping of existing protocols which can be used for the Document Transfer Protocol (DTP). 15.1. The HyperText Transfer Protocol The HyperText Transfer Protocol (HTTP) is an application-level protocol used to transfer hypermedia documents in a distributed networked environment. Typing and negotiation of data representation is an important feature of HTTP. These features provide flexibility of document transfer between HTTP protocol entities. Another advantage of HTTP is that HTTP allows an open-ended set of methods indicating the type of request and an open-ended set of status-codes indicating the result of a request. HTTP is based on the Request/Response paradigm and, therefore, fulfills the requirement of a DTP. It is also based on the Uniform Resource Identifier which is a reference discipline for pointing to documents. This section Expires August 1, 1997 [Page 43] INTERNET DRAFT WWW MIB Febrary 1, 1997 describes how to populate the WWW-MIB when it is used for HTTP. 15.1.1. The system group The system group contains only the wwwEntityTable in which two columnar objects, the wwwEnitityProtocol and the wwwEntityProtocolVersion, depending on the implemented protocol. The mapping of the columnar objects: wwwEntityProtocol = "khfdkjghfdsk" wwwEntityProtocolVersion = "HTTP/X.Y" where X.Y defines the highest version of HTTP the entity supports. 15.1.2. The statistics group The network statistics are mapped onto three tables: the Summary Table, the Request Tables and the Response Tables. All different HTTP messages have to be mapped onto these tables. Since HTTP allows for both request and responses an open-ended set of message types the mapping onto the tables will be done by means of the general message syntax of HTTP. This general message syntax is extracted from the HTTP version 1.1, RFC $$$$. Therefore, if the user wants a more detailed description of the HTTP protocol is referred to this protocol specification. The BNF, as defined in the HTTP specification, is used to describe the message syntax. HTTP-message = start-line *message-header CRLF [ message-body ] start-line = Request-Line | Status-Line Request-Line = Method SP Request-URI SP HTTP-Version CRLF Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF The mapping of the wwwSummaryTable: wwwSummaryInRequests = the number of messages received with the 'start-line' containing a 'Request-Line'. wwwSummaryOutRequests = the number of messages transmitted with the 'start-line' containing a 'Request-Line'. wwwSummaryRequestsErrors = the number of requests received, but were not according the general message syntax. Expires August 1, 1997 [Page 44] INTERNET DRAFT WWW MIB Febrary 1, 1997 wwwSummaryRequestsDiscards = the number of requests received, but were discarded. wwwSummaryInResponses = the number of messages received with the 'start-line' containing a 'Response-Line'. wwwSummaryOutResponses = the number of messages received with the 'start-line' containing a 'Response-Line' wwwSummaryResponsesErrors = the number of responses received, but were not according the general massage syntax. wwwSummaryInUnkonows = the number of messages received, but could not be mapped on the previous columnar objects. wwwSummaryInControlBytes = the total number of bytes counted in the start-line, message-headers and the CRLF of all received requests and responses which were counted by wwwSummaryInRequests and wwwSummaryInResponses. wwwSummaryOutControlBytes = the total number of bytes counted in the start-line, message-headers and the CRLF of all transmitted requests and responses which were counted by wwwSummaryOutRequests and wwwSummaryOutResponses. wwwSummaryInContentBytes = the total number of bytes contained by the message body of all received requests and responses which were counted by wwwSummaryInRequests and wwwSummaryInResponses. wwwSummaryOutContentBytes = the total number of bytes contained by the message body of all transmitted requests and responses which were counted by wwSummaryOutRequests and wwwSummaryOutResponses. The mapping of the wwwRequestInTable: wwwRequestIndex = the value of the Method-token in the Request-line (not-accessible, but used as index). wwwRequestInCount = the number of received request Expires August 1, 1997 [Page 45] INTERNET DRAFT WWW MIB Febrary 1, 1997 messages containing the associated Method-token. wwwRequestInControlBytes = the total number of bytes counted in the start-line, the message-headers and the CRLF of all received requests containing the associated Method-token. wwwRequestInContentBytes = the total number of bytes contained in the message body of all received requests containing the associated Method-token. wwwRequestInLastTime = the timestamp of the last time a request containing the associated Method-token was received. The mapping of the wwwRequestOutTable: wwwRequestOutCount = the number of transmitted request messages containing the associated Method-token. wwwRequestOutControlBytes = the total number of bytes counted in the start-line, the message-headers and the CRLF of all transmitted requests containing the associated Method-token. wwwRequestOutContentBytes = the total number of bytes contained in the message body of all transmitted requests containing the associated Method-token. wwwRequestOutLastTime = the timestamp of the last time a request containing the associated Method-token was transmitted. The mapping of the wwwResponseInTable: wwwResponseIndex = the value of the Response-Code in the Response-line (not-accessible, but used as index). wwwResponseInCount = the total number of received messages containing the associated Response-Code. wwwResponseInControlBytes = the total number of bytes counted in the start-line, the message-headers and the CRLF of all transmitted requests containing the associated Response-Code. Expires August 1, 1997 [Page 46] INTERNET DRAFT WWW MIB Febrary 1, 1997 wwwResponseInContentBytes = the total number of bytes contained by the message body of all received requests with the associated Response-Code. wwwResponseInLastTime = the timestamp of the last time a request containing the associated Response-Code was received. The mapping of the wwwResponseOutTable: wwwResponseOutCount = the total number of transmitted requests which contained the associated Method-token. wwwResponseOutControlBytes = the total number of bytes counted in the start-line, message-headers and the CRLF of all transmitted requests containing the associated Method-token. wwwResponseOutContentBytes = the number of bytes contained by the message body of all transmitted requests containing the associated Method-token. wwwResponseOutLastTime = the timestamp of the last time a message containing the associated was transmitted. An example of the statistics mapping will be done by the following example. NOTE: CR and LF are respectivelythe characters "carriage-return" and "line-feed". The request which is received. "GET / HTTP/1.0CRLF" "CRLF" The tables which change by processing the request. wwwSummaryTable: wwwSummaryInRequests = increment with 1. wwwSummaryOutRequests = - wwwSummaryRequestsErrors = - wwwSummaryRequestsDiscards = - wwwSummaryInResponses = - wwwSummaryOutResponses = - wwwSummaryInControlBytes = increment with 18. wwwSummaryOutControlBytes = - wwwSummaryInContentBytes = - wwwSummaryOutContentBytes = - Expires August 1, 1997 [Page 47] INTERNET DRAFT WWW MIB Febrary 1, 1997 wwwRequestInTable: wwwRequestIndex = "GET" wwwRequestInCount = increment (entry "GET") with 1. wwwRequestInControlBytes = increment (entry "GET") with 18. wwwRequestInContentBytes = - wwwRequestInLastTime = update timestamp of entry "GET". The response which is returned after previous request. "HTTP/1.1 200 OKCRLF" "Date: Sun, 05 Jan 1997 19:41:41 GMTCRLF" "Server: Apache/1.2-devCRLF" "Connection: closeCRLF" "Content-Type: text/htmlCRLF" "Last-Modified: Sun, 05 jan 1997 19:40:10 GMTCRLF" "Content-Length: 25CRLF" "Accept-Ranges: bytesCRLF" "CRLF" "Text in message BodyLF" The tables which change by processing the response. wwwSummaryTable: wwwSummaryInRequests = - wwwSummaryOutRequests = - wwwSummaryRequestsErrors = - wwwSummaryRequestsDiscards = - wwwSummaryInResponses = - wwwSummaryOutResponses = increment with 1. wwwSummaryInControlBytes = - wwwSummaryOutControlBytes = increment with 232. wwwSummaryInContentBytes = - wwwSummaryOutContentBytes = increment with 21. The mapping of the wwwResponseOutTable: wwwResponseOutCount = increment (entry 200) with 1 wwwResponseOutControlBytes = increment (entry 200) with 232. wwwResponseOutContentBytes = increment (entry 200) with 21. wwwResponseOutLastTime = update timestamp of entry 200. 15.2. The File Transfer Protocol The File Transfer Protocol is a protocol defined for transferring documents between hosts connected by TCP/IP. FTP is based on the Request/Response paradigm and, therefore, fulfills the requirement of a DTP. It is also based on the Uniform Resource Identifier which is a reference discipline for pointing to documents. This section describes how to populate the WWW-MIB when it is used for FTP. The FTP model to transfer files defines two different connection types between client and server. The FTP model is depicted below. Expires August 1, 1997 [Page 48] INTERNET DRAFT WWW MIB Febrary 1, 1997 ------------- |+---------+| || User || -------- ||Interface|<--->| User | |+----|----+| -------- ---------- | | | |+------+| control connection |+----|----+| ||Server|<------------------->|| Client || || PI || Commands/Replies || PI || |+--|---+| |+----|----+| | | | | | | -------- |+--|---+| Data |+----|----+| -------- | File |<--->|Server|<------------------->|| Client |<--->| File | |System| || DTP || Connection || DTP || |System| -------- |+------+| |+---------+| -------- ---------- ------------- The connection between client and server is made with two different types of connections, the control connection and data connection. During a session the control connection is persistent and always available. Over this connection the FTP commands and associated replies are exchanged. The data connection is only available when a bulk a data has to be transferred. FTP commands are requests initiated by the client and specify parameters of data connection and the nature of the data transfer operation. The commands are grouped by the functionality of their purposes. The groups are: access control commands, transfer commands and service commands. Within these groups multiple commands are defined by their functionality. Every command is also associated with a command code. For the purpose of the WWW-MIB the command code is seen as the request-type. For instance, the command "USER NAME" with command code "USER" and, therefore, "USER" is mapped onto the wwwRequestType. FTP replies are used to ensure the synchronization of the command and data transfer actions of FTP client and server. They also guarantee that the user always knows the state of the server. An FTP reply is a three-digit number followed by explainary text. The number is mainly intended for automated processing of the reply and the explanatory text is for the user. For the purpose of the WWW-MIB the three-digit code is mapped onto the wwwResponseType. The mapping of FTP onto the WWW-MIB is described with the use of the above FTP model. 15.2.1. The system group The wwwEntityTable of the system group has only two columnar objects depending on the protocol. Which are wwwEntityProtocol and wwwEntityProtocolVersion. Expires August 1, 1997 [Page 49] INTERNET DRAFT WWW MIB Febrary 1, 1997 The mapping of the columnar objects: wwwEntityProtocol = "khfdkjghfdsk" wwwEntityProtocolVersion = "FTP/X.Y" where X.Y define the highest version of FTP this entity supports. 15.2.2. The statistics group The network statistics of the DTP are mapped onto three tables which are the Summary Table, the Request Table and the Response Table. The mapping of the wwwSummaryTable: wwwSummaryInRequests = the number of commands received over the control connection. wwwSummaryOutRequests = the number of commands transmitted over the control connection. wwwSummaryRequestsErrors = the number of commands received, but could not be recognized as an FTP command. wwwSummaryRequestsDiscards = the number of commands received but where not processed (discarded). wwwSummaryInResponses = the number of commands received over the control connection. wwwSummaryOutResponses = the number of replies transmitted over the control connection. wwwSummaryResponsesErrors = the number of replies received, but could not be recognized an an FTP reply. wwwSummaryInUnknows = the number of messages received and could not be recognized as an FTP command or reply. wwwSummaryInControlBytes = the number of bytes received over the controlconnection. wwwSummaryOutControlBytes = the number of bytes transmitted over the control connection. wwwSummaryInContentBytes = the number of bytes received over the data connection. wwwSummaryOutContentBytes = the number of bytes transmitted over the dataconnection. The mapping of the wwwRequestInTable: Expires August 1, 1997 [Page 50] INTERNET DRAFT WWW MIB Febrary 1, 1997 wwwRequestIndex = the value of the command-code as defined for an FTP-command (not-accessible, but used as index). wwwRequestInCount = the number of received messages containing the associated command-code. wwwRequestInControlBytes = the number of bytes counted in messages containing the associated command-code received over the control connection. wwwRequestInContentBytes = the number of bytes transferred over the data connection only applied to the associated command-code which cause a server to accept or transfer data. Otherwise the value should be zero. wwwRequestInLastTime = the last time a message with the associated command-code was received. The mapping of the wwwRequestOutTable: wwwRequestOutCount = the number of transmitted messages containing the associated command-code. wwwRequestOutControlBytes = the number of bytes counted in transmitted messages over the control connection containing the associated command-code. wwwRequestOutContentBytes = the number of bytes transferred over the data connection only applied to an associated command-code which causes a server to accept or transfer data. Otherwise the value should be zero. wwwRequestOutLastTime = the last time the associated command-code was transmitted. The mapping of the wwwResponseInTable: wwwResponseIndex = the three-digit numerical value as defined for an FTP-reply (not-accessible, but used as index). wwwResponseInCount = the number of responses Expires August 1, 1997 [Page 51] INTERNET DRAFT WWW MIB Febrary 1, 1997 received with the associated numerical value of the FTP-reply. wwwResponseInControlBytes = the number of bytes received over the control connection of the associated numerical value of the FTP-reply was received. wwwResponseInContentBytes = this values should be zero. wwwResponseInLastTime = the last time the associated numerical value of the FTP-reply was received. The mapping of the wwwResponseOutTable: wwwResponseOutCount = the number of responses transmitted with the associated numerical value of the FTP-reply. wwwResponseOutControlBytes = the number of bytes transmitted over the control connection with the associated numerical value of the FTP-reply. wwwResponseOutContentBytes = this value should be zero. wwwResponseOutLastTime = the last time the associated numerical value of the FTP-reply was transmitted. 16. Appendix - Todo List [## This section will be removed when the document is complete because all items that are "to do" will have been done! ##] 16.1. Resolve wwwDocName usage and TC definition The wwwDocNameName value likely needs to be limited to around 100 bytes in length because it is an index. The wwwDocName could however represent a longer number of bytes. One option is to define it as OCTET STRING so it can be as long as necessary, but rfc-1902 indicates there may be interoperability issues with OCTET STRING greater than 255 bytes. 16.2. Handle illegal index values Determine what to do with illegal index values for pointers to other tables, specifically for sysAppl. 16.3. Identify attributes for sysAppl framework Currently a skeleton of tables has been defined that extend the sysAppl/applMib framework. The idea is that the sysAppl framework Expires August 1, 1997 [Page 52] INTERNET DRAFT WWW MIB Febrary 1, 1997 will apply to a portion of the MIB. Attributes that are desired for www, but not defined in either sysAppl or applMib will be placed within these skeleton tables. 16.4. Regular Expression Pick as standard definition for regular expressions for the wwwDocFilter. 16.5. Proxy Entity Determine additional attributes that are needed to handle proxy in terms of an entity. 16.6. Proxy Documents Determine whether the representation of the wwwDoc tables is sufficient or necessary for proxy. 16.7. Handle all [##...##] Remove and resolve all [##...##] notation. 16.8. Filter entries Determine how to represent filter entries that are applicable to all www entities. Should there be a separate table for such entries that are global? Should there be a special index? Do we consider this a management application problem whcih populates rows of each table? 16.9. Treating documents with sysApplInstall There is an implementation issue for treating documents as installed packages. This is because on some platforms, root access is needed to update the software registry. The question is how to work around this. Should we change the notion of using sysApplInstall? Should we consider some implementation hints? 17. Appendix - Done List [## This section will be removed when the document is complete because all items that are "to do" will have been done! ##] 17.1. Terminology Flush out section on terminology 17.2. Handle NSM to sysApplMIB relationship Determine where nsmToSysApplElmtRunTable should be defined. Options appear to be sysApplMIB, this MIB or a separate document. Currently the definition has been moved to applMib. The NSM relationship was removed. The table has moved to applMib. That table now needs to become the wwwEntity to sysAppl relate. 17.3. Handle applIndex DONE. Previously, wwwEntityTable utilized the applIndex of NSM. This index is no longer utilized and instead, wwwEntityIndex is defined. 17.4. Split in/out stats Expires August 1, 1997 [Page 53] INTERNET DRAFT WWW MIB Febrary 1, 1997 There has been a suggestion made to split the in/out attributes of the summary, request and response tables into separate tables. The reasoning is that this is more straight forward to have entries in the appropriate rows of the tables only when there are non-zero counts rather than have zero values for one or the other sets of attributes. Is there any objection to this change? The request and response tables have been split. Summary table remains unsplit and I have send a message to the mailing list for discussion. 17.5. replace section 15 Harrie has provided replacement text for the mappings. 17.6. in/out counts in wwwDocTable Do we need in/out counts in the wwwDocTable, or just out counts? The in/out counts were added for proxy. But, the indexing does not lend itself to providing all proxied documents in the table. In bytes and counts were removed. Out bytes and counts were renamed. 18. Authors' Address Carl W. Kalbfleisch OnRamp Technologies, Inc. Email: cwk@onramp.net 1950 Stemmons Frwy 2026 INFOMART Dallas, TX 75207 USA Tel: (214) 672-7246 cwk@onramp.net Fax: (214) 672-7275 Harrie Hazewinkel Centre for Earth Observation Institute for Space Applications Joint Research Centre of the E.C. TP. 950 Ispra 21020 (VA) Italy Tel: +39+(0)332+789384 harrie.hazewinkel@jrc.it Fax: +39+(0)332+785500 Juergen Schoenwaelder Computer Science Department University of Twente P.O. Box 217, NL-7500 AE Enschede The Netherlands. Tel: +31-53-489-3678 schoenw@cs.utwente.nl Fax: +31-53-489-3247 Expires August 1, 1997 [Page 54] INTERNET DRAFT WWW MIB Febrary 1, 1997 Table of Contents 1. Abstract..........1 2. The SNMPv2 Network Management Framework..........2 2.1. Object Definitions..........2 3. Notation..........3 4. A Note on Terminology..........3 5. Introduction..........4 6. WWW Entities..........4 6.1. WWW Server..........5 6.2. WWW Client..........5 6.3. WWW Proxy..........5 6.4. WWW Cached Proxy..........6 7. HTTP Message..........6 8. Relationship to other Standards Efforts..........6 8.1. Relationship to NSM..........7 8.2. Relationship to sysAppl and applMib..........7 8.3. Document relation to sysApplInstall..........7 8.4. Usage example for NSM to sysApplMIB relationship..........7 9. Structure of the MIB..........9 9.1. The systems group..........9 9.2. The Statistics group..........9 9.2.1. SummaryTable..........9 9.2.2. RequestInTable..........10 9.2.3. RequestOutTable..........10 9.2.4. ResponseInTable..........10 9.2.5. ResponseOutTable..........10 9.3. The Document group..........10 9.3.1. wwwDocNameTable..........10 9.3.2. wwwDocTable..........10 9.3.3. wwwDocFilterTable..........10 9.4. The Error group..........11 9.5. The Application group..........11 9.6. The Relation group..........11 10. Definitions..........11 11. Verification..........41 11.1. SMICng Include File..........41 12. References..........42 13. Acknowledgments..........43 14. Security Considerations..........43 15. Appendix A: Document Transfer Protocol Mappings..........43 15.1. The HyperText Transfer Protocol..........43 15.1.1. The system group..........44 15.1.2. The statistics group..........44 15.2. The File Transfer Protocol..........48 15.2.1. The system group..........49 15.2.2. The statistics group..........50 16. Appendix - Todo List..........52 16.1. Resolve wwwDocName usage and TC definition..........52 16.2. Handle illegal index values..........52 16.3. Identify attributes for sysAppl framework..........52 16.4. Regular Expression..........53 16.5. Proxy Entity..........53 16.6. Proxy Documents..........53 16.7. Handle all [##...##]..........53 16.8. Filter entries..........53 INTERNET DRAFT WWW MIB Febrary 1, 1997 16.9. Treating documents with sysApplInstall..........53 17. Appendix - Done List..........53 17.1. Terminology..........53 17.2. Handle NSM to sysApplMIB relationship..........53 17.3. Handle applIndex..........53 17.4. Split in/out stats..........53 17.5. replace section 15..........54 17.6. in/out counts in wwwDocTable..........54 18. Authors' Address..........54 Expires August 1, 1997 [Page 56]