Table Of Contents
Monitoring and Troubleshooting
Showing Inventory
Monitoring Standalone Content Engines
Monitoring Standalone Content Engines with the Cisco Discovery Protocol
Monitoring Standalone Content Engines with SNMP
Understanding the Different Versions of SNMP
Supported MIBs
Downloading MIB Files to Standalone Content Engines
Enabling the SNMP Agent on Standalone Content Engines
Defining SNMP Users for Standalone Content Engines
Configuring Standalone Content Engines to Send SNMP Traps
Disabling the SNMP Agent on Standalone Content Engines
Disabling SNMP Traps on Standalone Content Engines
Monitoring Standalone Content Engines with the ACNS Software Alarms
Alarm Severity Levels
Alarm Overload
Checking for Application Liveness
Configuring SNMP Alarm Traps on Standalone Content Engines
Displaying Information About ACNS Software Alarms
Displaying Details About ACNS Software Alarms
Displaying the History of ACNS Software Alarms
Displaying the Status of ACNS Software Alarms
Monitoring Transactions with Standalone Content Engines
Displaying Statistics for Particular Protocols
Monitoring Critical Disk Drives on Standalone Content Engines
Specifying the Disk Error-Handling Threshold
Manually Marking and Unmarking Content Engine Disk Drives
Displaying Details About the Current Disk Configuration
Removing All Disk Partitions on a Single Disk Drive
Using ACNS Software Transaction Logs
Enabling Transaction Logging
Enabling Squid-Style Transaction Logging
Enabling Extended Squid-Style Transaction Logging
Enabling Apache-Style Transaction Logging
Enabling Custom Format Transaction Logging
Logging Windows Domain with Authenticated Usernames
Sanitizing Transaction Logs
Exporting Transaction Log Files
Exporting Transaction Logs to External FTP or STFP Servers
Changing the Transaction Logging Export Settings on Standalone Content Engines
Restarting Export After Receiving a Permanent Error from the External FTP Server
Archiving the Working Log
Disabling Transaction Logging Export on Standalone Content Engines
Monitoring HTTP Request Authentication Failures in Real Time
Configuring the Remote Syslog Host for Real-Time Transaction Logging
Configuring a Transaction Log Facility when Logging to a Remote Syslog Host
Specifying the Transaction Log Entry Type when Logging to a Remote Syslog Host
Displaying the Transaction Log Configuration for Standalone Content Engines
Using the System Logging Feature
Displaying the Current Configuration for System Logging
Configuring System Logging on Standalone Content Engines
Configuring System Logging to the Console
Configuring System Logging to Disk
Configuring System Logging to Remote Syslog Hosts
Mapping Syslog Priority Levels to RealProxy Error Codes
Using CiscoWorks2000
Creating HTTP Custom Error Pages for Standalone Content Engines
Troubleshooting with the HTTP CLI Client
Troubleshooting with the Log Viewing Tool
Troubleshooting with the Telnet Client
Troubleshooting with Ping
Troubleshooting with Traceroute
Monitoring and Troubleshooting
This chapter describes how to monitor and troubleshoot locally managed deployments (standalone Content Engines). This chapter contains the following sections:
•
Showing Inventory
•
Monitoring Standalone Content Engines
•
Monitoring Transactions with Standalone Content Engines
•
Monitoring HTTP Request Authentication Failures in Real Time
•
Using the System Logging Feature
•
Creating HTTP Custom Error Pages for Standalone Content Engines
•
Troubleshooting with the HTTP CLI Client
•
Troubleshooting with the Log Viewing Tool
•
Troubleshooting with Ping
•
Troubleshooting with Traceroute
Note
For complete syntax and usage information for the CLI commands used in this chapter, refer to the Cisco ACNS Software Command Reference, Release 5.2 publication.
For information about monitoring and troubleshooting a Content Router, Content Distribution Manager, or a Content Engine that is registered with a Content Distribution Manager (as opposed to standalone Content Engines that are not registered with a Content Distribution Manager), refer to the Cisco ACNS Software Configuration Guide for Centrally Managed Deployments, Release 5.2.
Showing Inventory
Cisco Content Engines are embedded with following three identification items:
•
Product ID (PID)
•
Version ID (VID)
•
Serial number (SN)
This identity information is stored in non-volatile memory. Each Content Engine has a unique device identifier (UDI). The UDI = PID + VID + SN.
The UDI is electronically accessed by the product operating system or network management application to enable identification of unique hardware devices. Consequently, the data integrity of the UDI is vital to customers. This means that the UDI that is programmed into the Content Engine's non-volatile memory is equivalent to the UDI that is printed on the product label and on the carton label. This UDI is also equivalent to the UDI that can be viewed through any electronic means, and in all customer-facing systems and tools.
In ACNS 5.2 software, the show inventory EXEC command was added to allow the administrator of a Content Engine to view the Content Engine's UDI. Currently, there is only CLI access to the UDI; there is no SNMP access to the UDI information.
All of the Content Engine models that are supported in ACNS 5.2 software, support this new show inventory feature.
On newer Content Engine models, you can display the Content Engine's UDI by using a single command, the show inventory EXEC command.
PID: CE-565-K9 VID: 0 SN: serial number
where serial number is the serial number of the Content Engine. If the version number is available, then it is displayed; otherwise, zero "0" is displayed (as shown above).
On older Content Engine models (for example, the CE-507 or CE-2636), you must use the show tech-support and show inventory EXEC commands to display the Content Engine's UDI.
Please look at 'sh tech-support' for information!
CE-507# show tech-support
Note
Refer to the Release Notes for Cisco ACNS Software, Release 5.2 for a list of hardware platforms that are supported in ACNS software, Release 5.2.
Monitoring Standalone Content Engines
It is important that you monitor your Content Engines in order to gauge their performance and to identify any signs that you need to tune their configurations or deploy additional Content Engines. This section describes how use the Simple Network Management Protocol (SNMP) and ACNS software alarms to monitor standalone Content Engines.
Several tools are available to monitor the performance of standalone Content Engines that are running ACNS software, Release 5.2 or later. This set of tools includes the Cisco Discovery Protocol (CDP), SNMP, and ACNS software alarms. For more information, see the following sections:
•
Monitoring Standalone Content Engines with the Cisco Discovery Protocol
•
Monitoring Standalone Content Engines with SNMP
•
Monitoring Standalone Content Engines with the ACNS Software Alarms
Monitoring Standalone Content Engines with the Cisco Discovery Protocol
Cisco Discovery Protocol (CDP) is a device discovery protocol that runs on all Cisco-manufactured devices. With CDP, each device within a network sends periodic messages to all other devices within the network. Devices listen to periodic messages sent by others in order to learn about neighboring devices and determine the status of their interfaces.
With CDP, network management applications can learn the device type and the SNMP agent address of neighboring devices. Applications are then able to send SNMP queries within the network. Also, CiscoWorks2000 discovers the Content Engine by noticing the CDP packets that are sent by the Content Engine after booting.
Content Engine-related tasks require that the Content Engine platform support CDP in order to be able to notify the system manager of the existence, type, and version of the Content Engine platform.
The following example enables CDP implementation on a standalone Content Engine with a single CLI command:
ContentEngine(config)# interface FastEthernet 0/0 cdp enable
Monitoring Standalone Content Engines with SNMP
Simple Network Management Protocol (SNMP) is an interoperable standards-based protocol that allows for external monitoring of the Content Engine through an SNMP agent.
An SNMP-managed network consists of three primary components: managed devices, agents, and management systems.
•
A managed device is a network node that contains an SNMP agent and resides on a managed network.
•
Managed devices collect and store management information and use SNMP to make this information available to management systems that use SNMP. Managed devices include routers, access servers, switches, bridges, hubs, computer hosts, and printers.
•
An SNMP agent is a software module that resides in a managed device. An agent has local knowledge of management information and translates that information into a form compatible with SNMP. The SNMP agent gathers data from the Management Information Base (MIB), which is the repository for information about device parameters and network data. The agent can also send traps, or notification of certain events, to the manager.
Each Content Engine that is running ACNS 5.x software has an SNMP agent that is responsible for gathering information about the Content Engine's device configuration and activity. Before you can access this SNMP information, you must have deployed an SNMP management application on a management station. This SNMP management station is referred to as the SNMP host because it uses SNMP to send the device agent an SNMP Get request to obtain information from the Content Engine.
The SNMP management station and the device agent (the SNMP agent on the Content Engine) use SNMP to communicate, as follows:
1.
The SNMP management station (the SNMP host) uses SNMP to request information from the Content Engine.
2.
After receiving these SNMP requests, the device agent on the Content Engine accesses a table that contains information about the individual device (the Content Engine). This table, or database, is called a Management Information Base (MIB).
Note
The SNMP agent on the Content Engine only initiates communication with the SNMP host under unusual conditions; it will initiate communication when it has a trap it needs to send to the host. For more information on this topic, see the "Configuring Standalone Content Engines to Send SNMP Traps" section.
3.
After locating the specified information in the MIB, the device agent uses SNMP to send the information to the SNMP management station.
Figure 20-1 illustrates these SNMP operations when the Content Engine has been standalone.
Figure 20-1 SNMP Components with a Standalone ACNS Content Engine
Understanding the Different Versions of SNMP
ACNS 5.x software supports the following versions of SNMP:
•
Version 1 (SNMPv1)—This is the initial implementation of SNMP. Refer to RFC 1157 for a full description of its functionality.
•
Version 2 (SNMPv2c)—This is the second release of SNMP, described in RFC 1902. It provides additions to data types, counter size, and protocol operations.
•
Version 3 (SNMPv3)—This is the most recent version of SNMP, defined in RFC 2271 through RFC 2275.
SNMP Security Models and Security Levels
SNMPv1 and SNMPv2c do not have any security (that is, authentication or privacy) mechanisms to keep SNMP packet traffic on the wire confidential. As a result, packets on the wire can be detected and SNMP community strings compromised.
To solve the security shortcomings of SNMPv1 and SNMPv2c, SNMPv3 provides secure access to Content Engines by authenticating and encrypting packets over the network. The SNMP agent in the ACNS 5.x software supports SNMPv3 as well as SNMPv1 and SNMPv2c.
The following security features are provided in SNMPv3:
•
Message integrity—Ensures that nothing has interfered with a packet during transmission.
•
Authentication—Determines that the message is from a valid source.
•
Encryption—Scrambles the contents of a packet to prevent it from being seen by an unauthorized source.
SNMPv3 provides security models as well as security levels. A security model is an authentication process that is set up for a user and the group in which the user resides. A security level is the permitted level of security within a security model. A combination of a security model and a security level determines which security process is used when an SNMP packet is handled. Three security models are available: SNMPv1, SNMPv2c, and SNMPv3.
Table 20-1 describes the combinations of security models and security levels.
Table 20-1 SNMP Security Models and Security Levels
Model
|
Level
|
Authentication
|
Encryption
|
Process
|
v1
|
noAuthNoPriv
|
Community string
|
No
|
Uses a community string match for user authentication.
|
v2c
|
noAuthNoPriv
|
Community string
|
No
|
Uses a community string match for user authentication.
|
v3
|
noAuthNoPriv
|
Username
|
No
|
Uses a username match for user authentication.
|
v3
|
AuthNoPriv
|
Message Digest 5 (MD5) or Secure Hash Algorithm (SHA)
|
No
|
Provides authentication based on the Hash-Based Message Authentication Code (HMAC)-MD5 or HMAC-SHA algorithms.
|
v3
|
AuthPriv
|
MD5 or SHA
|
Yes
|
Provides authentication based on the HMAC-MD5 or HMAC-SHA algorithms. Provides Data Encryption Standard (DES) 56-bit encryption (packet authentication) based on the cipher block chaining (CBC)-DES (DES-56) standard.
|
The SNMPv3 agent can be used in the following modes:
•
noAuthNoPriv mode (that is, no security mechanisms turned on for packets)
•
AuthNoPriv mode (for packets that do not need to be encrypted using the privacy algorithm [DES 56])
•
AuthPriv mode (for packets that must be encrypted; privacy requires that authentication be performed on the packet)
Using SNMPv3, users can securely collect management information from their SNMP agents without fear that the data has been tampered with. Also, confidential information, such as SNMP set packets that change a Content Engine's configuration, can be encrypted to prevent their contents from being exposed on the wire. Also, the group-based administrative model allows different users to access the same SNMP agent with varying access privileges.
Supported MIBs
The ACNS 5.x software implementation of SNMP supports the following MIBs:
•
MIB-II
•
ENTITY-MIB
•
HOST-RESOURCES-MIB
•
CISCO-CONTENT-ENGINE-MIB
•
CISCO-ENTITY-ASSET-MIB
•
CISCO-CONFIG-MAN-MIB
•
CISCO-CDP-MIB
Note
The CISCO-CONTENT-ENGINE-MIB now supports streaming WMT, RealProxy, and Cisco Streaming Engine statistics. Standalone Content Engines support WMT and RealProxy. Cisco Streaming Engine is only supported on Content Engines that are registered with a Content Distribution Manager; Cisco Streaming Engine is not supported on standalone Content Engines.
In ACNS 5.2 software, six generic alarm traps were added to this MIB for SNMP and Node Health Manager integration. For a list of these six generic alarm traps, see Table 20-5.
In ACNS software, Release 5.1 or later, you can use IP access control lists (ACLs) to control SNMP access on a Content Engine. For more information about defining IP ACLs, see "Creating and Managing IP Access Control Lists for Standalone Content Engines."
Downloading MIB Files to Standalone Content Engines
You can download the MIB files for all of the MIBS that are supported by a standalone Content Engine that is running ACNS 5.x software, from the following Cisco FTP site:
ftp://ftp.cisco.com/pub/mibs/v2
The MIB objects that are defined in each MIB are described in the MIB files at the above FTP site are self explanatory.
Enabling the SNMP Agent on Standalone Content Engines
By default, the SNMP agent on a standalone Content Engine is disabled and an SNMP community string is not defined. The SNMP community string is used as a password for authentication when accessing the SNMP agent on the standalone Content Engine. In order to be authenticated, the Community Name field of any SNMP message sent to the standalone Content Engine must match the SNMP community string defined on the standalone Content Engine.
The SNMP agent on the standalone Content Engine is enabled when an SNMP community string is defined on the Content Engine. You can use the Content Engine GUI or CLI to define an SNMP community string and enable the SNMP agent, as follows:
•
From the Content Engine GUI, choose System > SNMP. In the displayed SNMP window, scroll down to the Community field and enter an SNMP community string. Click Update.
•
From the Content Engine CLI, use the snmp-server community command. For example,
ContentEngine(config)# snmp-server community comaccess
If the SNMPv3 protocol is going to be used for SNMP requests, the next step is to define an SNMP user account that can be used to access a standalone Content Engine through SNMP. For more information on how to create an SNMPv 3 user account on a standalone Content Engine, see the "Defining SNMP Users for Standalone Content Engines" section.
Defining SNMP Users for Standalone Content Engines
When defining SNMP users for standalone Content Engines, note the following:
•
If the SNMPv3 protocol is going to be used for SNMP requests, you must define at least one SNMPv3 user account on the standalone Content Engine in order for the Content Engine to be accessed through SNMP.
•
A group defined with the SNMPv1 or SNMPv2c security model should not be associated with SNMP users; they should only be associated with the community strings.
Defining SNMPv3 Users
You can use either the Content Engine GUI or the CLI to define SNMPv3 user accounts on standalone Content Engines.
To use the Content Engine GUI to configure an SNMPv3 user account on a standalone Content Engine, follow these steps:
Step 1
From the Content Engine GUI, choose System > SNMP. The SNMP window for configuring SNMPv1 or SNMPv2 appears.
Step 2
Scroll down to the bottom of the SNMP window. At the bottom of the window, click the SNMPv3 Configuration Click here link. The SNMP window for configuring SNMPv3 settings (including SNMPv3 user accounts) appears.
Step 3
Scroll down to the SNMPV3 User configuration section of the SNMP v3 window. Use the SNMPV3 user configuration fields and drop-down lists to define new SNMPv3 user accounts on this Content Engine.
a.
In the Name field, enter the name of the SNMP user. Use letters, numbers, dashes, and underscores, but no blanks. This is the name of the user on the SNMP host who wants to communicate with the SNMP agent on the Content Engine.
b.
In the Group field, enter the name of the group to which the SNMP user belongs.
c.
In the Remote SnmpID field, enter the globally unique identifier for a remote SNMP entity (for example, the SNMP network management station) for at least one of the SNMP users.
Tip
In order to send an SNMPv3 inform message, at least one SNMPv3 user with a remote SNMP ID option must be configured on the Content Engine. The SNMP ID is entered in octet string form. For example, if the IP address of a remote SNMP entity is 192.147.142.129, then the octet string would be 00:00:63:00:00:00:a1:c0:93:8e:81.
d.
From the Auth-Algorithm drop-down list, choose the algorithm used to authenticate the SNMP user (md5, sha, or no_auth). By default, no_auth for no authentication is chosen.
–
Choose md5 for the HMAC-MD5-96 authentication level.
–
Choose sha for the HMAC-SHA-96 authentication level.
e.
In the optional Auth-Password field, enter the HMAC MD5 user authentication password. This field is only applicable if you chose md5 as the authentication type.
f.
In the optional Priv-Password field, enter the HMAC MD5 user private password. This field is only applicable if you chose md5 as the authentication type. This is a string that enables the SNMP agent to receive packets from the host.
Step 4
Click Update to add the new SNMPv3 user account. The new user account that you just created is listed in the SNMPv3 window.
Step 5
Continue to add more SNMPv3 user accounts. To remove an existing SNMPv3 user account, click the Delete check box next to the account that you wish to remove.
Step 6
Click Update again to save your changes to the SNMPv3 user accounts.
To use the Content Engine CLI to define an SNMPv3 user account on a standalone Content Engine (the SNMP server), use the snmp-server user global configuration command. Use the no form of this command to remove SNMP access.
snmp-server user name group [auth {md5 password [priv password] | sha password [priv password]} | remote octetstring [auth {md5 password [priv password] | sha password [priv password]}]]
Table 20-2 describes the parameters for the snmp-server user command.
Table 20-2 Parameters for the snmp-server user CLI Command
Parameter
|
Description
|
name
|
Name of the SNMP user.
|
group
|
Group to which the SNMP user belongs.
|
auth
|
(Optional) Configures user authentication parameters.
|
md5
|
Configures the HMAC MD5 authentication algorithm.
|
password
|
HMAC MD5 user authentication password.
|
priv
|
(Optional) Configures the authentication parameters for the packet.
|
password
|
HMAC MD5 user private password.
|
sha
|
Configures the HMAC SHA authentication algorithm.
|
password
|
HMAC SHA authentication password.
|
remote
|
(Optional) Specifies engine identity of remote SNMP entity to which the user belongs.
|
octetstring
|
Engine identity octet string.
|
In the following example, an SNMPv3 user account is created on the Content Engine. The SNMPv3 user is named acme and belongs to the group named admin. Because this SNMP user account has been set up with no authentication password, the SNMP agent on the Content Engine will not perform authentication on SNMP requests from this user.
ContentEngine(config)# snmp-server user acme admin
Configuring Standalone Content Engines to Send SNMP Traps
You can use either the Content Engine GUI or the CLI to configure standalone Content Engines to send SNMP traps.
From the Content Engine GUI, choose System > SNMP. The SNMP window appears. From the SNMP window, do one of the following:
•
To configure the Content Engine SNMPv1 or SNMPv2 agent to send SNMP traps to a specific SNMP host, enter information in the appropriate fields of this window, and click UPDATE.
For example, you must define the SNMP trap host by specifying the host name or IP address of the SNMP trap host that will be sent in the SNMP trap messages from the Content Engine.
•
To configure the Content Engine's SNMP v3 agent to send SNMP traps to a specific SNMP host, scroll down to the bottom of the SNMP window. Click the SNMPv3 Configuration Click here link. The SNMP window for configuring an SNMPv3 agent on the Content Engine appears. Use the SNMPv3 window to configure SNMP traps and SNMP v3 user accounts for this Content Engine.
For more information about configuring SNMPv3 user accounts, see the "Defining SNMPv3 Users" section. For information about the fields in the SNMP windows, click the HELP button in the window.
When using the Content Engine CLI to configure a standalone Content Engine to send SNMP traps, note the following:
•
For an SNMP host to receive a trap, both the snmp-server enable traps command and the snmp-server host command for that host must be configured. In addition, SNMP must be enabled with the snmp-server community command.
•
The SNMP agent is disabled by default, and a community string is not configured.
To use the Content Engine CLI to configure SNMP traps on a standalone Content Engine, follow these steps:
Step 1
Use the snmp-server group global configuration command to choose one of the security model groups (SNMPv1, SNMPv2c, or SNMPv3).
snmp-server group name {v1 [notify name] [read name] [write name] | v2c [notify name] [read name] [write name] | v3 {auth [notify name] [read name] [write name] | noauth [notify name] [read name] [write name] | priv [notify name] [read name] [write name]}}
where:
• name
|
Name of group.
|
• v1
|
Specifies the group using the Version 1 Security Model.
|
• notify
|
(Optional) Specifies a notify view for the group.
|
• name
|
Notify view name.
|
• read
|
(Optional) Specifies a read view for the group.
|
• name
|
Read view name.
|
• write
|
(Optional) Specifies a write view for the group.
|
• name
|
Write view name.
|
• v2c
|
Specifies the group using the Version 2c Security Model.
|
• v3
|
Specifies the group using the User Security Model (SNMPv3).
|
• auth
|
Specifies the group using the AuthNoPriv Security Level.
|
• noauth
|
Specifies the group using the noAuthNoPriv Security Level.
|
• priv
|
Specifies the group using the AuthPriv Security Level.
|
Step 2
Use the snmp-server enable traps global configuration command to enable all SNMP traps on the Content Engine.
ContentEngine(config)# snmp-server enable traps
If you do not enter the snmp-server enable traps command, no traps are sent. Use the no form of this command to disable all SNMP traps or only SNMP authentication traps.
Step 3
Use the snmp-server host global configuration command to specify which host or hosts receive SNMP traps from the Content Engine. To send SNMP traps, you must configure at least one SNMP trap host.
Note
In ACNS software, Release 5.1 and earlier, you could only configure up to four SNMP hosts. In ACNS software, Release 5.2 and later, you can configure up to eight SNMP hosts on a Content Engine.
The following shows how to configure the Content Engine to send all SNMP traps to the host 172.31.2.160 using the community string public.
ContentEngine(config)# snmp-server host 172.31.2.160 public
Step 4
Enable the SNMP agent on the Content Engine, and assign a community string as a password for authentication when you access the SNMP agent on the Content Engine.
In the following example, comaccess is specified as the password.
ContentEngine(config)# snmp-server community comaccess
Tip
Any SNMP message sent to the Content Engine must have the "Community Name" field of the message match the community string defined here in order to be authenticated.
The snmp-server community string global configuration command provides view-based access control for SNMPv1, SNMPv2c, and SNMPv3 but also continues to provide backward compatibility between different versions.
In ACNS 5.x software prior to Release 5.1, the snmp-server community string global configuration command did not have an option to create a community string that allows SNMP messages to execute a set operation on a MIB object. A rw option has been introduced for this purpose. Also, the previous version of the SNMP agent did not provide selective access control to MIB objects. Access to any MIB object was denied or granted based on authentication of the SNMP community string.
With the introduction of view-based access control, it is now possible to configure a community string that grants access to only part of the MIB subtree. To provide backward compatibility with the previous version of this command, a default read group or default write group (if the rw option is specified on the command line) is associated with the community string if no group name is specified. Both of these default groups are hidden from users and not displayed in the configuration file or in the show snmp group EXEC command, but are created during initialization of the SNMP agent
Disabling the SNMP Agent on Standalone Content Engines
To disable the SNMP agent on standalone Content Engines, enter the no snmp-server global configuration command.
ContentEngine(config)# no snmp-server
To disable the SNMP agent and to remove the previously defined community string, enter the no snmp-server community global configuration command.
ContentEngine(config)# no snmp-server community
Disabling SNMP Traps on Standalone Content Engines
To disable all SNMP traps on standalone Content Engines, enter the no snmp-server enable traps global configuration command.
ContentEngine(config)# no snmp-server enable traps
To disable the sending of the MIB-II SNMP authentication trap, you must enter the no snmp-server enable traps snmp authentication command.
Monitoring Standalone Content Engines with the ACNS Software Alarms
Traditionally SNMP is used to report error conditions by generating SNMP traps. ACNS 5.x continues to use this monitoring mechanism, as described in the "Monitoring Transactions with Standalone Content Engines" section.
In ACNS 5.2 software, the Node Health Manager feature was added. The Node Health Manager enables ACNS applications to raise alarms to draw attention in error/significant conditions. The Node Health Manager, which is the data repository for such alarms, aggregates the health and alarm information for the applications, services (for example, the cache service) and resources (for example, disk drives) that are being monitored on the Content Engine. For example, this new feature gives you a mechanism to determine if a monitored application (for example, the HTTP proxy caching service) is alive on the Content Engine. These alarms are referred to as "ACNS software alarms."
In ACNS 5.2 software, the following Content Engine applications can generate an ACNS software alarm:
•
Node Health Manager (Alarm overload condition and Node Manager aliveness)
•
Node Manager for service failures (aliveness of monitored applications)
•
System Monitor (sysmon) for disk failures
Alarms that have been raised on a Content Engine can be listed using the Content Engine CLI commands in Table 20-3. SNMP traps are sent all raised and cleared alarms. The type of SNMP trap sent varies by alarm.
Note
If the Content Engine is registered with a Content Distribution Manager, the Node Health Manager also sends a notification about the alarm to the Content Distribution Manager. For more information on this topic, refer to the Cisco ACNS Software Configuration Guide for Centrally Managed Deployments, Release 5.2.
In ACNS 5.2 software, several CLI commands were added to allow you to systematically drill down to the source of an ACNS software alarm (the cause of the problem). See Table 20-3. You can use these CLI commands to identify the source of a problem without wading through numerous ACNS software logs.

Note
On standalone Content Engines, information about ACNS software alarms is available through the Content Engine CLI and also through SNMP. See Table 20-3 for a list of the CLI commands that you can use to access this alarm information for a standalone Content Engine.
Alarm Severity Levels
There are three levels of ACNS software alarms. See Table 20-4.
Table 20-4 Levels of Alarm Severity for ACNS Software Alarms
Alarm Level
|
Description
|
Critical
|
Alarms that affect the existing traffic through the Content Engine, and are considered fatal (Content Engine cannot recover and continue to process traffic).
|
Major
|
Alarms that indicate a major service (for example, the cache service) is damaged or lost. Urgent action is necessary to recover this service. However, other node components are fully functional and the existing service should be minimally impacted.
|
Minor
|
Alarms that indicate a condition that will not affect a service (a non-service affecting condition) occurred but that corrective action is required in order to prevent a serious fault from occurring.
|
Note that the output of the show alarms history EXEC command includes the severity of the ACNS software alarm. See sample below.
ContentEngine# show alarms history
Op Sev Alarm ID Module/Submodule Instance
-- --- -------------------- -------------------- --------------------
1 C Mi servicedead nodemgr mediacache
2 C Mi servicedead nodemgr cache
3 R Mi servicedead nodemgr mediacache
4 R Mi servicedead nodemgr cache
5 C Mi servicedead nodemgr rpc_httpd
6 R Mi servicedead nodemgr rpc_httpd
7 C Mi servicedead nodemgr rpc_httpd
8 R Mi servicedead nodemgr rpc_httpd
9 C Mi servicedead nodemgr mediacache
10 C Mi servicedead nodemgr cache
11 R Mi servicedead nodemgr mediacache
12 R Mi servicedead nodemgr cache
13 C Mi servicedead nodemgr cache
14 C Mi servicedead nodemgr mediacache
15 C Mi servicedead nodemgr rtspg
16 R Mi servicedead nodemgr cache
17 R Mi servicedead nodemgr mediacache
18 R Mi servicedead nodemgr rtspg
Op - Operation: R-Raised, C-Cleared
Sev - Severity: Cr-Critical, Ma-Major, Mi-Minor
Alarm Overload
Content Engines that are running ACNS software, Release 5.2 and later can track the rate of incoming alarms from the Node Health Manager. If the rate of incoming alarms exceeds the high water mark (HWM), then the Content Engine enters an alarm overload state. When a standalone Content Engine is in an alarm overload state, then the following occurs:
•
SNMP traps for subsequent alarm raise and clear operations are suspended. The trap for the raise alarm-overload alarm and the clear alarm-overload alarm are sent; however traps related to alarm operations between the raise alarm-overload alarm and the clear alarm-overload alarm operations are suspended.
•
Alarm overload raise and clear notifications are not blocked.
•
The Content Engine remains in an alarm overload state if the rate of incoming alarms decreases to the point that the alarm rate is less than the low water mark (LWM).
Checking for Application Liveness
The Node Manager tracks the liveness of applications that it spawns on the Content Engine (for example, the HTTP cache application, the WMT streaming application, and the RTSP gateway (RTSPG) streaming application). When the Node Manager detects the death of a spawned application, it raises an alarm. An application is considered dead when the Node Manager does not receive keepalives from the application.
When an application dies, the Node Manager raises a servicedied alarm to report the condition, and then it restarts the service. If the service continues to run for a little while (typically 10 seconds) the 'servicedied' alarm is cleared.
If the application dies again after restarting, the servicedied alarm continues to be raised and the Node Manager attempts to restart it. Restarts are done typically a maximum of 10 times by the Node Manager. After the that the Node Manager raises a svcdisabled alarm for the service, clears the 'servicedied' alarm, and it stops restarting the service.
To restart the service, you must unconfigure and configure the features (for example, in the case of the NTP service, enter the no ntp server hostname | IP address global configuration command to unconfigure the NTP service, and then enter the ntp server hostname | IP address global configuration command to reconfigure the NTP service.
Configuring SNMP Alarm Traps on Standalone Content Engines
You can configure a Content Engine to generate an SNMP trap for a specific alarm condition. You can configure the generation of SNMP alarm traps on standalone Content Engines based on the following:
•
The severity of the alarm (critical, major, or minor)
•
The action (the alarm is raised or cleared).
In ACNS 5.2 software, the following six generic alarm traps were added to the CISCO-CONTENT-ENGINE-MIB (the CCE MIB). See Table 20-5.
Table 20-5 Generic Alarm Traps
Name of Alarm Trap
|
Severity
|
Action
|
CLI Command To Enable Alarm Trap on Content Engine
|
cceAlarmCriticalRaised
|
Critical
|
Raised
|
snmp-server enable traps alarm raise-critical
|
cceAlarmCriticalCleared
|
Critical
|
Cleared
|
snmp-server enable traps alarm clear-critical
|
cceAlarmMajorRaised
|
Major
|
Raised
|
snmp-server enable traps alarm raise-major
|
cceAlarmMajorCleared
|
Major
|
Cleared
|
snmp-server enable traps alarm clear-major
|
cceAlarmMinorRaised
|
Minor
|
Raised
|
snmp-server enable traps alarm raise-minor
|
cceAlarmMinorCleared
|
Minor
|
Cleared
|
snmp-server enable traps alarm clear-minor
|
Note
By default, these six general alarm traps are disabled.
These six general alarm traps provide SNMP and Node Health Manager integration. Each of these six alarm traps can be enabled or disabled through the Content Engine CLI. In ACNS 5.2 software, the snmp-server enable traps global configuration command was extended to include an alarm option (see below).
ContentEngine(config)# snmp-server enable traps alarm ?
clear-critical Enable clear-critical alarm trap
clear-major Enable clear-major alarm trap
clear-minor Enable clear-minor alarm trap
raise-critical Enable raise-critical alarm trap
raise-major Enable raise-major alarm trap
raise-minor Enable raise-minor alarm trap
In the following example, the Content Engine (the SNMP server) is configured to generate an SNMP trap if a critical alarm is cleared.
ContentEngine(config)# snmp-server enable traps alarm clear-critical
Displaying Information About ACNS Software Alarms
Use the show alarm EXEC command to display information about all of the currently raised critical, major, and minor alarms for a standalone Content Engine. If there are no alarms currently raised on the Content Engine, the output indicates "None." See sample output below.
ContentEngine# show alarm
You can also display information for only a specific level of ACNS software alarms that are currently raised on the Content Engine, as follows:
•
Use the show alarm critical EXEC command to display information about only the critical alarms.
•
Use the show alarm major EXEC command to display information about only the major alarms.
•
Use the show alarm minor EXEC command to display information about only the minor alarms.
Note
For a description of the various severity levels for alarms (critical, major, and minor), see Table 20-4.
Displaying Details About ACNS Software Alarms
To display details about the currently raised SNMP alarms, use the show alarm detail EXEC command. This command allows you to drill down and obtain more information about a particular alarm.
Displaying the History of ACNS Software Alarms
Use the show alarms history EXEC command to display a history of ACNS software alarms that have been raised and cleared on a standalone Content Engine.
ContentEngine# show alarms history
Op Sev Alarm ID Module/Submodule Instance
-- --- -------------------- -------------------- --------------------
1 C Mi servicedead nodemgr mediacache
2 C Mi servicedead nodemgr cache
3 R Mi servicedead nodemgr mediacache
4 R Mi servicedead nodemgr cache
5 C Mi servicedead nodemgr rpc_httpd
6 R Mi servicedead nodemgr rpc_httpd
7 C Mi servicedead nodemgr rpc_httpd
8 R Mi servicedead nodemgr rpc_httpd
9 C Mi servicedead nodemgr mediacache
10 C Mi servicedead nodemgr cache
11 R Mi servicedead nodemgr mediacache
12 R Mi servicedead nodemgr cache
13 C Mi servicedead nodemgr cache
14 C Mi servicedead nodemgr mediacache
15 C Mi servicedead nodemgr rtspg
16 R Mi servicedead nodemgr cache
17 R Mi servicedead nodemgr mediacache
18 R Mi servicedead nodemgr rtspg
Op - Operation: R-Raised, C-Cleared
Sev - Severity: Cr-Critical, Ma-Major, Mi-Minor
Use the show alarms history detail support EXEC command to display additional information about an alarm.
Content Engine# show alarms history detail support
Op Sev Alarm ID Module/Submodule Instance
-- --- -------------------- -------------------- --------------------
1 C Mi servicedead nodemgr rtspg
Jul 2 18:22:04.577 UTC, Processing Error Alarm, #000001, 2000:330004
nodemgr: The rtspg service has died.
/alm/min/nodemgr/-service_name-/servicedead:
-service name- service has died.
The node manager found the specified service to be dead.
Attempts will be made to restart this service.
Examine the syslog for messages relating to cause of service
death. The alarm will be cleared if the service stays
alive and does not restart in a short while.
2 R Mi servicedead nodemgr rtspg
Jul 2 18:21:54.231 UTC, Processing Error Alarm, #000001, 2000:330004
nodemgr: The rtspg service has died.
/alm/min/nodemgr/-service_name-/servicedead:
-service name- service has died.
The node manager found the specified service to be dead.
Attempts will be made to restart this service.
Examine the syslog for messages relating to cause of service
death. The alarm will be cleared if the service stays
alive and does not restart in a short while.
Op - Operation: R-Raised, C-Cleared
Sev - Severity: Cr-Critical, Ma-Major, Mi-Minor
Displaying the Status of ACNS Software Alarms
Use the show alarms status EXEC command to display the counts for all currently raised alarms on the Content Engine. As the sample output below shows, the number of currently raised ACNS software alarms. The output also includes information about the alarm overload settings (for example, if overload detection is currently enabled or disabled on the Content Engine).
ContentEngine# show alarms status
Overall Alarm Status : None
Device is NOT in alarm overload state.
Device enters alarm overload state @ 10 alarms/sec.
Device exits alarm overload state @ 1 alarms/sec.
Overload detection is DISABLED.
Monitoring Transactions with Standalone Content Engines
Typically, Content Engine administrators are interested in what types of requests have been made of the Content Engine and what the results of these requests were. For example, if streaming media is a source of revenue for a company, then the company needs a way to track which customer is accessing which content, how long a user viewed the content, and at what viewing quality. Because these companies charge their customers to stream on-demand content and live broadcasts, they must rely on logged information as the basis for billing their customers for their content access services.
The software logs that record requests that are serviced by a Content Engine are referred to as "transaction logs." Typical fields in the transaction log are the date and time when a client request was made, the URL that was requested, whether it was a cache hit or a cache miss, the type of request, the number of bytes transferred, and the source IP address.
Transaction logs are generally used for the following purposes:
•
Problem identification and solving
•
Load monitoring
•
Billing
•
Statistical analysis
•
Security problems
•
Cost analysis and provisioning
In ACNS 5.2 software, support for Windows Media Services 9 logging was added. The Windows Media Services 9 Series provides a more robust logging model than Windows Media Services Version 4.1.
You can log to a predefined format (for example, Squid, Extended Squid, or Apache, or a custom transaction log formats that allows you to log additional fields). The contents of the transaction logs can be exported to an external server using FTP at periodic intervals. You can also configure log rotation policies.
Standalone Content Engines that are running ACNS 5.x software can record all errors and access activities for reporting purposes. In ACNS 5.x software, each content service module (for example, the HTTP module, the WMT server, the FTP proxy process, and the TFTP server) on the Content Engine provides logs of the requests that were serviced. For example, logging for the following types of requests are provided:
•
HTTP requests
•
HTTPS requests
•
FTP requests
•
WMT requests
•
RTSP streaming requests
•
WMT requests
•
TFTP requests
Note
The term "transaction" refers to completed successful or failed request for a web resource by a client.
Displaying Statistics for Particular Protocols
For each content transport protocol, there is a corresponding show protocol-name statistics EXEC command that displays the statistics for that particular protocol. For example, you can use the show statistics http EXEC commands to display important statistical information about the HTTP requests that the Content Engine has serviced.
ContentEngine# show statistics http ?
cluster Display healing mode statistics
ims Display If-Modified-Since statistics
miss-reason Display miss/revalide/no-store reason statistics
object Display object statistics
performance Display performance statistics
proxy Display proxy mode statistics
requests Display request statistics
savings Display savings statistics
usage Display usage statistics
See Table 20-6 for a list of the show protocol-name statistics EXEC commands. For detailed information about this commands, refer to the Cisco ACNS Software Command Reference, Release 5.2 publication.
Table 20-6 show protocol-name statistics EXEC Commands
Command
|
Description
|
show statistics https [error | requests]
|
Display Content Engine HTTPS statistics
|
show statistics http {cluster | ims | miss-reason | object | performance | proxy outgoing | requests | savings | usage}
|
Display Content Engine HTTP statistics.
|
show statistics ftp
|
Display Content Engine FTP statistics. Includes statistics for FTP-over-HTTP as well as native FTP requests (for example, the number of transparent FTP GET requests).
|
show statistics rtsp {proxy media-real {requests | savings}} {all | bw-usage | performance | requests}
|
Display Content Engine statistics for RealMedia requests.
|
show statistics wmt {all | bytes [incoming | outgoing] | errors | multicast | requests | rule | savings | streamstat | urlfilter | usage}
|
Displays Content Engine statistics for WMT requests.
|
The following shows how to use the show statistics https requests EXEC command to display monitoring statistics about the HTTPS requests that a Content Engine has serviced.
ContentEngine# show statistics https requests
---------------------------------------------------
Total connections: 1328 -
Tunneled (CONNECT): 0 0.0
Bytes received from client: 1602824 20.0
Bytes sent to client: 6410333 80.0
Bytes received from server: 0 0.0
The following shows how to use the show statistics http proxy outgoing EXEC command to display monitoring statistics for successful and failed outgoing proxy requests.
ContentEngine# show statistics http proxy outgoing
HTTP Outgoing Proxy Statistics
IP PORT ATTEMPTS FAILURES
--------------------------------------------------------------------
10.10.10.10 1 49026 49026
The following shows how to use the show statistics http requests EXEC command to display statistics about the HTTP requests that a Content Engine has received.
ContentEngine# show statistics http requests
---------------------------------------------------
Total Received Requests: 525979748 -
Forced Reloads: 501468 0.1
Server Errors: 149808 0.0
URL Blocked (Reset): 514998075 97.9
Sent to Outgoing Proxy: 0 0.0
Failures from Outgoing Proxy: 0 0.0
Excluded from Outgoing Proxy: 0 0.0
HTTP 0.9 Requests: 677 0.0
HTTP 1.0 Requests: 524097101 99.6
HTTP 1.1 Requests: 1881966 0.4
HTTP Unknown Requests: 4 0.0
Non HTTP Responses: 1380 0.0
Chunked HTTP Responses: 1631953 0.3
Http Miss Due To DNS: 31050 0.0
Http Deletes Due To DNS: 12914 0.0
Objects cached for min ttl: 575986 0.1
The following is sample output from the show statistics http performance EXEC command. The command output displays performance statistics regarding the HTTP requests that Content Engine has serviced.
ContentEngine# show statistics http performance
-------------------------------------------------------------
Requests / Second: - - 677 3
Bytes / Second: - - 5995814 81801
Seconds / Request: 0.067 0.000 15453.547 1.499
Seconds / Hit: 0.308 0.000 979.442 0.158
Seconds / Miss: 0.066 0.000 15453.547 1.572
-------------------------------------------------------------
The following is sample output of the show statistics http savings EXEC command. The command output displays statistics regarding the savings because the Content Engine serviced HTTP requests from its local HTTP cache (cache hits) instead of retrieving the content from the origin web server.
ContentEngine# show statistics http savings
-----------------------------------------------------------
Total: 525980242 79047534484
Hits: 1966223 19865155481
Miss: 524014019 59182379003
The following is sample output of the show statistics rtsp proxy media-real requests EXEC command. The command output displays RealMedia caching statistics for the RTSP requests that Content Engine has serviced.
ContentEngine# show statistics rtsp proxy media-real requests
Media Cache Statistics - Requests
---------------------------------------------------
Total Received Requests: 0 -
Demand Pass-Through: 0 0.0
The following is sample output of the show statistics rtsp proxy media-real savings EXEC command. The command output displays the number of media cache hits and misses for RealMedia content, and the amount of savings because content was served from the local cache rather than being retrieved multiple times from the origin streaming server.
ContentEngine# show statistics rtsp proxy media-real savings
Media Cache Statistics - Savings
-----------------------------------------------------------
Total: 525980242 79047534484
Hits: 1966223 19865155481
Miss: 524014019 59182379003
Monitoring Critical Disk Drives on Standalone Content Engines
In order to operate properly, the Content Engine depends on the following critical disk drives:
•
The first disk drive that is referred to as "disk00."
•
The disk drive that contains the first sysfs (system file system) partition.
The sysfs partition is used to store log files, including transaction logs, system logs (syslogs), and internal debugging logs. It can also be used to store image files and configuration files on a Content Engine.
Note
The term "critical drive" is defined as a disk drive that is either disk00 or a disk drive that contains the first sysfs partition. A critical drive can be different based on the Content Engine model. For example, with smaller, single disk drive Content Engines there is only one critical disk drive; whereas, with higher-end Content Engines that have more than one disk drive there may be more than one critical disk drive on the Content Engine.
When a Content Engine is booted and a critical disk drive is not detected at system startup time, the ACNS system on the Content Engine runs at a degraded state. If one of the critical disk drives goes bad at run time, the ACNS system can exhibit symptoms such as the applications malfunctioning, hanging, or crashing, or the ACNS system hanging or crashing. Consequently, it is vital that the critical disk drives on a Content Engine are monitored and that disk drive errors are reported.
With an ACNS system, a disk device error is defined as any of the following events:
•
A SCSI or IDE device error is printed by Linux kernel.
•
A disk device access by an application (for example, an open(2), read(2), or write(2) system call) fails with an EIO error code.
•
A disk device that existed at startup time is not accessible at run time.
In ACNS 5.2 software, the ability to monitor Content Engine disk drives was added. Disk status is now recorded in flash (non-volatile storage). When an error on a Content Engine disk device occurs, a message is written to the system log (syslog) if the sysfs partition is still intact, and an SNMP trap is generated if SNMP is configured on the Content Engine.
In addition to tracking the state of critical disk drives, you can define a disk device error-handling threshold on the Content Engine. If the number of disk device errors reaches the specified threshold, the corresponding disk device is automatically marked as "bad." The ACNS system does not stop using the "bad" disk device immediately; it stops using the "bad" disk drive after the next reboot.
If the specified threshold is exceeded, the Content Engine either records this event or reboots. If the automatic reload feature is enabled and this threshold is exceeded, then the ACNS system automatically reboots the Content Engine. For more information about specifying this threshold, see the "Specifying the Disk Error-Handling Threshold" section.
Note
You can also manually mark a disk drive as "bad" or "good" by using the disk drive mark EXEC command. For more information on this topic, see the "Manually Marking and Unmarking Content Engine Disk Drives" section.
Specifying the Disk Error-Handling Threshold
In ACNS 5.2 software, a disk error-handling threshold option was added. This threshold determines how many disk errors can be detected before the disk drive is automatically marked as "bad." By default, this threshold is set to 10.
To change the default threshold, use the disk error-handling threshold global configuration command. Valid values are from 0 through 100. Specify 0 if you never want the disk drive to be marked as "bad."
In the following example, five disk drive errors for a particular disk drive (for example, disk00) will be allowed before the disk drive is automatically marked as "bad."
ContentEngine(config)# disk error-handling threshold 5
If the bad disk drive is a critical disk drive, and the automatic reload feature (disk error-handling reload command) is enabled, then the ACNS software marks the disk drive as "bad" and the Content Engine is automatically reloaded. After the Content Engine is reloaded, a syslog message and an SNMP trap are generated.
By default, the automatic reload feature is disabled on a Content Engine. To enable the automatic reload feature, use the disk error-handling reload global configuration command.
ContentEngine(config)# disk error-handling reload
After enabling the automatic reload feature, use the no disk error-handling reload global configuration command to disable it.
ContentEngine(config)# no disk error-handling reload
Manually Marking and Unmarking Content Engine Disk Drives
A disk drive on a Content Engine will remain in the "Not used" state until you manually unmark it as follows:
•
Use one of the following disk add EXEC commands on a standalone Content Engine. The disk state "Not used" is reset if you use any of these disk add commands.
disk add diskname [sysfs {remaining | disk-space}] [cfs {remaining | disk-space}] |
[mediafs {remaining | disk-space}]
•
Use the disk mark EXEC command to mark one or all disk drives manually as "good" (being used) or "bad" (will not be used after reload).
The following scenario shows how to mark disk03 as "bad," reload the Content Engine, then unmark disk03 as a "bad" so that it can be used again.
1.
Use the disk mark EXEC command to mark disk03 as "bad."
Content Engine# disk mark ?
WORD Disk name (e.g. disk00, disk01,..)
Content Engine# disk mark disk03 ?
bad Mark as bad disk drive, don't use it
good Mark as good disk drive
Content Engine# disk mark disk03 bad
It will be not used after reload.
2.
Use the show disks details EXEC command. Disk03 is now shown as "*" because it was marked after the Content Engine was booted. Notice that disk03 is reported as "Normal" (currently being used).
Content Engine# show disks details
(*) Disk drive won't be used after reload.
disk03: Normal (h00 c00 i03 l00 - Int DAS) 70001MB( 68.4GB) (*)
3.
Use the reload EXEC command to reload the Content Engine. When asked, press Enter to proceed with the reload. After the Content Engine is reloaded, disk03 that is marked as a "bad" disk drive will not be used.
Proceed with reload?[confirm]
4.
After the reload is completed, use the show disks details EXEC command. Disk03 is now shown as "Not used (*)" because disk03 was detected as "bad" after the Content Engine was rebooted.
Content Engine# show disks details
(*) Disk drive won't be used after reload.
5.
Use the disk mark EXEC command to unmark disk03 as "bad" by manually marking it as "good."
Content Engine# disk mark disk03 good
disk03 is marked as good.
It will be used after reload.
6.
Use the show disks details EXEC command to verify that disk03 is now marked as "Not used."
Content Engine# show disks details
Displaying Details About the Current Disk Configuration
Use the show disks details EXEC command to display detailed information about a Content Engine's current disk configuration.
ContentEngine# show disks details
disk00: Normal (IDE disk) 38160MB( 37.3GB)
disk00/04: PHYS-FS 15137MB( 14.8GB) mounted internally
disk00/04: MEDIAFS 532MB( 0.5GB) mounted internally
disk00/05: SYSFS 1023MB( 1.0GB) mounted at /local1
disk00/06: CFS 15359MB( 15.0GB)
System use: 6130MB( 6.0GB)
No NAS share is attached to this device.
Disk drives that are currently marked as "bad" are shown as "Not used" in the output of the show disks details EXEC command. Future "bad" disk drives (drives that will not be used after the next time the Content Engine is reloaded) are shown with an asterisk (*). In the following case, disk03 is a future "bad" disk drive that will not be used after the Content Engine is reloaded.
ContentEngine# show disks details
(*) Disk drive won't be used after reload.
disk03: Normal (h00 c00 i03 l00 - Int DAS) 70001MB( 68.4GB) (*)
Removing All Disk Partitions on a Single Disk Drive
Use the disk delete-partitions EXEC command to remove all disk partitions on a single disk drive.
Caution 
The disk delete-partitions EXEC command will erase everything on the specified disk.
Typically, this command is used when you want to add a new disk drive that was previously used with another operating systems (for example, a Microsoft Windows or Linux operating system). When asked if you want erase everything on the disk, specify "yes" to proceed, as shown below.
ContentEngine# disk delete-partitions disk03
This will erase everything on disk. Are you sure? [no] yes
Using ACNS Software Transaction Logs
Administrators of standalone Content Engines (caching and streaming engines) are often interested in what types of requests have been made of the Content Engine and what the results of these requests were. For example, if streaming media is a source of revenue for a company, then the company needs a way to track which customer is accessing which content, how long a user viewed the content, and at what viewing quality. Because these companies charge their customers to stream on-demand content and live broadcasts, they must rely on logged information as the basis for billing their customers for their content access services.
Standalone Content Engines that are running ACNS 5.x software can record all errors and access activities. In ACNS 5.x software, each content service module (for example, the HTTP module, the WMT server, the FTP proxy process, and the TFTP server) on the Content Engine provides logs of the requests that were serviced. These logs are referred to as "transaction logs."
Typical fields in the transaction log are the date and time when a request was made, the URL that was requested, whether it was a cache hit or a cache miss, the type of request, the number of bytes transferred, and the source IP address. Transaction logs are generally used for the following purposes:
•
Problem identification and solving
•
Load monitoring
•
Billing
•
Statistical analysis
•
Security problems
•
Cost analysis and provisioning
The reliable production, storage, and management of transaction logs is vital in the billing and cost analysis and provisioning cases.
The Windows Media Services 9 Series provides a more robust logging model than Windows Media Services Version 4.1. In ACNS 5.2 software, support for Windows Media Services 9 logging was added.
You can log to a predefined format (for example, Squid, Extended Squid, or Apache, or a custom transaction log formats that allows you to log additional fields). The contents of the transaction logs can be exported to an external server using FTP. You can also configure log rotation policies.
Note
Only one format type can be active at a time. When transaction logging is enabled through the Content Engine GUI, the Squid log format is used.
In ACNS 5.2 software, there is a new transaction log feature that provides a real-time transaction log capability to another device. You can configure a Content Engine to send HTTP transaction log messages to a remote syslog server so that you can monitor HTTP transaction authentication failures in "real time." For more information on this topic, see the "Monitoring HTTP Request Authentication Failures in Real Time" section.
By default, transaction logging is disabled on the Content Engine that is running ACNS software. You can use either the Content Engine GUI or the CLI to enable transaction logging on the Content Engine. When transaction logging is enabled through the Content Engine GUI, the Squid log format is used as shown in the sample output below.
ContentEngine(config)# transaction-logs ?
archive Configure archive parameters
enable Enable transaction log feature
export Configure file export parameters
file-marker Add entries to translog indicating the file begin and end
format log file format (default squid)
log-windows-domain Log Windows domain with authenticated username if
sanitize Mask end user identities in log file
Table 20-7 lists the default settings for transaction logging on a standalone Content Engine.

Note
SmartFilter provides the information in the transaction log to indicate the categories associated with a URL for an allow transaction as well as a deny transaction. This requires that you use the SmartFilter GUI to enable all SmartFilter logging options (choose the All option under Logging Options from the SmartFilter GUI).
For more information about working with ACNS transaction logs, see the following sections:
•
Enabling Transaction Logging
•
Logging Windows Domain with Authenticated Usernames
•
Sanitizing Transaction Logs
•
Exporting Transaction Log Files
•
Changing the Transaction Logging Export Settings on Standalone Content Engines
•
Displaying the Transaction Log Configuration for Standalone Content Engines
•
Restarting Export After Receiving a Permanent Error from the External FTP Server
Enabling Transaction Logging
In ACNS 5.x software, you can choose the Squid, Extended Squid, or Apache transaction log formats, or you can use a custom log format that allows you to log additional fields. (See Table 20-8.)
Note
Only one format type can be active at a time. When transaction logging is enabled through the Content Engine GUI, the Squid log format is used.
In ACNS 5.2 software, the ability to send HTTP transaction log messages to a remote syslog server was added. This allows you to monitor HTTP transaction authentication failures in real time. The existing transaction logging to the local file system remains unchanged. For more information about real-time transaction logging, see the "Monitoring HTTP Request Authentication Failures in Real Time" section.
Enabling Squid-Style Transaction Logging
Use the transaction-logs format squid global configuration command to enable transaction logging in Squid-style format.
ContentEngine(config)# transaction-logs format squid
The Squid-style log format is the default format for transaction logging in the Content Engine. The Squid log file format used is the native log file format associated with the Squid-1.1 access.log file format.
The Squid log file format is as follows:
time elapsed remote host code/status bytes method URL rfc931 peer status/peer host type
A Squid log format example looks like this:
1012429341.115 100 172.16.100.152 TCP_REFRESH_MISS/304 1100 GET
http://www.cisco.com/images/homepage/news.gif - DIRECT/www.cisco.com -
Squid transaction logs are a valuable source of information about cache workloads and performance. The logs record not only access information but also system configuration errors and resource consumption, such as memory and disk space.
Table 20-9 lists the fields associated with the Squid-style format.
Table 20-9 Squid-Style Format Description
Field
|
Description
|
Time
|
UNIX time stamp as Coordinated Universal Time (UTC) seconds with a millisecond resolution.
|
Elapsed
|
Length of time in milliseconds that the cache was busy with the transaction.
Note Entries are logged after the reply has been sent, not during the lifetime of the transaction.
|
Remote host
|
IP address of the requesting instance.
|
Code/status
|
Two entries separated by a slash. The first entry contains information on the result of the transaction: the kind of request, how it was satisfied, or in what way it failed. The second entry contains the HTTP result codes.
|
Bytes
|
Amount of data delivered to the client. This does not constitute the net object size, because headers are also counted. Also, failed requests may deliver an error page, the size of which is also logged here.
|
Method
|
Request method to obtain an object for example, GET.
|
URL
|
URL requested.
|
Rfc931
|
Contains the authentication server's identification or lookup names of the requesting client. This field will always be a "-" (dash).
|
Peer status/ Peer host
|
Two entries separated by a slash. The first entry represents a code that explains how the request was handled, for example, by forwarding it to a peer, or returning the request to the source. The second entry contains the name of the host from which the object was requested. This host may be the origin site, a parent, or any other peer. Also note that the host name may be numerical.
|
Type
|
Content type of the object as seen in the HTTP reply header. In ACNS 5.x software, this field will always contain a "-" (dash).
|

Note
Many public tools are available that can convert a Squid-style transaction log into reports. Visit the following website, http://www.squid-cache.org/Scripts, for listings of such tools.
Enabling Extended Squid-Style Transaction Logging
Use the transaction-logs format extended-squid global configuration command to enable transaction logging in Extended Squid format.
ContentEngine(config)# transaction-logs format extended-squid
The Extended Squid format logs the associated username for each record in the log file in addition to the fields logged by the Squid-style format, and is used for billing purposes. In this format the Rfc931 field associated with the Squid format (Table 20-9) is used to log the authorized user. This field always contains a "-" (dash) if no user information is available.
An Extended Squid-style log file format example looks like this:
1012429341.115 100 172.16.100.152 TCP_MISS/302 184 GET http://www.cisco.com/
cgi-bin/login myloginname DIRECT/www.cisco.com -
Enabling Apache-Style Transaction Logging
Use the transaction-logs format apache global configuration command to enable transaction logging in Apache style format.
ContentEngine(config)# transaction-logs format apache
The Apache-style log file format is as follows:
remotehost rfc931 authuser date request status bytes
An Apache-style log file forma looks like this:
172.16.100.152 - - [Wed Jan 30 15:26:26 2002]
"GET/http://www.cisco.com/images/homepage/support.gif HTTP/1.0" 200 632
This format is the Common Log File (CLF) format defined by the World Wide Web Consortium (W3C) working group. This format is compatible with many industry-standard log tools. For more information, refer to the W3C Common Log Format website at http://www.w3.org/Daemon/User/Config/Logging.html.
Table 20-10 lists the fields associated with the Apache Common Log file format.
Table 20-10 Apache Common Log File Format Descriptions
Field
|
Description
|
Remotehost
|
Remote host name or IP address.
|
Rfc931
|
Contains the authentication server's identification or lookup names of the requesting client. This field will always contain a "-" (dash).
|
Authuser
|
Username that the user entered for authentication purposes. This will be a "-" (dash) if no user information is available.
|
Date
|
Date and time of the request.
|
Request
|
First line of the request.
|
Status
|
HTTP status code, for example, 200.
|
Bytes
|
Content length of the document transferred.
|
Enabling Custom Format Transaction Logging
Use the transaction-logs format custom global configuration command to use a log format string to log additional fields that are not included in the predefined native Squid or Extended Squid formats, or the Apache Common Log file (CLF) format. The log format string is a string which can contain the tokens listed in Table 20-11 and which mimics the Apache log format string. The log format string can contain literal characters that are copied into the log file.
•
Double backslashes (\\) can be used to represent a literal backslash.
•
A backslash followed by a single quote (\') can be used to represent a literal single quote. A literal double quote cannot be represented as part of the log format string.
•
The control characters \t and \n can be used to represent a tab and a new line character, respectively.
Table 20-11 lists the acceptable format tokens for the log format string.
•
The "..." portion of the format tokens shown in this table represents an optional condition. This portion of the format token can be left blank, as in %a.
•
If an optional condition is included in the format token and the condition is met, then what is shown in the Value column of Table 20-11 is included in the transaction log output.
•
If an optional condition is included in the format token but the condition is not met, the resulting transaction log output is replaced with a dash (-).
•
The form of the condition is a list of HTTP status codes, which may or may not be preceded by an exclamation point (!).
–
The exclamation point is used to negate all of the status codes that follow it, meaning that the value associated with the format token is logged if none of the status codes listed after the ! match the HTTP status code of the request.
–
If any of the status codes listed after the ! match the HTTP status code of the request, then a dash (-) is logged.
For example, "%400,501{User-Agent}i" logs the User-Agent header value on 400 errors and 501 errors (Bad Request, Not Implemented) only, whereas "%!200,304,302{Referer}i" logs the Referer header value on all requests that did not return a normal status.
The custom format currently supports the following request headers:
•
User-Agent
•
Referer
•
Host
•
Cookie
The output of each of the following Request, Referer, and User-Agent format tokens specified in the custom log format string is always enclosed in double quotation marks in the transaction log entry:
%r
%{Referer}i
%{User-Agent}i
The %{Cookie}i format token is generated without the surrounding double quotation marks, because the Cookie value itself can contain double quotes. The Cookie value can contain multiple attribute-value pairs that are separated by spaces. For this reason, it is recommended that when the Cookie format token is used in a custom format string, it be positioned as the last field in the format string. This positioning of the Cookie format token allows it to be more easily parsed by transaction log reporting tools. Alternatively, if you use the format token string "\'%{Cookie}i\'", the Cookie header can be surrounded by single quotes.
The following command can be entered to generate the well-known Apache Common Log file format:
transaction-logs format custom "[%{%d}t/%{%b}t/%{%Y}t:%
{%H}t:%{%M}t:%{%S}t %{%z}t] %r %s %b %{Referer}i %{User-Agent}i"
The following transaction log entry example in the Apache Common Log file format is configured using the preceding custom format string:
[11/Jan/2003:02:12:44 -0800] "GET http://www.cisco.com/swa/i/
site_tour_link.gif HTTP/1.1" 200 3436 "http://www.cisco.com/"
"Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)"
Table 20-11 Custom Log File Format String Values
Format Token
|
Value
|
%...a
|
IP address of the requesting client.
|
%...A
|
IP address of the server from which the object was served (for example, the origin server or the outgoing proxy in the case of a cache miss or 0.0.0.0 in the case of a cache hit).
|
%...B %...b
|
Bytes sent, excluding HTTP headers.
|
%...c
|
Connection status when response is completed, where:
X = Connection was aborted before the response was completed. + = Connection can be kept alive after the response is sent. - = Connection is closed after the response is sent.
|
%...f
|
Filename.
|
%...h
|
Remote host (IP address of the requesting client is logged).
|
%...H
|
Request protocol.
|
%...{Foobar}i
|
Contents of Foobar: header lines in the request that is sent to the server. The value of Foobar can be one of the following headers: User-Agent, Referer, Host, or Cookie.
|
%...l
|
Remote log name. Not implemented on the Content Engine, so a dash (-) is logged.
|
%...m
|
Request method.
|
%...p
|
Canonical port of the server servicing the request. Not applicable on the Content Engine, so a dash (-) is logged.
|
%...P
|
Process ID of the child that serviced the request.
|
%...q
|
Query string (that is preceded by a ? if a query string exists; otherwise, it is an empty string).
|
%...r
|
First line of the request.
|
%...s
|
Status. The translog code always returns the HTTP response code for the request.
|
%...t
|
Time in common log time format (or standard English format).
|
%...{format}t
|
Time in the form given by the format token specified in Table 20-12.
|
%...T
|
Time consumed to serve the request in seconds (a floating point number with 3 decimal places).
|
%...u
|
Remote user.
|
%...U
|
URL path requested, not including query strings.
|
%...v %...V
|
Value of the host request header field reported if the host appeared in the request. If the host did not appear in the host request header, the IP address of the server specified in the URL is reported.
|
Table 20-12 specifies the format token for the date and time of the format token %...{format}t that is listed in Table 20-11.
Table 20-12 Format Token for Date and Time
Format Token
|
Value
|
%a
|
Abbreviated weekday name.
|
%A
|
Full weekday name.
|
%b
|
Abbreviated month name.
|
%B
|
Full month name.
|
%c
|
Date and time representation.
|
%C
|
Century number (year/100) as a 2-digit integer.
|
%d
|
Day of the month as a decimal number (01—31).
|
%D
|
Equivalent to %m/%d/%y. (Note that in countries other than the USA, %d/%m/%y is rather common. This means that in international context this format is ambiguous and should not be used.)
|
%e
|
Like %d, the day of the month as a decimal number, but a leading zero is replaced by a space.
|
%G
|
ISO 8601 year with the century as a decimal number. The 4-digit year corresponding to the ISO week number (see %V). This has the same format and value as %y, except that if the ISO week number belongs to the previous or next year, that year is used instead.
|
%g
|
Like %G, but without century; that is, with a 2-digit year (00—99).
|
%h
|
Equivalent to %b.
|
%H
|
Hour as a decimal number using a 24-hour clock (00—23).
|
%I
|
Hour as a decimal number using a 12-hour clock (01—12).
|
%j
|
Day of the year as a decimal number (001—366).
|
%k
|
Hour (24-hour clock) as a decimal number (0—23); single digits are preceded by a blank. (See also %H.)
|
%l
|
Hour (12-hour clock) as a decimal number (1—12); single digits are preceded by a blank. (See also %I.)
|
%m
|
Month as a decimal number (01—12).
|
%M
|
Minute as a decimal number (00—59).
|
%n
|
New line character.
|
%p
|
Either AM or PM according to the given time value, or the corresponding strings for the current locale. Noon is treated as pm and midnight as am.
|
%P
|
Like %p but in lowercase: am or pm or a corresponding string for the current locale.
|
%r
|
Time in a.m. or p.m. notation. This is equivalent to `%I:%M:%S %p.'
|
%R
|
Time in 24-hour notation (%H:%M). For a version including the seconds, see %T below.
|
%s
|
Number of seconds since the epoch (for example, since 1970-01-01 00:00:00 UTC).
|
%S
|
Second as a decimal number (range 00 to 61).
|
%t
|
Tab character.
|
%T
|
Time in 24-hour notation (%H:%M:%S).
|
%u
|
Day of the week as a decimal, range 1 to 7, Monday being 1. See also %w.
|
%U
|
Week number of the current year as a decimal number, range 00 to 53, starting with the first Sunday as the first day of week 01. See also %V and %W.
|
%V
|
ISO 8601:1988 week number of the current year as a decimal number, range 01 to 53, where week 1 is the first week that has at least 4 days in the current year, and with Monday as the first day of the week. See also %U and %W.
|
%w
|
Day of the week as a decimal, range 0 to 6, Sunday being 0. See also %u.
|
%W
|
Week number of the current year as a decimal number, range 00 to 53, starting with the first Monday as the first day of week 01.
|
%x
|
Date representation without the time.
|
%X
|
Time representation without the date.
|
%y
|
Year as a decimal number without a century (00—99).
|
%Y
|
Year as a decimal number, including the century.
|
%z
|
Time zone as hour offset from GMT. Required to emit RFC822-conformant dates (using "%a, %d %b %Y %H:%M:%S %z").
|
%Z
|
Time zone or name or abbreviation.
|
%%
|
Literal % character.
|
Logging Windows Domain with Authenticated Usernames
If your Content Engine is configured for NTLM authentication and uses the Extended Squid-style or custom format, the transaction-logs log-windows-domain global configuration command records the Windows domain name and username in the username field of the transaction log. If the domain name is available, both the domain name and the username are recorded in the username field, in the form domain\username. If only the username is available, only the username is recorded in the username field. If neither a domain name nor a username is available, a "-" (dash) is recorded in the field.
The Windows domain name that is used for NTLM authentication appears in the username field of the transaction log. The username appears in the format "domain\username" in the Extended Squid-style and custom transaction log formats that contain the username using the %u format token. (The %u format token specifies the day of the week as a decimal; the range is 1 to 7 with Monday being 1.)
Use the no transaction-logs log-windows-domain global configuration command to negate logging NTLM parameters to the transaction log in Extended Squid-style or Custom formats.
Sanitizing Transaction Logs
You can disguise the IP address of clients in the transaction log file. The default is that transaction logs are not sanitized. A sanitized transaction log disguises the network identity of a client by changing the IP address in the transaction logs to 0.0.0.0. You can enable the sanitize feature in transaction logging, through the following interfaces:
•
Content Engine GUI—From the Content Engine GUI, choose Cache > Transaction Logs. Check the Transaction Log Enable check box to activate transaction logging on the Content Engine, and then click the Sanitize transaction logs radio button to enable the sanitize feature. Click Update to apply the settings.
•
Content Engine CLI —Use the transaction-logs sanitized global configuration command.
ContentEngine(config)# transaction-logs sanitize
The no form of this command disables the sanitize feature. Note that the transaction-logs sanitize command does not effect the client IP (%a) value associated with a custom log format string that is configured with the CLI (that is, configured with the transaction-logs format custom string global configuration command in which string is the quoted log format string that contains the custom log format). To hide the identity of the client IP in the custom log format, either hard code "0.0.0.0" in the custom log format string or exclude the %a token, which represents the client IP, from the format string.
Exporting Transaction Log Files
In order to facilitate the postprocessing of cache log files, it is possible to export transaction logs to an external host.
This feature allows log files to be automatically exported by FTP to an external host at configurable intervals. The username and password used for FTP are configurable, as is the directory to which the log files are uploaded.
The log files automatically have a filename of:
type_ipaddr_yyyymmdd_hhmmss.txt
where
•
type represents the type of log file with celog for cache logs such as HTTP, HTTPS, and FTP, and mms_export for the WMT logs.
•
ipaddr represents the Content Engine IP address.
•
yyyymmdd_hhmmss represents the date and time when the log was archived for export.
Note
For MMS-type logs, there is no .txt extension in the filename.
Exporting Transaction Logs to External FTP or STFP Servers
You can use the Content Engine GUI or CLI to export transaction logs to external FTP or secure FTP (SFTP) servers:
From the Content Engine GUI, choose Caching > Transaction Logs. Use the displayed Transaction Logs window to export transaction logs to an FTP or SFTP server. For more information about how to use the Transaction Logs window, click the HELP button in the window.
To use the Content Engine CLI to enable exporting of transaction logs to an external FTP or SFTP server, follow these steps:
Step 1
Use the transaction-logs export enable global configuration command to enable exporting of transaction logs to external FTP or SFTP servers.
Step 2
Use the transaction-logs export ftp-server command to specify the following information for each target FTP server.
transaction-logs export ftp-server {hostname | server-ip-address} login password directory
where:
•
hostname or server-ip-address is the host name or IP address for the FTP server.
The Content Engine translates the host name with a DNS lookup and then stores the IP address in the configuration.
•
login is the the user login to the target FTP server.
•
password is the user password to target FTP server.
•
directory is the target directory path on the specified FTP server to which the exported files (transaction files) are to be written. Specify the name of a working directory that will contain the transaction logs. Use a fully qualified path or a relative path for the user login.
Note
The user that you specified in the login option of this command must have write permission to the specified directory.
In this example, the Content Engine is configured to export its transaction logs to two FTP servers.
ContentEngine(config)# transaction-logs export ftp-server 10.1.1.1
mylogin mypasswd /ftpdirectory
ContentEngine(config)# transaction-logs export ftp-server myhostname
mylogin mypasswd /ftpdirectory
Step 3
Use the transaction-logs export sftp-server global configuration command to export transaction logs to an external SFTP server.
transaction-logs export sftp-server {hostname | server-ip-address} login password directory
where:
•
hostname or server-ip-address is the host name or IP address for the SFTP server.
The Content Engine translates the host name with a DNS lookup and then stores the IP address in the configuration.
•
login is the the user login to the target SFTP server (less than 40 characters).
•
password is the user password to target SFTP server (less than 40 characters)
•
directory is the target directory path on the specified SFTP server to which the exported files (transaction files) are to be written. Specify the name of a working directory that will contain the transaction logs. Use a fully qualified path or a relative path for the user login.
Step 4
Use the transaction-logs export compress global configuration command to compress archived log files into gzip format before exporting them to external FTP or SFTP servers.
The compressed filename has a .gz extension in the filename. This feature uses less disk space for the archived files on both the Content Engine and the FTP and SFTP export servers also require less bandwidth during export.
Changing the Transaction Logging Export Settings on Standalone Content Engines
After you have specified the transaction logging export configuration (as described in the "Enabling Transaction Logging"), you can change a username, password, or directory, as follows:
Use the transaction-logs export ftp-server global configuration command, with the new parameters to change the current configuration for an FTP server.
Use the transaction-logs exportsftp-server global configuration command, with the new parameters to change the current configuration for an SFTP server.
As the following example shows, you can change the username, password, or directory by reentering the entire line using the new parameters (for example, mynewname, mynewpass, or newftpdirectory).
ContentEngine(config)# transaction-logs export ftp-server 10.1.1.1
mynewname mynewpass /newftpdirectory
To delete an FTP server from the current configuration, use the no form of the transaction-logs export ftp-server global configuration command.
ContentEngine(config)# no transaction-logs export ftp-server 10.1.1.1
To delete an SFTP server from the current configuration, use the no form of the transaction-logs export sftp-server global configuration command.
ContentEngine(config)# no transaction-logs export sftp-server sftphostname
Restarting Export After Receiving a Permanent Error from the External FTP Server
When an FTP server returns a permanent error to a standalone Content Engine, the archive transaction logs are no longer exported to that server. You must reenter the Content Engine transaction log export parameters for the misconfigured server to clear the error condition. The show statistics transaction-logs EXEC command displays the current state of readiness for transaction log export.
A permanent error (Permanent Negative Completion Reply, RFC 959) occurs when the FTP command to the server cannot be accepted, and the action does not take place. Permanent errors can be caused by invalid user logins, invalid user passwords, and attempts to access directories with insufficient permissions or directories that do not exist.
In the following example, an invalid user login parameter was included in the transaction-logs export ftp-server global configuration command. The show statistics transaction-logs EXEC command shows that the Content Engine failed to export archive files.
ContentEngine# show statistics transaction-logs
Transaction Log Export Statistics:
Authentication Failures:1
Invalid Server Directory Failures:0
To restart the export of archive transaction logs, you must reenter the transaction-logs export ftp-server parameters.
ContentEngine(config)# transaction-logs export ftp-server 172.16.10.5
goodlogin pass /ftpdirectory
Archiving the Working Log
Depending upon where the sysfs is mounted, the following log files are logged to a working log on the local disk of a standalone Content Engine as follows:
•
WMT logs are logged to a working log on the local disk in one of these files:
–
/local1/logs/export/working.log
–
/local2/logs/export/working.log
•
RealProxy logs are logged to a working log on the local disk in one of these files:
–
/local1/logs/real-proxy/working.log
–
/local2/logs/real-proxy/working.log
You can specify the interval at which the working log should be cleared by moving the data to an archive log. The archive log files are located on the local disk in the /local1/logs/ or /local2/logs/ directory depending upon where the sysfs is mounted.
Because multiple archive files are saved, the filename includes the time stamp when the file was archived. Because the files can be exported to an FTP or SFTP server, the filename also contains the IP address of this Content Engine.
The archive filename format is:
celog_IPADDRESS_YYYYMMDD_HHMMSS.txt
Use the transaction-logs archive global configuration commands to archive the working logs.
transaction-logs archive interval seconds
transaction-logs archive interval every-day {at hour:minute | every hours}
transaction-logs archive interval every-hour {at minute | every minutes}
transaction-logs archive interval every-week [on weekdays at hour:minute]
transaction-logs archive max-file-size filesize
See Table 20-13 for a description of these command parameters.
Table 20-13 Parameters of the transaction-logs archive CLI Command
Parameter
|
Description
|
archive
|
Configures archive parameters.
|
interval
|
Determines how frequently the archive file is to be saved.
|
seconds
|
Frequency of archiving in seconds (120-604800).
|
every-day
|
Archives using intervals of 1 day or less.
|
at
|
Specifies the local time at which to archive each day.
|
hour:minute
|
Time of day at which to archive in local time (hh:mm).
|
every
|
Interval in hours. Interval aligns with midnight.
|
hours
|
Number of hours for daily file archive.
1 Hourly 12 Every 12 hours 2 Every 2 hours 24 Every 24 hours 3 Every 3 hours 4 Every 4 hours 6 Every 6 hours 8 Every 8 hours
|
every-hour
|
Archives using intervals of 1 hour or less.
|
at
|
Time to archive at each hour.
|
minute
|
Minute alignment for the hourly archive (0-59).
|
every
|
Interval in minutes for hourly archive that aligns with the top of the hour.
|
minutes
|
Number of minutes for hourly archive.
10 Every 10 minutes 15 Every 15 minutes 2 Every 2 minutes 20 Every 20 minutes 30 Every 30 minutes 5 Every 5 minutes
|
every-week
|
Archives using intervals of 1 or more times a week.
|
on
|
(Optional) Day of the week on which to archive.
|
weekdays
|
Weekdays on which to archive. One or more weekdays can be specified.
Fri Every Friday Mon Every Monday Sat Every Saturday Sun Every Sunday Thu Every Thursday Tue Every Tuesday Wed Every Wednesday
|
at
|
(Optional) Local time at which to archive each day.
|
hour:minute
|
Time of day at which to archive in local time (hh:mm).
|
max-file-size
|
Sets maximum archive file size.
|
filesize
|
Maximum archive file size in kilobytes (1000-2000000).
|
Disabling Transaction Logging Export on Standalone Content Engines
To disable the transaction logging export feature on a standalone Content Engine while retaining the transaction logging export configuration (for example, such configuration information about the FTP or SFTP servers as their IP addresses), use the no form of the transaction-logs export enable global configuration command.
ContentEngine(config)# no transaction-logs export enable
Monitoring HTTP Request Authentication Failures in Real Time
In ACNS 5.2 software, the ability to send HTTP transaction log messages to a remote syslog server was added. This allows you to monitor the remote syslog server for HTTP request authentication failures in real time. This real-time transaction log feature allows you to monitor transaction logs in real time for particular errors such as HTTP request authentication errors. The existing transaction logging to the local file system remains unchanged.
Note
Syslog is UDP so message transport to remote syslog host is not reliable.
To support the real-time transaction logging feature, the following CLI commands were added in the ACNS 5.2 software release:
[no] transaction-logs logging enable
[no] transaction-logs logging host {hostname | ipaddr} [port port-num rate-limit msgs-per-sec]
[no] transaction-logs logging facility fac-name
[no] transaction-logs logging entry-type entry-type [request-auth-failures | all]
These CLI commands allow you to specify a remote syslog host that will receive transaction log messages in real time. The configurable rate-limiting option (the rate-limit option) was added to limit the rate at which the transaction logger is allowed to send messages to the remote syslog server (messages per second). You can configure the Content Engine to send transaction log messages in real time to one remote syslog host.
The following are the default settings for the real-time transaction logging feature:
•
The real-time transaction logging feature is disabled (the no transaction-logs logging enable global command).
•
No remote syslog server is specified (the no transaction-logs logging host global configuration command).
•
No logging facility is specified (the no transaction-logs logging facility global configuration command).
•
The default facility is "*" to use the facility associated with the transaction logging module that is the "user" facility (user process).
•
The default entry type is request-auth-failures. (For more information, see the "Specifying the Transaction Log Entry Type when Logging to a Remote Syslog Host" section.)
•
The defaults for the transaction-logs logging option are:
–
Port 514 is used. This port is a well-known port for system logging.
–
The rate-limit is set to 0, which means no rate limit. The range is 1 to 10,000 messages per second.
The message format of the transaction log entry to the remote syslog host is the same as in the transaction log file and pre-pended with Cisco's standard syslog header information
Apr 22 20:10:46 ce-host cache:%CE-TRNSLG-6-460012: <translog formatted msg>
where:
•
"ce-host" is the hostname or IP of the Content Engine that is sending the message.
•
"cache" is the name of the process on the Content Engine that is sending the message.
•
"%CE-TRNSLG-6-460012" is the Cisco standard formatted syslog header.
•
<translog formatted msg> is the transaction log message as it appears in the transaction log file.
To include the username and domain name in the transaction log, use the following Content Engine CLI command:
ContentEngine(config)# transaction-logs log-windows-domain
This will cause the Windows domain name that is used for NTLM authentication to appear in the username field of the transaction log. The username appears in the format "domain\username" in the Extended Squid-style and custom transaction log formats that contain the username using the %u format token. Proxy request authentication failures in the HTTP transaction logs are reported as "401/407" errors and include the username. This type of error indicates an HTTP authentication failure. These errors are also included in the system syslog.
Configuring the Remote Syslog Host for Real-Time Transaction Logging
To configure a standalone Content Engine to send transaction log messages in real time to a remote syslog host, use the transaction-logs logging host global configuration command.
In ACNS 5.2 software, Content Engine system syslog messages were added to report communication errors with the remote syslog host that is configured for transaction logging. These new syslog messages are in the error message range: %CE-TRNSLG-6-460013 to %CE-TRNSLG-3-460016. Note that the last error message (%CE-TRNSLG-3-460016), shows level "3" (for error-level messages) instead of "6" (for information-level messages). Information-level messages are reported when messages are dropped due to rate limiting and the number of dropped messages are reported.
Configuring a Transaction Log Facility when Logging to a Remote Syslog Host
When logging transactions to a remote syslog host, use the transaction-logs logging facility global configuration command to configure a transaction log facility.
ContentEngine(config)# transaction-logs logging facility ?
auth Authorization system
To create a separate log on the remote syslog host for real-time transaction log entries, configure a unique facility (for example, "local1") on the Content Engine.
ContentEngine(config)# transaction-logs logging facility local1
On the remote syslog host, configure messages from this unique facility to be logged in a separate file. The following is an example if the remote syslog host is a UNIX server:
1.
Edit the /etc/syslog.conf file to add the following line to direct local1 information-level messages to the /var/log/translog-messages file that is associated with the local1 facility.
local1.=info /var/log/translog-messages
2.
Modify the following line in the /etc/syslog.conf file to exclude these information-level messages from the standard output file (the /var/log/messages file).
*.info;mail.none;news.none;authpriv.none;cron.none;local1.none /var/log/messages
On a UNIX system, help on the syntax for the /etc/syslog.conf file is under the command "man syslog.conf."
On a UNIX system, the port for the syslog daemon is defined in /etc/services:
If a port other than port 514 is configured on the syslog host, you must configure the same port on the Content Engine (the transaction-logs logging host {hostname | ipaddr} [port port-num] global configuration command).
Specifying the Transaction Log Entry Type when Logging to a Remote Syslog Host
With ACNS software, Release 5.2 or later, you can configure the Content Engine to send only the transactions associated with HTTP request authentication failures, or to send all of the transactions.
Typically, organizations are interested in only HTTP request authentication failures for security purposes. By monitoring these types of authentication failures in real time, it enables organizations to identify which end users failed to be authenticated through the Content Engine.
ContentEngine(config)# transaction-logs logging entry-type ?
all Log all transaction messages to remote syslog host
request-auth-failures Log transactions CE failed to authenticate with the auth server
Note that only the authentication failure transaction that is associated with an end user who is attempting to contact the authentication server is logged. The "pending" transactions that are waiting for a response from the transaction that contacted the authentication servers are not logged. This approach provides you with the information needed to determine which user fails to authenticate with the Content Engine and minimizes the traffic to the syslog host. In order for you to track which users failed to authenticate, you must configure a transaction log format that logs the username by configuring either Extended Squid-style format or the custom log format with the custom format token %u. For more information about specifying the format of the transaction log, see the "Enabling Transaction Logging" section.
When the transaction-logs logging enable global configuration command is specified, the logging of only HTTP request authentication failures is the default. If you want to change this default and log all transactions, then you must enter the transaction-log logging entry-type all global configuration command on the Content Engine. However, if you log all transactions, there may be a significant UDP drop rate if your syslog host cannot handle the rate of incoming traffic.
Displaying the Transaction Log Configuration for Standalone Content Engines
To display information about the current configuration of transaction logging on a standalone Content Engine, use the show transaction-log or show transaction-logging EXEC commands. Both of these EXEC commands display the same output. Note that transaction log file information is displayed for HTTP and WMT MMS caching proxy transactions, as well as TFTP and ICAP transactions. See sample output below.
Note
For security reasons, passwords are never displayed in the output of the show transaction-log EXEC command.
ContentEngine# show transaction-log
Transaction log configuration:
---------------------------------------
End user identity is visible.
File markers are disabled.
Archive interval: every-day every 1 hour
Maximum size of archive file: 2000000 KB
Log File format is squid.
Windows domain is not logged with the authenticated username
Exporting files to ftp servers is disabled.
File compression is disabled.
Export interval: every-day every 1 hour
HTTP Caching Proxy logging to remote syslog host is disabled.
Remote syslog host is not configured.
Facility is the default "*" which is "user".
Log HTTP request authentication failures with auth server to remote syslog host.
HTTP Caching Proxy Transaction Log File Info
Working Log file - None existing
WMT MMS Caching Proxy/Server Transaction Log File Info
Working Log file - size : 584
Archive Log file - mms_export_10.1.1.21_20040622_230415 size: 584
Archive Log file - mms_export_1.1.1.1_20040623_205825 size: 584
Translog directory doesn't exist. Maybe because /local1 has no sysfs mounted.
Translog directory doesn't exist. Maybe because /local1 has no sysfs mounted.
TFTP Transaction Log File Info
Working Log file - size : 88
Archive Log file - tftp_server_10.1.1.21_20040622_230415 size: 88
Archive Log file - tftp_server_1.1.1.1_20040623_205826 size: 88
ICAP Transaction Log File Info
Working Log file - size : 61
Archive Log file - icap_10.1.1.21_20040622_230415 size: 61
Archive Log file - icap_1.1.1.1_20040623_205826 size: 61
Using the System Logging Feature
Use the system logging feature to set specific parameters for the system log file (syslog). This file contains authentication entries, privilege levels, and administrative details. System logging is always enabled internally. The system log file is located on the system file system (sysfs) partition as /local1/syslog.txt.
By default, system logging is enabled on a standalone Content Engine. Table 20-14 lists the default settings for system logging.
Table 20-14 Default Settings for System Logging
Setting
|
Default Setting
|
Priority of message for console
|
warning
|
Priority of message for log file
|
debug
|
Log file
|
/local1/var/log/syslog.txt
|
Log file recycle size
|
0,000,000 bytes
|
You can use the Content Engine GUI or CLI to configure standalone Content Engines to send varying levels of event messages to disk, console, or remote syslog hosts. See the "Configuring System Logging on Standalone Content Engines" section for information about how to change the default syslog settings.
Displaying the Current Configuration for System Logging
To display the current syslog host configuration on a standalone Content Engine, enter the show logging EXEC command.
ContentEngine# show logging
Syslog to host is enabled.
Priority for host logging to 1.2.1.1:514 is set to: warning
Syslog to console is disabled
Priority for console logging is set to: warning
Syslog to disk is enabled
Priority for disk logging is set to: notice
Filename for disk logging is set to: /local1/syslog.txt
Syslog facility is set to syslog
Syslog disk file recycle size is set to 10000000
Configuring System Logging on Standalone Content Engines
You can use the Content Engine GUI or the CLI to configure system logging on standalone Content Engines. As part of the configuration, you specify whether the Content Engine is to send varying levels of messages to any of the following: to disk, to console, or to up to four remote syslog hosts.
From the Content Engine GUI, choose System > Syslog. Use the displayed Syslog window to configure system logging for the Content Engine. For more information about how to use the Syslog window, click the Help button in the window to access the context-sensitive help.
From the Content Engine CLI, use the logging global configuration command to set specific parameters for the syslog.
ContentEngine(config)# logging ?
facility Facility parameter when log to host
host Log to host (maximum of 4 hosts)
See the following sections for more information about how to use the Content Engine CLI to configure system logging on standalone Content Engines:
•
Mapping Syslog Priority Levels to RealProxy Error Codes
•
Mapping Syslog Priority Levels to RealProxy Error Codes
•
Configuring System Logging to Remote Syslog Hosts
Configuring System Logging to the Console
System logging can be configured to send various levels of messages (priority levels) to the console. Use the logging console priority global configuration command to configure system logging to the console and to specify the various levels of messages that should be sent to the console.
logging console {enable | priority loglevel }
See Table 20-15 for a description of these command parameters.
Table 20-15 Parameters for the logging console CLI Command
Parameter
|
Description
|
console
|
Sets system logging to the console.
|
enable
|
Enables system logging to the console.
|
priority
|
Sets which priority level messages to log to the console.
|
loglevel
|
Use one of the following keywords:
|
• alert
|
Immediate action needed. Priority 1.
|
• critical
|
Immediate action needed. Priority 2.
|
• debug
|
Debugging messages. Priority 7.
|
• emergency
|
System is unusable. Priority 0.
|
• error
|
Error conditions. Priority 3.
|
• information
|
Informational messages. Priority 6.
|
• notice
|
Normal but significant conditions. Priority 5.
|
• warning
|
Warning conditions. Priority 4.
|
Note
Syslog messages from the Content Engine to a remote host are sourced from port 10000 rather than from port 514.
This example shows the last few lines of the syslog.txt file using the type-tail EXEC command, which only lists the last few lines of text in a file.
ContentEngine# type-tail syslog.txt
Jan 18 17:50:03 ContentEngine Host[3766]: authentication failure; (uid=0) ->
aaHH for content_engine_config service
Jan 18 17:50:05 ContentEngine login[3766]: Failed login session from 172.16.1.1
for user aaHH: Authentication service cannot retrieve authentication info.
Jan 18 18:39:05 ContentEngine Host[6787]: set privilege level to `0'
Jan 18 18:39:05 ContentEngine login: user login on 1 from 172.16.66.148
Configuring System Logging to Disk
System logging can be configured to send various levels of messages (priority levels) to disk. Use the logging disk priority global configuration command to configure system logging to disk and to specify the various levels of messages that should be sent to disk.
logging disk {enable | filename filename | priority loglevel | recycle size}
See Table 20-16 for a description of these command parameters.
Table 20-16 Parameters for the logging disk CLI Command
Parameter
|
Description
|
disk
|
Sets system logging to a disk file.
|
enable
|
Enables system logging to a disk file.
|
filename
|
Sets the name of the syslog file.
|
filename
|
Specifies the name of the syslog file.
|
priority
|
Sets which priority level messages to send to syslog file.
|
loglevel
|
Use one of the following keywords:
|
• alert
|
Immediate action needed. Priority 1.
|
• critical
|
Immediate action needed. Priority 2.
|
• debug
|
Debugging messages. Priority 7.
|
• emergency
|
System is unusable. Priority 0.
|
• error
|
Error conditions. Priority 3.
|
• information
|
Informational messages. Priority 6.
|
• notice
|
Normal but significant conditions. Priority 5.
|
• warning
|
Warning conditions. Priority 4.
|
recycle
|
Overwrites syslog.txt (log file) when the file surpasses the recycle size.
|
size
|
Size of syslog file in bytes (1000000-50000000).
|
Configuring System Logging to Remote Syslog Hosts
In ACNS 5.1 software, logging to only a single remote syslog host was supported, and the following two commands were used to configure a single remote syslog host for a standalone Content Engine:
ContentEngine(config)# logging host hostname
ContentEngine(config)# logging priority priority
In ACNS 5.2 software, you can configure a Content Engine to send varying levels of messages to up to four remote syslog hosts. To accommodate this change, the ACNS 5.1.x logging host priority priority global configuration command (shown above) is deprecated, and the logging host hostname global configuration command is extended as follows:
ContentEngine(config)# [no] logging host hostname [priority priority-code | port port
|rate-limit limit]
where:
•
hostname is the hostname or IP address of the remote syslog host. Specify up to four remote syslog hosts. To specify more than one syslog host, use multiple command lines; specify one host per command (In releases ACNS 5.1.x and earlier, you could only configure a Content Engine to send messages to a single remote syslog host.)
•
priority-code is the severity level of the message that should be sent to the specified remote syslog host. The default priority-code is "warning" (level 4). Each syslog host is capable of receiving a different level of event messages. See the different priority codes below.
ContentEngine(config)# logging host 1.2.3.4 priority ?
alert (1) Immediate action needed
critical (2) Critical conditions
debug (7) Debugging messages
emergency (0) System is unusable
error (3) Error conditions
information (6) Informational messages
notice (5) Normal but significant conditions
warning (4) Warning conditions
Note
Syslog host redundancy can be naturally achieved by configuring multiple syslog hosts on the Content Engine, and assigning the same priority code to each configured syslog host (for example, assigning a priority code of "critical" level 2 to sylog host 1, sylog host 2, and syslog host 3).
•
port is the destination port of the remote syslog host to which the Content Engine is to send the messages. The default port is port 514. (In releases prior to ACNS 5.2, you could not change the default port. Syslog messages were only sent to port 514 on the specified syslog host)
•
rate-limit specifies the number of messages that are allowed to be sent to the remote syslog host per second. To limit bandwidth and other resource consumption, messages to the remote syslog host can be rate limited. If this limit is exceeded, the specified remote syslog host drops the messages. There is no default rate limit, and by default all syslog messages are sent to all of the configured syslog hosts. If the rate limit is exceeded, a "message of the day" (motd) will be printed for any CLI EXEC shell login.
Use the logging host global configuration command to configure the Content Engine to send varying levels of syslog messages to up to four external syslog hosts. In the following example, the Content Engine is configured to send messages that have a priority code of "error" (level 3) to the remote syslog host that has an IP address of 172.31.2.160.
ContentEngine(config)# logging host 172.31.2.160 priority error
Mapping Syslog Priority Levels to RealProxy Error Codes
RealProxy generates error messages and writes them to the RealProxy log file. These error messages are captured by the ACNS software and passed to the system log file. The correspondence between the RealProxy error codes and the syslog priority levels are shown in Table 20-17.
Table 20-17 Mapping of RealProxy Error Level to Syslog Priority Level
RealProxy Error Code
|
RealProxy Condition
|
RealProxy Usage
|
syslog Priority Level
|
0
|
Panic
|
Error potentially causing a system failure. RealProxy takes actions necessary to correct the problem.
|
Priority 0—LOG_EMERG Emergency. System is unusable.
|
1
|
Severe
|
Error requiring immediate user intervention to prevent a problem.
|
Priority 1—LOG_ALERT Alert. Immediate action needed.
|
2
|
Critical
|
Error that may require user intervention to correct.
|
Priority 2—LOG_CRI Critical. Critical conditions.
|
3
|
General
|
Error that does not cause a significant problem with normal system operation.
|
Priority 3—LOG_ERR, Error. Error conditions.
|
4
|
Warning
|
Warning about a condition that does not cause system problems but may require attention.
|
Priority 4—LOG_WARNING Warning. Warning conditions.
|
5
|
Notice
|
Notice about a condition that does not cause system problems but should be noted.
|
5—LOG_NOTICE Notice. Normal but significant conditions.
|
6
|
Informational
|
Informational message only.
|
6—LOG_INFO Information. Informational messages.
|
7
|
Debug
|
Information of use only when you are debugging a program.
|
7—LOG_DEBUG Debug. Debugging messages.
|
Using CiscoWorks2000
CiscoWorks2000 (CW2K) is a Cisco product that provides a suite of management applications used to manage most Cisco devices. The Content Engine can interoperate with CiscoWorks2000 without any modification in the following ways:
•
CW2K can list the Content Engine under "Generic SNMP" devices.
•
The CW2K inventory module lists the Content Engine with the device name, system name, description (including the software version), uptime, and network interface information.
•
The CW2K syslog module can understand Content Engine syslogs.
•
The CW2K availability module can track the Content Engine.
You can enable or disable syslog message generation in CiscoWorks2000-compliant format through either the Content Engine GUI or the CLI. For example, to use the Content Engine CLI to configure a CW2K as a remote syslog host, use the logging host hostname global configuration command, as described in the "Configuring System Logging on Standalone Content Engines" section.
Creating HTTP Custom Error Pages for Standalone Content Engines
ACNS software, Release 5.1 or later allows you to create HTTP customized error pages. If you create these customized pages, then the standalone Content Engine displays the appropriate customized error page instead of the default error message when proxy errors occur.
Table 20-18 describes the custom error messages and their usage for standalone Content Engines.
Table 20-18 Custom Error Page Messages for Standalone Content Engines
Message Identifier
|
Usage
|
blocked-dueto-filter-error
|
Error response when a request is blocked because of a filter.
|
cache-read-error
|
Error response when a cache files system (cfs) read fails.
|
cache-write-error
|
Error response when a cfs write fails.
|
client-access-denied-msg
|
Error response when a client access is denied.
|
client-connection-broken-error
|
Error response when a client connection is lost.
|
dns-not-available-error
|
Error response when DNS is unavailable for resolution.
|
expect-failed-error
|
Error response when Expect specifier in the HTTP request header cannot be met.
|
ftp-bad-login-error
|
Error response when the FTP login fails.
|
ftp-bad-url-error
|
Error response when the FTP request receives a bad URL.
|
ftp-disabled-error
|
Error response when the FTP is disabled.
|
ftp-failure-error
|
Error response when FTP fails.
|
ftp-internal-error
|
Error response when the FTP interval is exceeded.
|
ftp-not-found-error
|
Error response when the FTP file not found.
|
ftp-put-created-msg
|
Error response when the FTP PUT is successful.
|
ftp-put-error
|
Error response when the FTP PUT fails.
|
ftp-put-modified-msg
|
Response when the FTP update is successful.
|
ftp-unavailable-msg
|
Error response when the FTP file is unavailable.
|
http-blocked-port-msg
|
Error response when an HTTP request comes through a blocked port.
|
https-blocked-port-msg
|
Error response when an HTTPS request comes through a blocked port.
|
icap-processing-error
|
Error response when an error occurred in ICAP processing.
|
invalid-port-error
|
Error response when an invalid port is accessed.
|
looped-req-error
|
Error response when a looped request is unsuccessful.
|
not-enough-resources-error
|
Error response when enough resources are not available for the request process.
|
not-in-cache
|
Error response when the object is not found in the cache.
|
offline-miss-error
|
Error response when an off-line Content Engine finds a cache miss.
|
outgoing-proxy-fail-error
|
Error response when all outgoing proxy fails.
|
proxy-unauthenticated-error
|
Error response when the proxy authentication fails.
|
radius-redirect-error
|
Error response for a RADIUS redirect message.
|
request-blocked-msg
|
Error response when the request is blocked.
|
request-malformed-error
|
Error response when the request headers are malformed.
|
rev-dns-not-available-msg
|
Error response when DNS is not available.
|
server-connection-broken-error
|
Error response when the server connection is lost.
|
www-unauthenticated-error
|
Error response when the server authentication fails
|
You can use the Content Engine GUI or the CLI to create HTTP customized error pages for any of the error messages listed in Table 20-18.
•
From the Content Engine GUI, choose Caching > Customized Error Page. Use the displayed Custom Error Page Configuration window. For more information about how to use the Custom Error Page Configuration window, click the HELP button in the window.
•
To use the Content Engine CLI to configure HTTP custom error pages, use the http custom-error-page EXEC command.
http custom-error-page download message url | reset {all | message} | upload {ip-address | hostname} dirname filename message
Table 20-19 describes the parameters for the http custom-error-page command.
Table 20-19 Parameters for the http custom-error-page CLI Command
Parameter
|
Description
|
download
|
Copies the custom error message file to the Content Engine from the specified URL. To change the text for a specific message, use this option to identify the message you want to change, and specify the URL that is the source for the custom message file. The custom message file can be up to 16 KB in size and is used instead of the standard message page for the specified message.
|
url
|
Specifies the source of the custom error file. The file size cannot exceed 16 KB.
|
message
|
Specifies the type of custom error message (for example, ftp-put-error). See Table 20-18 for a list of these custom error messages
|
reset
|
Reverts to the default error page.
|
message
|
Specifies the message that you want to return to the default page
|
upload
|
Uploads the custom error message file to the specified host, directory, and file.
|
ip-address
|
Specifies the IP address of the host to which to copy the error page.
|
hostname
|
Specifies the host name to which to copy the error page. The host should be reachable and allow copying a file to the specified directory.
|
dirname
|
Specifies the directory name to which to copy the error page.
|
filename
|
Specifies the filename to which to copy the error page.
|
The following command copies a custom error message page to the Content Engine for the cache-read-error message:
ContentEngine# http custom-error-page download
http://www.myserver.com/errors/cache-read-error.txt cache-read-error
The following command copies the current contents of the cache-read-error message to a file in the errors directory on the host with the IP address 192.168.1.1:
ContentEngine# http custom-error-page upload 192.168.1.1 /errors
cache-read-error.txt cache-read-error
The following command resets the cache-read-error message to the default text:
ContentEngine# http custom-error-page reset cache-read-error
Troubleshooting with the HTTP CLI Client
In ACNS 5.2 software, an HTTP CLI client was added. This new capability allows you to test connectivity and debug caching issues. The test-url EXEC command provides debugging capabilities to the end user from the Content Engine CLI. With this command, you can test the URL accessibility and connectivity through the web server and the proxy server. The functionality of the URL over the HTTP, HTTPS, and FTP protocols can be tested (see below). This command tests the functionality of a URL over the HTTP and FTP proxy servers. The command output is displayed to the standard output (the console).
ContentEngine# test-url ?
http For request over HTTP
https For request over HTTPS
See Table 20-20 for a description of the test-url commands.
Table 20-20 test-url CLI Commands
test-url Content Engine CLI Commands
|
Description
|
test-url http test-URL
|
Tests the connectivity of the specified URL (the test URL). Test the connectivity of the URL (content request over HTTP) through the HTTP proxy server (the Content Engine). Also test HTTP request authentication, proxy authentication, HTTP HEAD request, and a custom header.
ContentEngine# test-url http ?
custom-header Custom header to send to server
head-only To fetch only header information
use-http-proxy Test a url through a proxy. This option can be used only
with http protocol
|
test-url https test-URL
|
Tests the connectivity of the specified URL (content request over HTTPS). Also test HTTPS request authentication, and the HTTPS HEAD request.
ContentEngine# test-url https ?
WORD The test url. Format https://domain.com/path or
https://user:password@domain.com/path
|
test-url ftp test-URL
|
Tests the connectivity of the specified URL (test URL). Test the connectivity of the URL (content request over FTP [FTP-over-HTTP]) through the FTP proxy server (Content Engine). Also test the HTTP authentication for FTP-over-HTTP requests, and proxy authentication.
ContentEngine# test-url ftp ?
WORD The test url. Format ftp://domain.com/path
or ftp://user:password@domain.com/path
ContentEngine# test-url ftp use-ftp-proxy ?
use-ftp-proxy Test a url through a proxy. This option can be used only with
http protocol
|
When using the test-url EXEC command, you can specify the test URL (test-url protocol test-URL EXEC command) in either of the following formats (see below):
http://domain.com/path or http://user:password@domain.com/path
In the following example, the test URL (www.cisco.com) is an HTTP request. The request succeeds.
ContentEngine# test-url http http://www.cisco.com
--17:34:50-- http://www.cisco.com/=> `/dev/null'
Len - 21 , Restval - 0 , contlen - 0 , Res - 134728056Resolving www.cisco.com
Connecting to www.cisco.com[192.168.0.0]:80... connected.
HTTP request sent, awaiting response...
2 Date: Fri, 25 Jun 2004 17:09:06 GMT
3 Server: Apache/1.0 (Unix)
4 Content-Type: text/html
5 Set-Cookie: CP_GUTC=172.16.0.0.133781088183346835; path=/; expires=T
19-Jun-29 17:09:06 GMT; domain=.cisco.com
6 Via: 1.1 Application and Content Networking System Software 5.2.0
en - 1185 ELen - 0 Keepalive - 0
17:34:50 (1.38 MB/s) - `/dev/null' saved [56249]
In the following example, the test URL (gmail.google.com) is an HTTPS request that fails because the host is not found.
ContentEngine# test-url https https://gmail.google.com head-only
--17:43:13-- https://gmail.google.com/=> `/dev/null'
Len - 25 , Restval - 0 , contlen - 0 , Res - 134728056Resolving gmail.google.com
Resolving gmail.google.com failed: Host not found.
In the following example, the test URL is an FTP-over-HTTP request using the Content Engine as an that has an IP address of 172.16.0.0 as the FTP proxy for the request.
ContentEngine# test-url ftp ftp://1234567:pAB6rB7x@smartfilter.com use-ftp-proxy ?
WORD Proxy-url. Format http://proxyIp:proxyPort or
http://proxyUser:proxypasswd@proxyIp:proxyPort
ContentEngine# test-url ftp ftp://1234567:pAB6rB7x@smartfilter.com use-ftp-proxy
172.16.0.0:8080
Troubleshooting with the Log Viewing Tool
In ACNS 5.2 software, the less EXEC command was added. Use this command to specify the filename of the ACNS software log that you want to view.
Troubleshooting with the Telnet Client
In ACNS 5.2 software, a Telnet CLI client was added. This Telnet client allows you to specify a destination port. This allows you to test websites by attempting to telnet to the website from the Content Engine CLI. To support this feature, the telnet EXEC command was added.
Hostname or A.B.C.D Remote host or IP address
Troubleshooting with Ping
To send echo packets for diagnosing basic network connectivity on networks, use the ping EXEC command.
ping {hostname | ip-address} | PING options
In ACNS 5.2 software, the functionality of the ping EXEC command was expanded to support all of the standard ping options as command arguments. (For more information on the standard ping options, refer to the Linux man page.)
LINE Destination Host or IP Address (or PING options)
To use the ping EXEC command with the hostname argument, be sure that DNS functionality is configured on your Content Engine. To force the timeout of a nonresponsive host, or to eliminate a loop cycle, press Ctrl-C.
In the following example, the host with an IP address of 172.19.131.189 is pinged from the Content Engine CLI.
ContentEngine# ping 172.19.131.189
PING 172.19.131.189 (172.19.131.189) from 10.1.1.21 : 56(84) bytes of data.
64 bytes from 172.19.131.189: icmp_seq=0 ttl=249 time=613 usec
64 bytes from 172.19.131.189: icmp_seq=1 ttl=249 time=485 usec
64 bytes from 172.19.131.189: icmp_seq=2 ttl=249 time=494 usec
64 bytes from 172.19.131.189: icmp_seq=3 ttl=249 time=510 usec
64 bytes from 172.19.131.189: icmp_seq=4 ttl=249 time=493 usec
--- 172.19.131.189 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/mdev = 0.485/0.519/0.613/0.047 ms
In ACNS 5.2 software, the functionality of the ping command was expanded to support all of the standard ping options. (For more information on the standard ping options, refer to the Linux man page.)
LINE Destination Host or IP Address (or PING options)
Troubleshooting with Traceroute
Traceroute is a widely available utility on most operating systems. Much like ping, it is a valuable tool for determining connectivity in a network. Ping allows the user to find out if there is a connection between two end systems. Traceroute does this as well, but additionally lists the intermediate routers between the two systems. Users can therefore see the routes that packets can take from one system to another.
Use the traceroute EXEC command to find the route to a remote host, when either the host name or IP address is known.
ContentEngine# traceroute yahoo.com
traceroute to 66.218.71.113 (66.218.71.113), 30 hops max, 38 byte packets
10 p3-3.paloalto-cr2.bbnplanet.net (4.0.26.13) 3.219 ms 2.001 ms 2.097 ms
11 p7-1.paloalto-nbr2.bbnplanet.net (4.0.6.77) 3.133 ms 1.949 ms 2.076 ms
12 p4-0.paloalto-nbr1.bbnplanet.net (4.0.5.65) 2.755 ms 2.204 ms 2.037 ms
13 p1-0.paix-bi2.bbnplanet.net (4.0.6.98) 2.928 ms 2.146 ms 2.334 ms
14 p1-0.xpaix17-level3.bbnplanet.net (4.0.1.70) 3.397 ms 3.631 ms 3.081 ms
15 gige10-0.ipcolo4.SanJose1.Level3.net (64.159.2.42) 3.334 ms 2.999 ms 2.388 ms
16 cust-int.level3.net (64.152.69.18) 3.871 ms 3.031 ms *
17 ge-3-3-0.msr1.pao.yahoo.com (216.115.101.42) 3.695 ms ge-2-3-0.msr2.pao.yahoo.com
(216.115.101.46) 6.998 ms *
18 vl16.bas1.scd.yahoo.com (66.218.64.146) 6.282 ms 5.091 ms 5.162 ms
19 w2.rc.scd.yahoo.com (66.218.71.113) 6.028 ms 5.782 ms 5.544 ms