4


系统管理工具

Content Delivery Server 提供了用于监视和管理系统的工具。本节介绍了以下工具:


4.1 诊断工具

Content Delivery Server 提供的诊断工具用于在出现问题时报告有关系统和环境的信息。使用此工具可以获得以下系统组件的诊断信息:

4.1.1 命令语法

诊断工具 cdsdiag 位于 $CDS_HOME/bin 目录中。请使用以下命令运行该工具:

cdsdiag [options] -component

下表介绍了有效选项。表 4-2 介绍了有效组件。


表 4-1 诊断工具命令选项

选项

描述

-f [file]

将生成的输出写入到的文件的名称。如果文件未在当前目录中,则包含其路径。如果 -all 指定为组件,则文件名是包含不同类型诊断报告的 TAR 归档的名称。如果未指定文件名,则将数据写入标准输出 (stdout)。

-d deployment

请求其诊断信息的部署的名称。如果未指定部署,则使用 init_env.sh 文件中为 DEFAULT_DEPL 属性指定的默认部署。

-w

指明输出文件将被覆盖的标志。如果未指定,则新数据将附加到文件的现有数据中。只有在同时使用 -f 选项时,该选项才有意义。

注 - 如果为组件指定 -all,则将忽略此选项。除非使用 -i 选项,否则 TAR 文件将始终重写上一个文件。

-i

指明将在输出文件的名称中添加附标的标志。每当使用相同的文件名运行诊断工具时,附标将以 1 为增量递增,同时创建一个新文件。例如,如果在三次执行诊断工具时,都将 diaginfo 指定为文件名,则在第三次执行之后,将拥有以下文件:

  • diaginfo.1.tar
  • diaginfo.2.tar
  • diaginfo.3.tar

只有在同时使用 -f 选项,并且组件为 all 时,该选项才有意义。


 

下表介绍了有效组件。


表 4-2 诊断工具组件值

描述

all

提供所有组件的所有信息。

appserv

提供有关应用服务器的信息。请参见 4.1.2.1 应用服务器诊断

conf

提供有关 Content Delivery Server 当前配置的信息。请参见 4.1.2.2 Content Delivery Server 配置

jdkstat

提供有关 Java 虚拟机的信息。请参见 4.1.2.3 Java 虚拟机诊断

oracle task

基于为 task 指定的值,提供有关数据库的信息。以下是 task 的有效值:

  • all - 提供数据库的所有信息。
  • config - 提供有关数据库配置的信息。
  • instance - 提供有关实例状态的信息。
  • memory - 提供有关内存使用量和高速缓存命中率的信息。
  • session - 提供有关数据库会话的信息。
  • storage - 提供有关存储的信息。
  • rowcount - 提供有关临界表中行数的信息。
  • help - 列出 task 的有效值。

请参见 4.1.2.4 数据库诊断

osstat

提供有关操作系统的信息。请参见 4.1.2.5 操作系统诊断


 

4.1.2 组件诊断

诊断工具提供的信息取决于在诊断工具命令中指定的组件。以下各节根据组件介绍信息。

使用以下命令可生成所有组件的所有信息:

cdsdiag [options] -all

表 4-1 中介绍了这些有效选项。



注 - 如果使用的是 WebLogic Server,则只有在未频繁使用 Content Delivery Server 时才对所有诊断运行此命令。否则,存在使系统关闭的风险。



4.1.2.1 应用服务器诊断

在使用诊断工具获取有关应用服务器的信息之前,Content Delivery Server 必须正在运行。请使用以下命令来生成诊断信息:

cdsdiag [options] -appserv

表 4-1 中介绍了这些有效选项。

将提供以下信息:

4.1.2.2 Content Delivery Server 配置

可以使用以下命令来生成有关 Content Delivery Server 配置的诊断信息:

cdsdiag [options] -conf

表 4-1 中介绍了这些有效选项。

将提供以下信息:

4.1.2.3 Java 虚拟机诊断

可以使用以下命令来生成 Java 虚拟机的诊断信息:

cdsdiag [options] -jdkstat

表 4-1 中介绍了这些有效选项。

将提供以下信息:

默认情况下,Java 虚拟机诊断将写入运行 Content Delivery Server 所在的命令窗口的标准输出中。请使用 -f 选项以将诊断写入到文件中。在启动 Content Delivery Server 时,可以使用日志过滤实用程序 cdslogfilter.pl 将诊断信息写入到执行诊断工具所在的窗口中,例如:

cdse starterserver | cdslogfilter.pl [options]

有关详细信息,请参见 4.1.3 日志过滤实用程序



注 - 如果使用的是 WebLogic Server,则只有在未频繁使用 Content Delivery Server 时才对 Java 虚拟机诊断运行此命令。否则,存在使系统关闭的风险。使用 WebLogic Server,可通过应用服务器诊断提供某些 Java 虚拟机信息。



4.1.2.4 数据库诊断

使用以下命令生成数据库的诊断信息:

cdsdiag [options] -oracle task

表 4-1 中介绍了这些有效选项。

所提供的有关数据库的信息基于为 task 指定的值。有效值为:

4.1.2.5 操作系统诊断

使用以下命令生成操作系统的诊断信息:

cdsdiag [options] -osstat

表 4-1 中介绍了这些有效选项。

将提供以下信息:

诊断工具使用以下系统实用程序来收集信息。如果其中一个实用程序不可用或未正确配置,则可能生成警告,但是不会提供相应的信息。



注 - 如果收到来自 lsof 实用程序的错误,请确保运行的是最新版本(可通过 http://people.freebsd.org/~abe/ 获得)。此外,如果由无权限的用户运行诊断工具,则必须为 lsof 实用程序设置 s 位。要设置 s 位,请使用命令 chmod u+s lsof



4.1.3 日志过滤实用程序

日志过滤实用程序捕获 Java 虚拟机线程转储的输出,并且在请求 Java 虚拟机诊断时由诊断工具调用。有关如何使用该实用程序的示例,请参见 4.1.2.3 Java 虚拟机诊断

该实用程序作为另一个进程输出的代理,不可作为独立的进程。如果要从 Java 虚拟机进程中过滤 Java 虚拟机线程转储,则使用此实用程序。该实用程序是使用 Perl 编写的脚本,需要 Perl 解释程序才能执行。

日志过滤实用程序 cdslogfilter.pl 位于 $CDS_HOME/bin 目录中。使用以下命令运行该实用程序:

cdslogfilter.pl [options]

下表介绍了有效选项。


表 4-3 日志过滤实用程序选项

选项

描述

-v

指明来自传入管道的所有数据均打印为标准输出 (stdout) 以及打印到文件的标志。

-f file

写入输出的文件的名称。默认值为 $CDS_HOME/.jvmdump

注 - 诊断工具要求使用默认文件名。如果将日志过滤实用程序与诊断工具一起使用,则不要使用此选项。

 

4.1.4 在 HP-UX 上运行诊断工具

HP-UX 平台上当前不支持用于获取操作系统相关信息的选项 -osstat

为使诊断工具的其他选项能够工作,请使用以下代码为 ps 命令创建包装器脚本。


$ cat > /ups.sh << _EOF_
#!/bin/sh
# translates BSD ps in HP-UX ps
[ -z "$1" ] && { ps ; exit $?; }
[ "$1" = "auxww" -o "$1" = "-auxww" ] && { ps -efx; exit $?; }
ps -xp $1
exit $?
_EOF_
$ chmod +x /ups.sh
 

可以使用以下步骤来更改诊断工具自身中的某些系统命令的默认位置:

1. 打开要编辑的 $CDS_HOME/bin/cdsdiag 文件。

2. 查找以 TAIL= 开头的行并将其替换为 TAIL=/usr/bin/tail

3. 查找以 AWK= 开头的行并将其替换为 AWK=/usr/bin/awk

4. 查找以 UPS= 开头的行并将其替换为 UPS=/ups.sh

如果将包装器脚本保存到不同位置,则指定该位置以替换 /ups.sh

5. 保存所做的更改。


4.2 许可证审计工具

Content Delivery Server 提供了许可证审计工具以生成有关系统使用率的报告。该工具旨在监视系统使用率,以确保使用率在许可协议的范围内。在每月和每个许可证周期结束时会自动运行该工具。您还可以手动运行该工具,以生成特定时段的报告。

审计数据是由与 Vending Manager 关联的事件服务生成的。每月数据本地存储在一个文件中。在许可证周期结束生成的数据或由手动执行生成的数据将通过电子邮件发送到指定的地址。

4.2.1 配置

为了确保许可证审计工具能够准确报告,请设置下表中所述的属性。这些属性位于 $CDS_HOME/deployment/deployment-name/conf 目录下的 License.properties 文件中。请为每个部署设置这些属性。


表 4-4 许可证审计工具的属性

属性

描述

license.disable

指明是否自动运行工具的标志。设置为 true 可禁用自动报告。

注 - 对于 Vending Manager 部署,请将此属性设置为 false。对于 Catalog Manager 部署,请将此属性设置为 true。另外,在运行多个事件服务实例以实现冗余目的时,还要对一个实例以外的所有实例禁用许可证工具。

license.model

在运行 Content Delivery Server 时依据的许可协议中指定的许可证模型。使用以下值中的一个:

  • 活动订户。许可证基于活动订户的数量。活动订户就是在为 license.period 指定的周期内,按照为 license.download_count 指定的下载次数下载内容的订户。
  • 事务性。许可证基于为 license.period 指定的周期内的下载次数。

注 - 这两种模型都计算启动的下载次数。对于退款、购买或价格模型允许无限次下载的内容不作调整。

license.download_count

在为 license.period 指定的周期内,视为活动订户的订户需要的下载次数。只有当 license.model 设置为 Active Subscribers 时,该属性才有意义。

license.period

许可证周期的天数。

注 - 无论指定的月包含多少天,都将一个月解释为 30 天。将 60 天解释为两个月,将 90 天解释为三个月,将 180 天解释为六个月,而将 365 天解释为一年。

license.start_date

许可证开始处于活动状态的日期。以 mm/dd/yyyy 格式输入日期。月或天不需要前导零。例如,6/7/2007 就是一个有效日期。

license.organization

与为其生成报告的 Vending Manager 关联的组织名称。该值包含在通过电子邮件发送的报告中。

license.smtp.address

在每个许可证周期结束时或手动运行该工具后发送报告的目标地址。有关设置要使用的邮件服务的信息,请参见《Sun Javatrademark System Content Delivery Server 5.1 集成和配置指南》中的第 10.1 节“配置邮件服务”。


 

4.2.2 执行

如果启用自动报告(license.disabled 属性设置为 false),则事件服务将在每月和许可证周期结束时触发许可证审计工具运行一次。也可以手动执行许可证审计工具。表 4-4 定义了在本节中引用的属性。

4.2.2.1 每月执行

初次启动事件服务时,将生成每月的审计条目,日期范围从为 license.start_date 属性指定的日期到当前日期。此后的每个月,都会在每月与 license.start_date 属性对应的那一天运行许可证审计工具。例如,如果起始日期设置为 6/7/2007,则将在每月 7 号运行许可证审计工具。

月报告包含自许可证起始日期开始每月的条目。每个条目包含该月的活动订户数或事务数,具体情况取决于许可证模型。条目将写入 $CDS_HOME/deployment/deployment-name/logs 目录下的 License.txt 文件中。如果找不到该文件,则此工具将重新创建文件,并重新生成过去所有月份的数据。

4.2.2.2 周期结束执行

license.period 属性中指定报告周期的长度。从许可证起始日期开始,事件服务将在每个周期结束时触发许可证审计工具。生成的报告包含该周期的活动订户数或事务数,具体情况取决于许可证模型。该信息将发送到为 license.smtp.address 属性指定的电子邮件地址。

4.2.2.3 手动执行

您可以使用以下命令随时生成手动报告:

cdsi license [-deployment deployment-name] [-date date]

下表介绍了可选参数。


表 4-5 许可证审计工具命令参数

参数

描述

deployment-name

为其运行工具的部署的名称。如果未指定名称,则使用 init_env.sh 文件中 DEFAULT_DEPL 变量的值。

date

运行报告的日期,格式为 mm/yyyy。返回的信息针对包含指定日期的周期。例如,如果从 1/1/2007 开始,周期为 90 天,输入的日期为 8/2007,则返回介于 7/1/2007 和 9/30/2007 之间的周期的信息。如果未指定日期,则使用当前日期。


 

执行该命令时,Content Delivery Server 必须正在运行。将从指定部署中的事件服务获取许可证报告。

生成的报告包含该周期(含有指定日期)的活动订户数或事务数。报告的数据类型取决于许可证模型。该信息将发送到为 license.smtp.address 属性指定的电子邮件地址。