7.4. 监视和日志记录

本节介绍了 SGD 数据存储、如何监视用户活动以及如何配置日志记录。

本节包括以下主题:

7.4.1. SGD 数据存储

阵列中的 SGD 服务器会共享信息。每台 SGD 服务器了解以下信息:

  • 配置了哪些应用程序以及运行它们的应用服务器

  • 哪些用户对应用程序具有访问权限

  • 哪个用户登录到了 SGD

  • 用户正在运行哪些应用程序

信息的集合称为数据存储

有关用户、应用程序、应用服务器和 Webtop 的信息存储在磁盘上的本地系统信息库中。有关用户和应用程序会话的信息存储在内存中。

数据存储被组织到在命令行和日志文件上显示和使用的名称空间中。一般结构为 .../namespace/name-within-namespace... 表示数据存储的根目录。名称空间表示信息来源,如 DNS。在名称空间之后,使用适用于名称空间的命名模式写入了名称。名称是以类似于文件系统路径的格式写入的(以斜杠分隔且自上而下)。

下面是一些常用的名称空间。

名称空间

描述

示例

"Local"(本地)

本地系统信息库中的 SGD 对象

.../_ens/o=示例/ou=Marketing/cn=Cust-o-Dat

LDAP

LDAP 目录中的对象

.../_service/sco/tta/ldapcache/cn=Cust-o-Dat,ou=Marketing,o=示例

DNS

网络中的计算机

.../_dns/verona.example.com

7.4.2. 用户会话和应用程序会话

本节介绍了在 SGD 中用户会话与应用程序会话之间的区别。此外,还介绍了如何使用管理控制台和命令行来监视和控制用户会话和应用程序会话。

本节包括以下主题:

7.4.2.1. 用户会话

用户会话在用户登录到 SGD 时开始,在用户从 SGD 注销时结束。用户会话可由用户登录到的 SGD 服务器来托管。用户键入的用户名和密码决定了用户所属的用户类型。有关用户验证的更多详细信息,请参见第 2 章 用户验证

如果用户在已有一个用户会话的情况下登录,则该用户会话将被传送到新的 SGD 服务器,并且旧会话结束。这有时称为会话转移会话抓取

用户会话可以是标准会话或安全会话。只有启用 SGD 安全服务后,安全会话才可用。有关更多详细信息,请参见第 1.5 节 “与 SGD 服务器的安全连接”

在管理控制台中,您可以按以下方式列出用户会话:

  • "Navigation View"(导航视图)中的 "Sessions"(会话)选项卡显示阵列中的所有 SGD 服务器上正在运行的用户会话

  • SGD 服务器的 "User Sessions"(用户会话)选项卡显示了由该 SGD 服务器托管的所有用户会话

  • 用户配置文件的 "User Sessions"(用户会话)选项卡显示与该用户配置文件关联的所有用户会话

通过 "Sessions"(会话)选项卡和 "User Sessions"(用户会话)选项卡,您可以选择并结束用户会话。通过 "User Sessions"(用户会话)选项卡,您可以查看有关用户会话的更多详细信息。例如,SGD 客户端检测到的有关客户端设备的信息。

在命令行中,使用 tarantella webtopsession 命令可以列出和结束用户会话。

7.4.2.1.1. 闲置用户会话超时

您可以配置非活动用户会话的闲置超时期限。当 SGD 客户端与 SGD 服务器之间的 AIP 连接上未发生活动的时间已过指定期限时,用户会话将自动结束。默认情况下,SGD 阵列的超时被禁用。

以下设备上的活动对闲置超时期限没有影响:

  • 串行端口

  • 智能卡

  • 音频

要指定闲置超时属性,请转到管理控制台的 "Global Settings"(全局设置)→ "Communication"(通信)选项卡,并在 "User Session Idle Timeout"(用户会话闲置超时)字段中键入一个值。

或者,也可以使用以下命令:

$ tarantella config edit --webtop-session-idle-timeout secs

secs 替换为超时值(以秒为单位)。设置为 0 将关闭用户会话闲置超时功能。这是默认设置。

小心

请勿配置小于 300 秒(五分钟)的闲置超时。

必须重新启动阵列中的每台 SGD 服务器,对此属性的更改才能生效。

7.4.2.2. 应用程序会话

应用程序会话在用户启动应用程序时开始,在应用程序退出时结束。每个应用程序会话都与一个当前正通过 SGD 运行的应用程序相对应。

应用程序会话可以由阵列中的任意 SGD 服务器来托管。它可能不是用户登录到的 SGD 服务器,请参见第 7.1 节 “阵列”

每个应用程序会话都具有一个相应的协议引擎进程。协议引擎用于处理客户端设备和应用服务器之间的通信。协议引擎还将应用程序使用的显示协议转换为 AIP 协议,在客户端设备上运行的 SGD 客户端可以理解该协议。

您可以使用应用程序会话负载平衡在阵列中的各台 SGD 服务器之间分配协议引擎的负载。有关更多详细信息,请参见第 7.2.2 节 “应用程序会话负载平衡”

某些应用程序可以配置为一直运行,即使它们未显示也是如此。这些应用程序称为可恢复的应用程序。

可恢复的应用程序非常有用,原因如下:

  • 可以使需要很长时间才能启动的应用程序一直保持运行,即使在用户从 SGD 注销后也是如此

  • 移动用户可以在旅行时让应用程序保持运行

  • 用户可以很容易地从浏览器或其他崩溃中恢复

每个应用程序对象都具有一个决定了应用程序的可恢复性行为的 "Application Resumability"(应用程序可恢复性)属性。应用程序可以具有以下 "Application Resumability"(应用程序可恢复性)设置之一。

设置

描述

Never(从不)

当用户从 SGD 注销时,应用程序也将退出。您无法暂停或恢复不可恢复的应用程序。

During the User Session(用户会话期间)

应用程序将保持运行,直到用户从 SGD 注销为止。在已登录的情况下,用户可以暂停和恢复这些应用程序。

General(常规)

应用程序将保持运行,即使用户从 SGD 注销后也是如此。当用户再次登录时,单击 "Resume"(恢复)按钮即可再次显示正在运行的应用程序。

如果应用程序是可恢复的,则它在某个超时指定的一段时间内是可恢复的。如果 SGD 客户端意外退出,或者与 SGD 服务器之间的连接断开,则超时期限是所配置的超时值加 20 分钟。

20 分钟的连接超时使得 SGD 服务器能够重新建立与 SGD 客户端的连接。在此时间段后,用户会话将结束。要更改连接超时值,请使用以下命令:

# tarantella config edit --tarantella-config-array-restartconnectiontimeout mins

其中 mins 是连接超时期限(以分钟为单位)。

表 7.1 “应用程序可恢复性情况”介绍了某些典型情况的应用程序可恢复性行为。

表 7.1. 应用程序可恢复性情况

情况

描述

用户从 SGD 注销

用户会话立即结束。

然后,应用程序会话行为取决于应用程序对象的 "Application Resumability"(应用程序可恢复性)设置,如下所述:

  • Never(从不):应用程序会话立即结束。

  • During the User Session(用户会话期间):应用程序会话立即结束。

  • Always(始终):应用程序会话在由应用程序对象的 "Application Resumability: Timeout"(应用程序可恢复性:超时)属性指定的时间段后结束。

    如果用户在该时间段结束之前再次登录,则应用程序会话将恢复。

与 SGD 服务器之间的连接断开

SGD 检测到 SGD 客户端与 SGD 服务器之间的连接断开,并且 20 分钟的超时期限开始计时。

如果连接在 20 分钟内恢复,则应用程序会话也可以恢复。

超过 20 分钟后,用户会话将结束。然后,应用程序会话行为取决于应用程序对象的 "Application Resumability"(应用程序可恢复性)设置,如下所述:

  • Never(从不):应用程序会话立即结束。

  • During the User Session(用户会话期间):应用程序会话在由应用程序对象的 "Application Resumability: Timeout"(应用程序可恢复性:超时)属性指定的时间段后结束。

    如果用户在该时间段结束之前再次登录,则应用程序会话可以恢复。

  • Always(始终):应用程序会话在由应用程序对象的 "Application Resumability: Timeout"(应用程序可恢复性:超时)属性指定的时间段后结束。

    如果用户在该时间段结束之前再次登录,则应用程序会话可以恢复。

SGD 客户端意外退出

SGD 检测到 SGD 客户端意外退出,并且 20 分钟的超时期限开始计时。

如果应用程序的 "Application Resumability"(应用程序可恢复性)设置为 "Never"(从不),则应用程序会话将立即结束。否则,应用程序会话在 20 分钟超时期限内可以恢复。

超过 20 分钟后,用户会话将结束。然后,应用程序会话行为取决于应用程序对象的 "Application Resumability"(应用程序可恢复性)设置,如下所述:

  • During the User Session(用户会话期间):应用程序会话在由应用程序对象的 "Application Resumability: Timeout"(应用程序可恢复性:超时)属性指定的时间段后结束。

    如果用户在该时间段结束之前再次登录,则应用程序会话将恢复。

  • Always(始终):应用程序会话在由应用程序对象的 "Application Resumability: Timeout"(应用程序可恢复性:超时)属性指定的时间段后结束。

    如果用户在该时间段结束之前再次登录,则应用程序会话将恢复。


在管理控制台中,可以按以下方式列出应用程序会话:

  • SGD 服务器的 "Application Sessions"(应用程序会话)选项卡显示由该服务器托管的所有应用程序会话

  • 用户配置文件的 "Application Sessions"(应用程序会话)选项卡显示与该用户配置文件关联的所有应用程序会话

  • 应用服务器的 "Application Sessions"(应用程序会话)选项卡显示该应用服务器上正在运行的所有应用程序

通过 "Applications Sessions"(应用程序会话)选项卡,您可以查看有关每个应用程序会话的详细信息。您还可以结束和投影应用程序会话。通过对会话进行投影,您和用户将可同时看到应用程序并与其交互。

有关对应用程序会话进行投影的更多详细信息,请参见第 4.9.9 节 “使用投影对用户问题进行故障排除”

注意

只能投影 Windows 应用程序和 X 应用程序。不得暂停应用程序会话。

在命令行中,可使用 tarantella emulatorsession 命令列出和结束用户会话。

7.4.2.3. 匿名用户和共享用户

存在两种特殊情况,如下所述:

为了能够对这些用户进行区分,SGD 在共享用户和匿名用户登录时会为其分配临时用户身份。这会产生以下影响:

  • 如果用户多次登录到 SGD,用户会话不会转移

  • 应用程序会话在用户会话结束时会立即结束,无论应用程序的 "Application Resumability"(应用程序可恢复性)设置如何

  • 如果用户未注销,则会占用服务器资源

7.4.3. 使用日志过滤器对 SGD 服务器问题进行故障排除

当您首次安装 SGD 时,默认的日志过滤器会记录 SGD 服务器上的所有错误。若要获取更多详细信息(例如用来解决某个问题),您可以设置额外的日志过滤器。

可以通过以下方式设置额外的日志过滤器:

  • 在 "Log Filter"(日志过滤器)字段中键入过滤器,该字段位于管理控制台中的 "Global Settings"(全局设置)→ "Monitoring"(监视)选项卡上。必须通过按回车键来分隔每个过滤器。

  • 使用以下命令:

    $ tarantella config edit --array-logfilter filter...
    

    请使用空格分隔多个 filter 项,并使用双引号 (" ") 将其括起。

每个日志过滤器都具有以下格式:

component/subcomponent/severity:destination

以下各节介绍了过滤器每部分的选项以及您如何查看日志输出。

注意

日志过滤器可能会创建大量数据。好的做法是设置尽可能具体的过滤器,并且在完成使用后将其删除。

7.4.3.1. 选择组件和子组件

通过选择组件和子组件,您可以选择要从 SGD 服务器登录的信息区域。

下表显示了可用的组件/子组件组合以及对生成的信息种类的解释。

组件和子组件

提供的信息

audit/glue

对 SGD 服务器配置或您的本地系统信息库配置所做更改以及更改者的审计。

例如,可以使用此组合查明谁对某个用户配置文件对象进行了更改。

audit/session

启动和停止用户会话和应用程序会话。

例如,可以使用此组合查明用户拥有某个正在运行的应用程序会话的时长。

cdm/audit

用于客户端驱动器映射 (client drive mapping, CDM) 目的的 SGD 用户的授权。

例如,可以使用此组合查明某个用户的凭证是否导致 CDM 失败。

cdm/server

有关 CDM 服务的信息。

例如,可以使用此组合查明某个客户端连接错误是否导致 CDM 失败。

common/config

SGD 服务器配置在阵列中的存储和复制方式。

例如,可以使用此组合查明某个全局设置配置更改没有应用于 SGD 服务器的原因。

metrics/glue

内存和计时。

例如,可以使用此组合查明运行某个 SGD 命令所花费的时间。

metrics/soap

Tomcat 的 SOAP 代理的 SOAP 组件。

例如,可以使用此组合跟踪完成某个 SOAP 请求所花费的时间。

server/billing

SGD 记帐服务。

例如,可以使用此组合查明记帐数据丢失的原因。

server/common

常规 SGD 信息。

例如,可以使用此组合对 DNS 错误进行故障排除。

server/config

对 SGD 服务器配置的更改。

例如,可以使用此组合来记录对 SGD 服务器配置的更改或查明配置是否已损坏。

server/csh

SGD 客户端会话处理程序。

例如,可以使用此组合查明用户无法重新启动某个应用程序会话的原因。

server/deviceservice

用户到可访问的设备数据的映射。

例如,可以使用此组合查明用户无法访问客户端驱动器的原因。

server/directoryservices

与 Active Directory 或 LDAP 的连接。

例如,可以使用此组合查明 Active Directory 或 LDAP 用户无法登录的原因。

server/diskds

有关本地系统信息库的信息。

例如,可以使用此组合获取有关本地系统信息库中的损坏对象或不一致项的信息。

server/failover

有关阵列故障转移的信息。

例如,可以使用此组合对其中主服务器不可用的 SGD 阵列的问题进行故障排除。

server/glue

用于 SGD 服务器间通信的协议。

例如,可以使用此组合查明 SGD 服务器无法通信的原因。

server/install

安装和升级。

例如,可以使用此组合调查安装出现的问题。

server/kerberos

Windows Kerberos 验证。

例如,可以使用此组合查明 Active Directory 用户无法登录的原因。

server/launch

启动或恢复应用程序。

例如,可以使用此组合查明用户无法启动某个应用程序的原因。

server/loadbalancing

用户会话和应用程序负载平衡。

例如,可以使用此组合查明没有选择某台 SGD 服务器来托管应用程序会话的原因。

server/logging

日志记录。

例如,可以使用此组合查明日志消息未写入文件的原因。

server/login

登录到 SGD。

例如,可以使用此组合查明采用哪种验证机制对用户进行了验证以及所使用的用户配置文件。

server/mupp

SGD MUltiplePlexing Protocol (MUPP) 协议。

仅当支持人员要求您使用时才使用此过滤器。

server/printing

SGD 打印服务。

例如,可以使用此组合查明打印作业失败的原因。

server/replication

在阵列中的 SGD 服务器之间复制数据。

例如,可以使用此组合查明没有在阵列成员之间复制数据的原因。

server/securid

与 SecurID RSA 验证管理器的连接。

例如,可以使用此组合查明 SecurID 验证没有工作的原因。

server/security

基于 SSL 的安全连接。

例如,可以使用此组合查明 SSL 守护进程没有运行的原因。

server/server

SGD 服务器组件。

例如,可以使用此组合对 SGD 服务器故障(例如未在其他位置记录的 Java™ 技术运行时异常)进行故障排除。

server/services

内部 SGD 服务器服务。

例如,可以使用此组合查明某个服务失败的原因。

server/session

用户会话。

例如,可以使用此组合查明某个会话未能暂停的原因。

server/soap

SOAP bean 接口。

例如,可以使用此组合诊断 SOAP bean 出现的问题。

server/soapcommands

SOAP 请求。

例如,可以使用此组合记录收到的 SOAP 请求。

server/tier3loadbalancing

应用服务器负载平衡。

例如,可以使用此组合查明没有选择某台应用服务器来运行应用程序的原因。

server/tscal

用于非 Windows 客户端的 Windows 远程桌面服务客户端访问许可证 (Client Access License, CAL)。

例如,可以使用此组合查明非 Windows 客户端没有 CAL 的原因。

server/webtop

Webtop 内容,如果您正在使用目录服务集成。

例如,可以使用此组合查明应用程序没有出现在用户的 Webtop 上的原因。

7.4.3.2. 选择严重性

可以为每个日志过滤器选择以下严重性级别之一。

严重性

描述

fatalerror

记录有关致命错误的信息。致命错误会导致 SGD 服务器停止运行。首次安装 SGD 时,默认情况下会记录所有致命错误。

error

记录所发生的任何错误的信息。首次安装 SGD 时,默认情况下会记录所有错误。

warningerror

记录所发生的任何警告的信息,例如,如果系统资源运行缓慢。首次安装 SGD 时,默认情况下会记录所有警告。

info

信息性日志记录。对解决问题和识别错误很有用处。

moreinfo

详细信息性日志记录。

auditinfo

记录用于审计目的的选定事件,例如对 SGD 服务器配置的更改。有关详细信息,请参见第 7.4.4 节 “将日志过滤器用于审计”

fatalerror 严重性级别生成的信息量最少。moreinfo 严重性级别生成的信息量最多。

选择严重性级别不会累积。例如,选择 info 不代表您也可以看到 warningerrorfatalerror 日志消息。

要记录多个严重性级别,请使用通配符。

7.4.3.2.1. 使用通配符

可以使用通配符 (*) 来匹配多个组件、子组件和严重性。

例如,要记录针对打印功能的所有警告、错误和致命错误消息,可以使用 server/printing/*error 日志过滤器。

注意

如果在命令行上使用通配符,必须将过滤器括在直引号中以阻止您的 shell 扩展它们。

7.4.3.3. 选择目的地

选择日志的目的地时,可以指定使输出前往以下目的地之一:

  • 日志文件

  • 日志处理程序

以下各节介绍了这些目的地。

7.4.3.3.1. 使用日志文件

如果您将输出定向到某个日志文件,则可以输出到以下类型的文件:

  • filename.log

    SGD 会对此日志输出进行格式设置以使其便于读取。

    该格式是 tarantella query errlog 命令必需的。此命令只搜索名称以 error.log 结尾的日志文件。

  • filename.jsl

    SGD 会对此日志输出进行格式设置,以用于自动解析和搜索。

    该格式是 tarantella query audit 命令必需的。

目的地文件的文件扩展名控制着文件的格式。

通过在文件名中包括 %%PID%% 占位符,您还可以为每个进程 ID 创建一个单独的日志文件。

日志文件被输出到 /opt/tarantella/var/log 目录中。您无法更改日志文件的位置,但是可以使用符号链接将日志重定向到一个不同的位置。另外,您可以使用第 7.4.3.3.2 节 “使用日志处理程序”中所述的 syslog 日志处理程序。

7.4.3.3.2. 使用日志处理程序

日志处理程序是用作日志消息目的地的 JavaBeans 组件。指定日志处理程序时,必须使用全名。SGD 提供了以下日志处理程序:

  • ConsoleSink。ConsoleSink 日志处理程序以易于读取的格式将日志消息写入到标准错误。该日志处理程序默认情况下处于启用状态,并记录所有致命错误。

    该日志处理程序的全名为:

    .../_beans/com.sco.tta.server.log.ConsoleSink
  • SyslogSink。SyslogSink 日志处理程序将日志消息写入到 UNIX 或 Linux 平台 syslog 设备。

    该日志处理程序的全名为:

    .../_beans/com.sco.tta.server.log.SyslogSink

7.4.3.4. 使用日志过滤器的示例

以下是常用日志过滤器的一些示例:

  • 调试用户登录:

    server/login/*:login%%PID%%.log
    server/login/*:login%%PID%%.jsl
  • 对 CDM 进行故障排除:

    cdm/*/*:cdm%%PID%%.log
    cdm/*/*:cdm%%PID%%.jsl
    server/deviceservice/*:cdm%%PID%%.log
    server/deviceservice/*:cdm%%PID%%.jsl
  • 对打印问题进行故障排除:

    server/printing/*:print%%PID%%.log
    server/printing/*:print%%PID%%.jsl
  • 获取针对服务器性能的计时度量值:

    metrics/*/*info:metrics.log
    metrics/*/*info:metrics.jsl
  • 将所有警告、错误和致命错误发送到 syslog:

    */*/*error:.../_beans/com.sco.tta.server.log.SyslogSink

7.4.3.5. 查看日志输出

要查看日志输出,可以执行以下操作之一:

  • 在某个查看器或文本编辑器中打开 .log 文件

  • 使用 tarantella query 命令。

如果使用 tarantella query 命令,请使用以下命令选项:

  • tarantella query errlog-仅查看特定 SGD 服务器组件的错误和致命错误

  • tarantella query audit-搜索日志以查找与个人、应用程序或应用服务器相关的任何消息

注意

只有对日志进行了归档时,您才能使用这些命令查看日志输出。您在安装 SGD 时配置归档,但是可以在任何时候通过运行 tarantella setup 命令更改设置。

7.4.4. 将日志过滤器用于审计

SGD 允许您设置日志过滤器,以提供以下系统事件的审计:

  • 启动和停止 SGD 服务器

  • 启动和停止 SGD 安全服务

  • 对本地系统信息库中的对象配置的更改

  • 对全局和 SGD 服务器配置的更改

  • 到 SGD 服务器的不成功登录尝试

  • 登录 SGD 以及从中注销

  • 启动和停止应用程序会话

要审计这些事件,必须设置 */*/*auditinfo 日志过滤器。

可以使用任何标准目的地作为输出目的地,但是如果希望从命令行查看审计信息,则必须将输出定向到 .jsl 文件。

有关设置日志过滤器的更多信息,请参见第 7.4.3 节 “使用日志过滤器对 SGD 服务器问题进行故障排除”

注意

仅当 SGD 服务器在实际运行时才会创建日志输出。如果 SGD 服务器已停止,则只有 UNIX 系统 root 用户才能执行任何可审计事件。

对于每个事件,日志过滤器会记录以下信息:

  • 事件的日期和时间

  • 事件的类型

  • 事件的结果,成功还是失败

  • 对事件负责的用户的身份

  • 有关事件的任何其他相关信息,例如更改了什么以及更改为何值

7.4.4.1. 查看审计日志信息

可以使用任何标准方法查看日志输出。不过,以下命令最有用:

# tarantella query audit --format text|csv|xml --filter "filter"

如果选择 text 格式,则 SGD 会对日志输出进行格式设置以便于在屏幕上阅读,但是不会显示所记录的每个详细信息。使用 csv 格式将显示所记录的每个详细信息,但是仅适合输出到文件中。

"filter" 是一个符合 RFC2254 标准的 LDAP 搜索过滤器。此命令在日志文件中的日志字段中搜索要显示的匹配项。下表中显示了对审计目的最有用的日志字段。

日志字段

描述

log-category

对于审计目的,log-category 始终为 *auditinfo,但它可以是任何标准日志过滤器组件/子组件/严重性设置。

log-date

事件发生时的系统日期和时间。

格式为 yyyy/MM/dd HH:mm:ss.SSS

log-event

事件的名称。

log-ip-address

与事件相关的客户端或服务器的 IP 地址。

log-keyword

可审计事件的的关键字标识符。

log-localhost

发生事件的 SGD 服务器的对等 DNS 名称。

log-pid

事件的进程 ID。

log-security-type

连接所用的安全性类型,即 stdssl

log-systime

事件发生时系统的协调世界时 (Coordinated Universal Time, UTC) 时间,精确到毫秒。

log-tfn-name

与事件相关联的对象的全名。

例如,启动一个应用程序会话可能会记录用户、应用程序和应用服务器的名称。

注意

/opt/tarantella/var/serverresources/schema/log.at.conf 架构文件中提供了所有日志字段的完整列表。

下表显示了所有日志关键字、相应的日志事件以及对对事件的描述。

日志关键字

日志事件

描述

createFailure

createFailure

用户尝试在本地系统信息库中创建对象,但是失败了。

createSuccess

createSuccess

用户在本地系统信息库中创建了一个对象。

deleteFailure

deleteFailure

用户尝试删除本地系统信息库中的某个对象,但是失败了。

deleteSuccess

deleteSuccess

用户删除了本地系统信息库中的一个对象。

loginFailure

loginResultReconnect

SGD 服务器请求客户端在一个不同的端口上重新连接。

loginFailure

loginResultFailed

用户未通过任何已启用的验证机制的验证。

loginFailure

loginResultRejected

用户的登录被一个登录过滤器拒绝。例如,这可能是因为当前没有为该特定服务器启用登录,或当前不允许该用户登录。

loginFailure

loginResultDisabled

SGD 服务器当前未在接受连接。

loginFailure

loginResultNoAmbig

某个不明确的登录失败,因为 SGD 服务器不支持不明确的登录。

loginFailure

loginResultAmbiguous

某个不明确的登录失败,因为用户提供了足够的消岐信息。

loginFailure

loginResultAnonymous

某个匿名登录失败,因为 SGD 服务器不支持匿名登录。

loginFailure

loginResultNoSecurity

登录失败,因为用户需要安全的连接,但是此连接是在标准端口上建立的。

loginFailure

loginResultUnresolveable

登录失败,因为 SGD 服务器无法判定哪个用户已登录。

loginFailure

loginResultUnknown

登录失败,因为 SGD 服务器无法处理某个意外的登录结果。

loginSuccess

webtopSessionStartedDetails

为用户启动了一个用户会话。

logout

webtopSessionEndedDetails

为用户停止了一个用户会话。

modifyFailure

modifyFailure

用户尝试更改本地系统信息库中的对象、更改全局设置或更改 SGD 服务器的配置,但是失败了。

modifySuccess

modifySuccess

用户更改了本地系统信息库中的对象、更改了全局设置或更改了 SGD 服务器的配置。

renameFailure

renameFailure

用户尝试重命名本地系统信息库中的对象,但是失败了。

renameSuccess

renameSuccess

用户重命名了本地系统信息库中的一个对象。

serverStart

serverStart

SGD 服务器已启动。

serverStop

serverStop

SGD 服务器已停止。

sessionEnded

sessionEndedDetails

为用户停止了一个应用程序会话。

sessionStarted

sessionStartedDetails

为用户启动了应用程序会话。

sslStart

securitySSLStart

启动了 SGD 安全 (SSL) 服务。

sslStop

securitySSLStop

停止了 SGD 安全 (SSL) 服务。

7.4.4.2. 将日志过滤器用于审计的示例

要搜索失败的登录尝试,请使用以下过滤器:

--filter "(&(log-category=*auditinfo)(log-keyword=loginFailure))"

要搜索管理员 Bill Orange 对 SGD 服务器配置所做的更改,请使用以下过滤器:

 --filter "(&(log-category=*auditinfo)(log-keyword=modifySuccess)
 (log-tfn-name=.../ens/o=示例/ou=IT/cn=Bill Orange))"

7.4.5. 使用日志过滤器对协议引擎出现的问题进行故障排除

首次安装 SGD 时,默认的日志过滤器会记录协议引擎 (protocol engine, PE) 的所有错误。要获取有关 PE 活动的更多信息,可以设置额外的 PE 日志过滤器。

可以为各个 PE 以及协议引擎管理器(PE 管理器)进程设置 PE 日志过滤器。可以通过设置下表中显示的属性之一来配置 PE 日志过滤器。

PE 过滤器属性

协议引擎

--tarantella-config-auxserver-logfilter

PE 管理器

--tarantella-config-execpeconfig-logfilter

执行协议引擎

--tarantella-config-xpeconfig-logfilter

X 协议引擎

--tarantella-config-tpeconfig-logfilter

字符协议引擎

--tarantella-config-ppeconfig-logfilter

打印协议引擎

--tarantella-config-cpeconfig-logfilter

通道协议引擎

只能从命令行设置 PE 日志过滤器。使用以下命令:

$ tarantella config edit --PE-filter-attribute filter...

其中 PE-filter-attribute 定义要配置的 PE 过滤器属性,filter 定义日志过滤器。对于多个日志过滤器定义,请使用直引号分隔每个 filter 参数。

每个日志过滤器都具有以下格式:

component/subcomponent/severity

下表显示了 PE 日志记录的可用组件名称。

协议引擎

组件

PE 管理器

pem

proxy

执行协议引擎

execpe

launchhelper

X 协议引擎

xpe

pem

字符协议引擎

tpe

pem

打印协议引擎

ppe

pem

通道协议引擎

cpe

pem

对于子组件,请键入 * 以包括所有子组件的信息。

您可以选择以下严重性级别:

  • *-包括所有错误和警告消息。

  • *info-包括 infomoreinfoauditinfo 消息。

  • *error-包括 errorfatalerrorwarningerror 消息。这是默认严重性。

当新的 PE 启动时,对执行、X、字符、打印和通道 PE 日志过滤器所做的更改生效。

对 PE 管理器日志过滤器所做的更改要求重新启动 SGD 服务器。

注意

日志过滤器可能会创建大量数据。好的做法是设置尽可能具体的过滤器,并且在完成使用后将其删除。有关如何执行此操作的详细信息,请参见第 7.4.5.4 节 “重置 PE 日志过滤器”

7.4.5.1. 使用 PE 日志过滤器的示例

下面是有关如何使用 PE 日志过滤器的一些示例。

  • 为 X 和 Windows 应用程序对 CDM 进行故障排除:

    --tarantella-config-xpeconfig-logfilter "xpe/cdm/*"
  • 对 X 和 Windows 应用程序出现的问题进行故障排除:

    --tarantella-config-xpeconfig-logfilter "xpe/*/*" "pem/*/*"
  • 要排除应用程序启动故障,必须首先在 SGD 登录脚本中启用调试,如第 4.9.1 节 “应用程序未启动”中所示。然后配置执行协议引擎日志过滤器,如下所示:

    --tarantella-config-execpeconfig-logfilter "execpe/*/*"
注意

对于 execpexpetpeppecpe 日志过滤器,使用 pem/* 过滤器会显示协议引擎的相关 PE 管理器消息。

7.4.5.2. PE 日志文件目的地

PE 日志文件具有文件名扩展名 .log。SGD 会对此类型的日志输出进行格式设置,以便易于阅读。

PE 日志文件名包括 PE 组件名和进程 ID。例如,以进程 ID 4512 运行的 PE 管理器的消息存储在名为 pemanager4512.log 的文件中。

严重性为 errorfatalerrorwarningerror 的错误消息存储在名称以 error.log 结尾的一个 PE 日志文件中。例如,以进程 ID 2256 运行的字符协议引擎的消息存储在名为 cpe2256_error.log 的文件中。此类文件由 tarantella query errlog 命令使用,该命令只搜索名称以 error.log 结尾的日志文件。

PE 日志过滤器输出会被自动定向到 SGD 主机上 /opt/tarantella/var/log 目录中的日志文件中。您无法更改日志文件的位置,但是可以使用符号链接将日志重定向到一个不同的位置。

7.4.5.3. 查看 PE 日志输出

要查看 PE 日志,请执行以下操作之一:

  • 在某个查看器或文本编辑器中打开 .log 文件。

    在阵列中的每台 SGD 服务器上,.log 文件包含了在该特定 SGD 服务器上运行的 PE 的消息。

  • 可使用 tarantella query errorlog 命令显示 PE 的错误消息。

    可以使用此命令搜索阵列中的所有 PE 错误日志。

    例如,要为阵列中的所有 SGD 服务器显示 X 协议引擎错误消息,请使用以下命令:

    $ tarantella query errlog xpe

    例如,要为 SGD 服务器 boston.example.com 显示 X 协议引擎错误消息,请使用以下命令:

    $ tarantella query errlog xpe --server boston.example.com
注意

只有对日志进行了归档时,您才能使用这些命令查看日志输出。您在安装 SGD 时配置归档,但是可以在任何时候通过运行 tarantella setup 命令更改设置。

7.4.5.4. 重置 PE 日志过滤器

因为日志过滤器可能会创建大量数据,因此好的做法是在使用完后将过滤器重置为其默认配置。

默认的 PE 日志过滤器配置为 PE 组件的所有子组件设置了严重性级别 *error。下表显示了每个日志过滤器的默认配置。

协议引擎

默认的日志过滤器配置

PE 管理器

pem/*/*error

proxy/*/*error

执行协议引擎

execpe/*/*error

pem/*/*error

launchhelper/*/*error

X 协议引擎

xpe/*/*error

pem/*/*error

字符协议引擎

tpe/*/*error

pem/*/*error

打印协议引擎

ppe/*/*error

pem/*/*error

通道协议引擎

cpe/*/*error

pem/*/*error

例如,要重置 X 协议引擎日志过滤器,请使用以下命令:

$ tarantella config edit \
--tarantella-config-xpeconfig-logfilter "xpe/*/*error" "pem/*/*error"

7.4.6. SGD Web 服务器日志记录

SGD Web 服务器消息记录在以下日志中:

  • Tomcat JSP 技术容器日志

  • Apache Web 服务器日志

7.4.6.1. Tomcat JSP 技术容器日志

SGD Web 服务器的 Tomcat JSP 技术容器组件的日志消息将写入 SGD 主机上 /opt/tarantella/webserver/tomcat/tomcat-version/logs 目录中的以下文件中:

  • catalina.out-当日志文件已满或 Tomcat JSP 技术容器已重新启动时,会轮转该日志文件,并且内容将附加到 catalina.out.sav

  • localhost_log.date.txt-这是一个每日日志文件,其中 date 是消息的记录日期。

您可以使用文本编辑器阅读这些日志文件。

可以使用 Tomcat JSP 技术容器日志文件诊断以下各项的问题:

  • 启动和停止 Tomcat JSP 技术容器

  • 启动 AJP 1.3 Connector

  • 装入 SGD Webtop Web 应用程序

  • Webtop JSP 软件异常错误

Tomcat JSP 技术容器的日志记录属性是在 /opt/tarantella/webserver/tomcat/tomcat-version/conf/logging.properties 文件中配置的。有关如何为 Tomcat JSP 技术容器配置日志记录的详细信息,请参见 Tomcat 文档

7.4.6.2. Apache Web 服务器日志

SGD Web 服务器的 Apache Web 服务器组件的日志消息将写入到 SGD 主机上 /opt/tarantella/webserver/apache/apache-version/logs 目录中的以下文件:

  • errors_log-记录 Apache Web 服务器的错误消息

  • access_log-记录 Apache Web 服务器处理的所有访问请求

您可以使用文本编辑器阅读这些日志文件。

可以使用 Apache Web 服务器日志文件诊断以下各项的问题:

  • 启动和停止 Apache Web 服务器

  • 对 SGD Webtop 页面的客户端请求

  • Web 验证

有关这些日志文件的更多详细信息,请参见 Apache 文档

7.4.7. SGD 客户端日志记录

默认情况下,SGD 客户端的日志消息存储在客户端设备上的以下位置:

  • Microsoft Windows 客户端设备。特定于用户的可写入目录中的一个名为 tcc.txt 的文件。

    • 例如,在 Microsoft Windows XP 平台上:

      C:\Documents and Settings\username\Local Settings\Application Data\Sun\SSGD

    • 例如,在 Microsoft Windows 7 平台上:

      C:\Users\username\AppData\Local\Temp\Sun\SSGD

    实际位置取决于用户的特权、操作系统和所使用的 Java Plug-in 软件版本。

    用户可以使用文本编辑器查看 tcc.txt 文件的内容。

  • UNIX、Linux 或 Mac OS X 平台客户端设备。客户端设备的系统日志位置。

    • 在 Oracle Linux 平台上,例如:

      /var/log/messages

    • 在 Oracle Solaris 平台上,例如:

      /var/adm/messages

    • 在 Mac OS X 平台上,例如:

      /var/log/system.log

    注意

    用户客户端设备上的系统日志所处的位置可能不同于上面列出的位置。在某些客户端平台上,用户可能需要特权才能查看系统日志。

手动启动 SGD 客户端时,用户可以通过使用 -logdir 命令行参数覆盖默认的日志目录。在这种情况下,将在指定的目录位置创建一个 tcc.txt 文件。

手动启动 SGD 客户端时,如果未指定 -logdir 参数,则会使用默认日志目录。

可以使用 SGD 客户端日志文件诊断以下各项的问题:

  • 启动 SGD 客户端和 SGD 客户端帮助应用程序

  • 装入 SGD Webtop 页面

  • 客户端设备,例如 CDM、打印和智能卡服务

  • SGD 客户端与 SGD 服务器之间的连接

用户可以通过在其客户端配置文件中更改日志记录级别设置来配置 SGD 客户端消息的日志记录级别。可用的日志记录级别(按详细级别升序排列)包括:

  • No Logging(不记录)-关闭 SGD 客户端日志记录。

  • Errors only(仅限错误)-记录错误消息。这是默认设置。

  • Errors and Warnings only(仅限错误和警告)-记录错误消息和警告消息。

  • 全部-记录所有消息,包括错误消息、警告消息和信息性消息。

客户端设备信息显示在用户 Webtop 的 "Info"(信息)→ "Detailed Diagnostics"(详细诊断)页面上。

管理员可以使用管理控制台查看用户会话的客户端设备信息。在 "User Session List"(用户会话列表)表中选择用户会话,然后单击 "View Details"(查看详细信息)按钮可显示更多详细信息。