本文档概述了Cisco Unity Express(CUE)中的跟踪功能。 Trace是Cisco Unity Express中的调试工具,用于排除各种问题。启用跟踪功能后,可能会对系统性能产生负面影响。由于此问题,思科建议您仅应思科技术支持的请求启用跟踪,以收集有关特定问题的信息。对于实验室或维护窗口中的系统,跟踪功能可用于排除故障并了解Cisco Unity Express行为。
思科建议您通过命令行界面(CLI)基本熟悉Cisco Unity Express的管理和使用。
此功能需要Cisco Unity Express 1.0版或更高版本。集成方法(Cisco CallManager或Cisco CallManager Express)并不重要。所有示例配置和屏幕输出均取自Cisco Unity Express 1.1.1版。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
熟悉Cisco IOS®软件的人很可能不熟悉其CLI和强大的调试功能。Cisco Unity Express的工具在功能上相似,但有一些重要区别。在Cisco Unity Express中,debug命令不存在。相反,有一个trace命令。跟踪工具是一种诊断工具,它将消息写入内存的内核缓冲区中。此内存空间(大小可达10 MB)会定期(如果已配置)写入本地跟踪文件(atrace.log)、外部FTP服务器上的文件或同时写入两者。
注意:记录到FTP服务器的atrace.log文件和跟踪数据不是纯文本。数据必须发送给思科技术支持以进行诊断。
您可以手动将写在Cisco Unity Express模块(atrace.log和messages.log以及其他文件)上的每个文件复制到外部FTP服务器。
Cisco Unity Express还支持与Cisco IOS软件中的系统日志类似的日志设备。这些消息来自操作系统以及按不同级别分类的其他应用程序源。这些是Info、Warning、Error和Fatal消息,它们写入Cisco Unity Express(messages.log)上的另一个文件。 它们也可以写入到外部系统日志服务器以及Cisco Unity Express的控制台。
如果希望CUE模块将INFO消息记录到外部系统日志服务器,请在CUE模块中发出以下命令:
CUE> config t CUE(config)>log server
默认情况下,AIM上仅记录致命消息。对于大多数常见问题,需要messages.log文件和故障跟踪信息。
如果思科技术支持指示您收集特定跟踪,您应同意需要启用的特定跟踪和捕获方法。例如,可以使用实时跟踪、查看跟踪内存缓冲区或捕获FTP服务器上的跟踪数据。
Cisco Unity Express有两个硬件型号,即AIM和NM。在跟踪函数方面,两者之间有一些重要区别:
AIM | NM |
---|---|
默认情况下禁用atrace.log文件。发出log trace local enable命令以开始,发出log trace local disable命令以停止。 | 默认情况下,atrace.log文件处于启用状态。还支持跟踪外部服务器。 |
atrace.log的最大大小为10 MB。 | atrace.log的最大大小为100 MB。 |
atrace.log文件已满时不会换行。 | atrace.log文件已满时换行。 |
如何启用和查看跟踪数据将在本文档后面更详细地介绍。默认情况下,AIM不在闪存中存储任何跟踪信息。此外,当启用跟踪数据时,其内部存储容量会受到限制得多。这是因为AIM上内部闪存卡的使用寿命与向其发出的写入次数有关。不断地写下痕迹会显着缩短寿命。
注意:在配置模式下发出log trace local disable命令,然后发出log trace local enable 命令,以便在已达到其最大大小的AIM上重新启动atrace.log文件。这将删除原始atrace.log文件,并开始新文件。
对于日志设备,还有重要区别:
AIM | NM |
---|---|
默认情况下,仅致命消息会记录到messages.log文件。在配置模式下发出命令log console info以查看所有消息。 | 所有类别的消息都记录到messages.log文件中。 |
注意:在Cisco Unity Express上配置跟踪可能会对系统性能产生负面影响,尤其是当您写入已启用的本地日志文件时。这可能包括提示延迟和双音多频(DTMF)音响响应时间,以及录制或播放音频中的质量问题。谨慎配置跟踪。
跟踪配置控制写入跟踪内存缓冲区的消息类型。此10 MB的缓冲区始终封装,以便显示最新的跟踪信息。由于系统的活动级别不同,因此无法判断此跟踪缓冲区涵盖的时间段。但是,如果配置了该缓冲区,则会写入本地atrace.log文件或FTP服务器。
您只能从Cisco Unity Express CLI配置跟踪。发出show trace命令,查看当前已启用的跟踪。
例如:
vnt-3745-44a#service-module service-Engine 4/0 session Trying 172.18.106.66, 2129 ... Open vnt-nm-cue# vnt-nm-cue#show trace MODULE ENTITY SETTING ccn Engine 00000001 ccn LibLdap 00000001 ccn SubsystemAppl 00000001 ccn ManagerAppl 00000001 ccn ManagerChannel 00000001 ccn SubsystemJtapi 00000001 ccn SubsystemSip 00000001 ccn StackSip 00000001 ccn SubsystemHttp 00000001 ccn VbrowserCore 00000001 ccn SubsystemCmt 00000001 ccn LibMedia 00000001 ccn ManagerContact 00000001 ccn StepCall 00000001 ccn StepMedia 00000001 config-ccn sip-subsystem 00000001 config-ccn jtapi-subsystem 00000001 config-ccn sip-trigger 00000001 config-ccn jtapi-trigger 00000001 config-ccn http-trigger 00000001 config-ccn group 00000001 config-ccn application 00000001 config-ccn script 00000001 config-ccn prompt 00000001 config-ccn miscellaneous 00000001 voicemail database 0000008f voicemail mailbox 0000003f voicemail message 0000002f webInterface initwizard 00000001 vnt-nm-cue#
这是NM和AIM的默认跟踪设置。默认情况下,AIM不存储这些跟踪的输出。对于大多数常规故障排除,这些跟踪级别已足够。如果最近发生问题,则跟踪内存缓冲区中可能仍有一些历史记录。
发出跟踪模块实体活动命令以启用跟踪。例如:
vnt-nm-cue#trace ccn subsystemsip dbug
以下是CUE 1.1.1的模块:
vnt-nm-cue#trace ? BackupRestore Module all Every module, entity and activity ccn Module config-ccn Module dns Module superthread Module udppacer Module voicemail Module webInterface Module
每个模块下有许多实体。练习级别有所不同(通常在模块之间)。 通常,每个实体都至少具有调试(有时拼写为DBUG)和所有活动级别。一般来说,调试活动级别已足够。
可以多次发出跟踪模块实体活动命令,直到所有所需模块和实体的跟踪被启用。
设置哪些跟踪并不重要。重新加载后,系统恢复为默认跟踪级别。为了更改这些默认设置以使其在重新启动后继续运行,您必须发出log trace boot命令。
配置所有跟踪后,数据将写入内存缓冲区。然后,可以在消息传入时实时显示,或在事件或测试发生后查看缓冲区。
基于内存的跟踪缓冲区是检查跟踪的首批位置之一。可以实时查看,因此跟踪消息在进入时显示。作为替代,可显示和检查全部或部分内存缓冲区。
在对受控系统中的问题进行故障排除时(当没有多个同时呼叫或系统尚未投入生产时),实时跟踪特别有用。 由于跟踪输出行经常换行,而且信息几乎总是以比读取更快的速度滚动,因此在打开实时跟踪之前,请将控制台输出记录到文本文件中。这允许稍后在文本编辑器中查看信息。例如,在Microsoft Hyperterminal中,可以选择“传输”>“捕获文本”,然后指定捕获文件。
实时跟踪功能对系统的性能影响也最大。谨慎使用。
发出show trace buffer tail命令以实时查看跟踪信息。例如:
vnt-nm-cue>show trace buffer tail Press <CTRL-C> to exit... 295 06/22 10:39:55.428 TRAC TIMZ 1 EST EDT 18000 2019 06/22 11:20:15.164 ACCN SIPL 0 receive 1098 from 172.18.106.66:54948 2020 06/22 11:20:15.164 ACCN SIPL 0 not found header for Date 2020 06/22 11:20:15.164 ACCN SIPL 0 not found header for Supported 2020 06/22 11:20:15.164 ACCN SIPL 0 not found header for Min-SE 2020 06/22 11:20:15.165 ACCN SIPL 0 not found header for Cisco-Guid 2020 06/22 11:20:15.165 ACCN SIPL 0 not found header for Remote-Party-ID 2020 06/22 11:20:15.165 ACCN SIPL 0 not found header for Timestamp 2020 06/22 11:20:15.165 ACCN SIPL 0 not found header for Call-Info 2020 06/22 11:20:15.165 ACCN SIPL 0 not found header for Allow-Events 2020 06/22 11:20:15.166 ACCN SIPL 0 ------- INVITE sip:18999@172.18.106.88:5060 SIP/2.0 Via: SIP/2.0/UDP 172.18.106.66:5060;branch=z9hG4bK1678 From: "Caller1" <sip:201@172.18.106.66>;tag=23F5B364-22C9 To: <sip:18999@172.18.106.88> Date: Tue, 22 Jun 2004 15:20:14 GMT Call-ID: 7E86EC94-C39611D8-AF50DA50-D3EDBBC9@172.18.106.66 Supported: 100rel,timer Min-SE: 1800 Cisco-Guid: 2092538615-3281392088-2941114960-3555572681 ...
此信息的滚动与Cisco IOS软件调试输出类似。其中一个区别是,您只需按Control-C组合键即可停止。
内存中的跟踪缓冲区最大可为10 MB。需要注意以下几个命令行参数:
vnt-nm-cue>show trace buffer ? <cr> containing Only display events matching a regex pattern long Show long format short Show short format tail Wait for events and print them as they occur | Pipe output to another command
大多数情况下,应该使用的唯一选项是show trace buffer long。可以在末尾添加paged关键字,以便输出一次显示一页。长格式包括许多错误代码和返回代码的扩展文本,而短格式只能包括十六进制代码。虽然通常比较容易获取带有终端程序捕获功能的所有内容,然后在文本编辑器中使用“查找”功能搜索特定内容,但如果只需要搜索特定错误条件,则contain关键字非常有用。它允许使用正则表达式参数来过滤显示器的输出。
注意:不能仅使用containing关键字搜索特定呼叫或端口号。
vnt-nm-cue>show trace buffer long paged 2029 06/24 17:48:40.479 ACCN SIPL 0 receive 1096 from 172.18.106.66:49255 2030 06/24 17:48:40.480 ACCN SIPL 0 not found header for Date 2030 06/24 17:48:40.480 ACCN SIPL 0 not found header for Supported 2030 06/24 17:48:40.480 ACCN SIPL 0 not found header for Min-SE 2030 06/24 17:48:40.480 ACCN SIPL 0 not found header for Cisco-Guid 2030 06/24 17:48:40.480 ACCN SIPL 0 not found header for Remote-Party-ID 2030 06/24 17:48:40.480 ACCN SIPL 0 not found header for Timestamp 2030 06/24 17:48:40.480 ACCN SIPL 0 not found header for Call-Info 2030 06/24 17:48:40.480 ACCN SIPL 0 not found header for Allow-Events 2030 06/24 17:48:40.481 ACCN SIPL 0 ------- INVITE sip:18900@172.18.106.88:5060 SIP/2.0 Via: SIP/2.0/UDP 172.18.106.66:5060;branch=z9hG4bK1128 From: "Caller1" <sip:201@172.18.106.66>;tag=2FA6AE58-20E5 To: <sip:18900@172.18.106.88> Date: Thu, 24 Jun 2004 21:48:40 GMT Call-ID: 16EEB21C-C55F11D8-BF05DA50-D3EDBBC9@172.18.106.66 Supported: 100rel,timer Min-SE: 1800 Cisco-Guid: 384701940-3311342040-3204635216-3555572681 User-Agent: Cisco-SIPGateway/IOS-12.x Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, COMET, REFER, SUBSCRIBE, NOTIFY, INFO, UPDATE, REGISTER CSeq: 101 INVITE Max-Forwards: 6
发出clear trace命令以清除跟踪内存缓冲区。对于大多数故障排除情况,您可以设置要收集的跟踪,发出clear trace命令以清除缓冲区,重新创建要为其收集跟踪的操作,然后捕获show trace buffer long命令的输出。此方法是收集可重现问题的痕迹的最有效方法。
在NM和AIM(启用时)中,跟踪将写入atrace.log文件。show logs命令显示所有可用的日志文件:
vnt-nm-cue>show logs dmesg syslog.log atrace.log atrace.log.prev klog.log messages.log messages.log.prev root_javacore828.1087272313.txt tomcat_javacore1094.1087272313.txt workflow_javacore1096.1087272313.txt
重要文件为atrace.log和messages.log。messages.log文件包含所有系统消息(在AIM上,它仅包含致命和错误消息)。 特别是在AIM上,messages.log文件有时是唯一包含任何历史信息的日志文件。_javacore文件在系统重新启动时写入,通常不像其他文件(dmesg、syslog.log、klog.log)那么重要。 atrace.log.prev和messages.log.prev文件也很重要(如果存在)。 它们是atrace.log和messages.log的较旧版本。例如,atrace.log文件填满后,将其复制到atrace.log.prev,并启动新的atrace.log文件。将替换之前的atrace.log.prev,并丢失信息。
每个文件必须单独复制到FTP服务器。
由于atrace.log文件可能很大(NM上最多100 MB,AIM上最多10 MB),因此您通常希望将其复制到FTP服务器。为此,copy log命令。在本示例中,FTP用户名(jdoe)和密码(mypass)是URL的一部分:
vnt-nm-cue>copy log atrace.log url ftp://jdoe:mypass@172.18.106.10/cue/atrace.log % Total % Received % Xferd Average Speed Time Curr. Dload Upload Total Current Left Speed 100 1387k 0 0 100 1387k 0 4476k 0:00:00 0:00:00 0:00:00 6104k
注意:atrace.log文件不是纯文本文件。必须将其发送给思科技术支持以进行诊断。
也可以从Cisco Unity Express模块本身查看存储的日志文件。但是,不建议对atrace.log文件执行此操作,因为该文件未以纯文本格式正确转换。以下是使用messages.log文件的示例:
cue-3660-41a#show log name messages.log #!/bin/cat 19:46:08 logmgr: BEGIN FILE 19:46:08 logmgr: START <45>Feb 26 19:46:08 localhost syslog-ng[134]: syslog-ng version 1.6.0rc1 starting <197>Feb 26 19:46:08 localhost syslog_ng: INFO startup.sync syslog-ng arrived phase online <197>Feb 26 19:46:10 localhost err_handler: INFO Recovery Recovery startup :CUE Recovery Script started. <197>Feb 26 19:46:10 localhost err_handler: INFO Recovery Recovery LDAPVerify Verifying LDAP integrity ...
注意:当使用show log name命令显示日志文件时,按Control-C键组合以中断命令输出。请注意,执行此操作后,需要几秒钟才能返回提示符。
为存储在Cisco Unity Express上的atrace.log文件发出show trace store 命令(或show trace store-prev 命令,用于atrace.log.prev文件)。
vnt-nm-cue>show trace store ? <cr> containing Only display events matching a regex pattern long Show long format short Show short format tail Wait for events and print them as they occur | Pipe output to another command vnt-nm-cue>show trace store long paged 236 02/26 14:46:24.029 TRAC TIMZ 0 UTC UTC 0 236 02/26 14:46:24.031 TRAC TIMZ 0 UTC UTC 0 885 06/04 13:14:40.811 WFSP MISC 0 WFSysdbLimits::WFSysdbLimits hwModuleType=NM 885 06/04 13:14:40.812 WFSP MISC 0 WFSysdbProp::getProp 885 06/04 13:14:40.812 WFSP MISC 0 keyName = limitsDir str = /sw/apps/wf/ccnapps/limits 885 06/04 13:14:40.819 WFSP MISC 0 WFSysdbProp::getNodeXml 885 06/04 13:14:40.819 WFSP MISC 0 WFSysdbProp::getProp 885 06/04 13:14:40.820 WFSP MISC 0 keyName = limits str = 885 06/04 13:14:40.822 WFSP MISC 0 WFSysdbProp::getNodeXml(str, str) 885 06/04 13:14:40.822 WFSP MISC 0 WFSysdbProp::getProp 885 06/04 13:14:40.822 WFSP MISC 0 keyName = app str =
在内存中显示跟踪缓冲区时,长格式很重要。发出show trace store long命令。此信息来自atrace.log文件的最开头,该文件在NM上可大达100 MB,在AIM上可大10 MB。在这种情况下,如果需要搜索特定事件,containing关键字有时可能会很有用。
注意:如果AIM上的atrace.log文件已增大到最大大小,则它将停止将跟踪记录到日志文件。发出以下命令以重新启动跟踪记录:
VNT-AIM-CUE1>configure terminal Enter configuration commands, one per line. End with CNTL/Z. VNT-AIM-CUE1(config)>log trace local disable VNT-AIM-CUE1(config)>log trace local enable
注意:这些命令删除旧atrace.log文件并开始新文件。
跟踪大量数据(尤其是在AIM上)的最佳选择是将信息直接记录到FTP服务器。脱机跟踪对性能的影响也最小。这是从配置模式完成的。
注意:如果Cisco Unity Express系统是AIM,则需要此命令(默认情况下,网络模块记录信息级别及更高级别):
vnt-nm-cue(config)>log console info
注意:出于空间原因,此命令已降级到第二行。
vnt-nm-cue(config)>log trace server url ftp//172.18.106.10/path/ username jdoe password mypass
注意:如果您使用的是Cisco Unity Express 7.x版,则使用以前的命令作为日志跟踪服务器url "ftp//172.18.106.10/path/" username jdoe password mypass。
注意:当您将日志发送到FTP服务器时,还必须配置日志跟踪服务器enable。
vnt-nm-cue(config)>log trace server enable
注意:系统在FTP服务器上的指定路径中生成文件。它必须具有创建和修改指定目录中的文件的权限,该目录必须存在。解析器提取用户名和密码,这些用户名和密码在配置文件本身(show running-config)中显示。
注意:记录到FTP服务器的跟踪文件不是纯文本文件。必须将其发送给思科技术支持以进行诊断。
JTAPI跟踪与Cisco Unity Express中的任何其他跟踪工具分离。它们仅适用于Cisco CallManager环境。要查看当前已启用的JTAPI跟踪,请发出show ccn trace jtapi命令:
注意:默认情况下,所有JTAPI跟踪都禁用。
VNT-AIM-CUE1>show ccn trace jtapi Warning: 0 Informational: 0 Jtapi Debugging: 0 Jtapi Implementation: 0 CTI Debugging: 0 CTI Implementation: 0 Protocol Debugging: 0 Misc Debugging: 0
发出以下命令以启用所有跟踪:
VNT-AIM-CUE1>ccn trace jtapi debug all You will have to reload the system for your changes to take effect VNT-AIM-CUE1>ccn trace jtapi informational all You will have to reload the system for your changes to take effect VNT-AIM-CUE1>ccn trace jtapi warning all You will have to reload the system for your changes to take effect VNT-AIM-CUE1>show ccn trace jtapi Warning: 1 Informational: 1 Jtapi Debugging: 1 Jtapi Implementation: 1 CTI Debugging: 1 CTI Implementation: 1 Protocol Debugging: 1 Misc Debugging: 1
重新加载系统。发出与此处显示的ccn trace命令相同的命令,以在以后禁用此功能。但是,在每个命令前面都加上no关键字。例如,发出no ccn trace jtapi debug all命令。这是需要记住的重要步骤,特别是在AIM上。执行此步骤失败会影响潜在性能,并会缩短AIM上的闪存卡的寿命。
重新加载后,系统开始写入文件CiscoJtapi1.log和CiscoJtapi2.log(当第一个文件已满时)。
如果发出show log name CiscoJtapi1.log命令,则可以在Cisco Unity Express上查看这些日志。如果要将日志文件复制到FTP服务器,然后离线查看信息,请发出copy log CiscoJtapi1.log url ftp://user:passwd@ftpservipaddr/命令。
可以使用no trace module entity activity CLI命令关闭跟踪功能。如果有疑问,您可以发出“no trace all”命令来关闭所有设备。
您也可以保留跟踪设置本身,并在配置模式下使用no log trace local enable命令禁用对跟踪文件的写入。建议对AIM使用此功能,因为过多的写入会降低内部闪存卡的使用寿命。示例如下:
vnt-nm-cue>configure terminal Enter configuration commands, one per line. End with CNTL/Z. vnt-nm-cue(config)>no log trace local enable vnt-nm-cue(config)>
发出以下命令以禁用对FTP服务器的跟踪:
vnt-nm-cue>configure terminal Enter configuration commands, one per line. End with CNTL/Z. vnt-nm-cue(config)>log trace server disable vnt-nm-cue(config)>
排除特定问题时,通常只启用特定跟踪是有意义的。完成后,通常需要重新启用默认跟踪设置。为此,请使用no trace all命令禁用所有跟踪。接下来,将这些命令粘贴到Cisco Unity Express CLI(非配置模式)中,启用默认跟踪:
trace ccn engine dbug trace ccn libldap dbug trace ccn subsystemappl dbug trace ccn managerappl dbug trace ccn managerchannel dbug trace ccn subsystemjtapi dbug trace ccn subsystemsip dbug trace ccn stacksip dbug trace ccn subsystemhttp dbug trace ccn vbrowsercore dbug trace ccn subsystemcmt dbug trace ccn libmedia dbug trace ccn managercontact dbug trace ccn stepcall dbug trace ccn stepmedia dbug trace config-ccn sip-subsystem debug trace config-ccn jtapi-subsystem debug trace config-ccn sip-trigger debug trace config-ccn jtapi-trigger debug trace config-ccn http-trigger debug trace config-ccn group debug trace config-ccn application debug trace config-ccn script debug trace config-ccn prompt debug trace config-ccn miscellaneous debug trace voicemail database query trace voicemail database results trace voicemail database transaction trace voicemail database connection trace voicemail database execute trace voicemail mailbox login trace voicemail mailbox logout trace voicemail mailbox send trace voicemail mailbox save trace voicemail mailbox receive trace voicemail mailbox delete trace voicemail message create trace voicemail message dec trace voicemail message delete trace voicemail message get trace voicemail message inc trace webinterface initwizard init