Sun Java System Directory Server Enterprise Edition 6.3 管理指南

第 29 章 目录代理服务器监视和警报

监视功能可检测目录代理服务器和数据源的故障。

有关目录代理服务器监视框架的描述以及 cn=monitor 条目的详细布局,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的“Monitoring Directory Proxy Server”。本章包含以下主题:

检索有关目录代理服务器的监视数据

要检索有关目录代理服务器的监视数据,请使用 cn=monitor 条目。此条目由目录代理服务器在本地内存数据库中进行管理。通过在 cn=monitor 条目上执行 LDAP 搜索,可以检索 cn=monitor 下面的属性。您必须以代理管理员身份进行绑定才能搜索此条目。

有关使用 JVM 检索监视数据的信息,请参见使用 JVM 检索有关目录代理服务器的监视数据

检索有关数据源的监视数据

有关目录代理服务器如何监视数据源运行状况的描述,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的“Monitoring Data Sources”。本部分介绍如何配置数据源监视。

Procedure通过侦听错误监视数据源

在此类型的监视中,目录代理服务器侦听目录代理服务器和数据源之间的通信错误。此类型的监视称为被动监视,因为只有在检测到错误时目录代理服务器才会反应,而不会主动测试数据源。

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 将数据源的监视模式设置为 reactive


    $ dpconf set-ldap-data-source-prop -h host -p port datasource monitoring-mode:reactive
  2. 配置警报,以便在检测到错误或者数据源脱机或联机时发送警报,如为目录代理服务器配置管理警报所述。

Procedure通过定期建立专用连接来监视数据源

如果在指定的时间间隔内没有到数据源的请求或来自数据源的响应,目录代理服务器将创建到数据源的专用连接。

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 将数据源的监视模式设置为 proactive


    $ dpconf set-ldap-data-source-prop -h host -p port datasource monitoring-mode:proactive
  2. 配置目录代理服务器执行的监视搜索请求。


    $ dpconf set-ldap-data-source-prop -h host -p port datasource \
      monitoring-bind-timeout:timeout monitoring-entry-dn:dn \
      monitoring-search-filter:filter monitoring-entry-timeout:timeout
    

    搜索请求中使用以下属性:

    monitoring-bind-timeout

    目录代理服务器等待建立数据源连接的时间长度。默认情况下,此属性的值为 5 秒。

    monitoring-entry-dn

    搜索请求中目标条目的 DN。默认情况下,此属性为根 DSE 条目 ("")。

    monitoring-search-filter

    搜索过滤器。

    monitoring-entry-timeout

    目录代理服务器等待搜索响应的时间长度。默认情况下,此属性的值为 5 秒。

  3. (可选的)配置主动性监视以绑定为特定用户。


    $ dpconf set-ldap-data-source-prop ldap-data-source \
    monitoring-bind-dn:uid=user-id monitoring-bind-pwd-file:password-file
    

    user-id 替换为有效的 DN(如 uid=bjensen,dc=example,dc=com),并将 password-file 替换为包含密码的文件的路径。

    默认情况下,绑定是匿名执行的,也就是说,monitoring-bind-dnmonitoring-bind-pwd 属性均设置为 none

  4. 设置轮询时间间隔。


    $ dpconf set-ldap-data-source-prop -h host -p port datasource monitoring-interval:interval
    

    如果连接中断,目录代理服务器将按此时间间隔对连接进行轮询,以检测其是否恢复。默认情况下,监视时间间隔为 30 秒。

  5. 配置警报,以便在检测到数据源处于脱机或联机状态时发送警报,如为目录代理服务器配置管理警报所述。

Procedure通过测试建立的连接来监视数据源

在这种类型的监视中,目录代理服务器定期在每个数据源的每个连接上执行搜索。这样,目录代理服务器可检测到关闭的连接,从而防止连接因无活动而被断开。

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 将数据源的监视模式设置为 proactive


    $ dpconf set-ldap-data-source-prop -h host -p port datasource monitoring-mode:proactive
  2. 设置时间间隔,在该时间间隔后,目录代理服务器会向数据源发送请求以防止连接中断。


    $ dpconf set-ldap-data-source-prop -h host -p port datasource \
     monitoring-inactivity-timeout:time
    

    默认情况下,无活动的超时时间为 120 秒。

  3. (可选的)配置主动性监视以绑定为特定用户。


    $ dpconf set-ldap-data-source-prop ldap-data-source
    monitoring-bind-dn:uid=user-id monitoring-bind-pwd-file:password-file
    

    user-id 替换为有效的 DN(如 uid=bjensen,dc=example,dc=com),并将 password-file 替换为包含密码的文件的路径。

    默认情况下,绑定是匿名执行的,也就是说,monitoring-bind-dnmonitoring-bind-pwd 属性均设置为 none

  4. 配置警报,以便在检测到数据源处于脱机或联机状态时发送警报,如为目录代理服务器配置管理警报所述。

为目录代理服务器配置管理警报

有关如何配置管理警报的信息,请参见以下过程。

Procedure启用管理警报

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 查看启用的警报。


    % dpconf get-server-prop -h host -p port enabled-admin-alerts
  2. 启用一个或多个管理警报。


    % dpconf set-server-prop -h host -p port enabled-admin-alerts:alert1 \
      [enabled-admin-alerts:alert2 ...]

    例如,要启用所有可用警报,请运行以下命令:


    % dpconf set-server-prop -h host -p port \
     enabled-admin-alerts:error-configuration-reload-failure-with-impact \
     enabled-admin-alerts:error-server-shutdown-abrupt \ 
     enabled-admin-alerts:info-configuration-reload \
     enabled-admin-alerts:info-data-source-available \
     enabled-admin-alerts:info-server-shutdown-clean \
     enabled-admin-alerts:info-server-startup \
     enabled-admin-alerts:warning-configuration-reload-failure-no-impact \
     enabled-admin-alerts:warning-data-source-unavailable \
     enabled-admin-alerts:warning-data-sources-inconsistent \
     enabled-admin-alerts:warning-listener-unavailable

    要禁用所有警报,请运行以下命令:


    % dpconf set-server-prop -h host -p port enabled-admin-alerts:none

    要在现有的已启用警报列表中添加警报,请运行以下命令:


    % dpconf set-server-prop -h host -p port enabled-admin-alerts+:alert-name
    

    要从现有的已启用警报列表中删除警报,请运行以下命令:


    % dpconf set-server-prop -h host -p port enabled-admin-alerts-:alert-name
    

    默认情况下不启用任何警报。

另请参见

有关详细信息,请参见 enabled-admin-alerts(5dpconf)

Procedure配置要发送到 syslog 的管理警报

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 选择要发送到 syslog 守护进程的警报,如启用管理警报所述。

  2. 启用要发送到 syslog 守护进程的警报。


    $ dpconf set-server-prop -h host -p port syslog-alerts-enabled:true

    所有警报都通过 USER 工具发送到 syslog 中。

  3. 设置要将警报发送到的 syslog 守护进程的主机名。


    $ dpconf set-server-prop -h host -p port syslog_hostname:hostname
    

Procedure配置要发送到电子邮件的管理警报

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 选择将发送到 syslog 的警报,如启用管理警报所述。

  2. 配置电子邮件的地址和特性。


    $ dpconf set-server-prop -h host -p port email-alerts-smtp-host:host-name \
      email-alerts-smtp-port:port-number \
      email-alerts-message-from-address:sender-email-address \
      email-alerts-message-to-address:receiver-email-address \
      [email-alerts-message-to-address:receiver-email-address ...] \
      email-alerts-message-subject:email-subject
    
  3. 启用要发送到电子邮件的警报。


    $ dpconf set-server-prop -h host -p port email-alerts-enabled:true
  4. (可选的)设置标志,以便在电子邮件中包含警报代码。


    $ dpconf set-server-prop -h host -p port \
     email-alerts-message-subject-includes-alert-code:true

Procedure配置运行脚本的管理警报

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 选择将发送到 syslog 的警报,如启用管理警报所述。

  2. 启用运行脚本的警报。


    $ dpconf set-server-prop -h host -p port scriptable-alerts-enabled:true
  3. 设置将运行的脚本的名称。


    $ dpconf set-server-prop -h host -p port scriptable-alerts-command:script-name
    

使用 JVM 检索有关目录代理服务器的监视数据

目录代理服务器在 Java 虚拟机 (Java Virtual Machine, JVM) 中运行,并且依赖于 JVM 计算机的内存。要确保目录代理服务器正常运行,必须监视 JVM 计算机的内存使用情况。

有关如何为 JVM 计算机调整参数的信息,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Deployment Planning Guide》中的“Hardware Sizing For Directory Proxy Server”

默认情况下,JVM 计算机的堆大小为 250 MB。如果目录代理服务器没有足够的物理内存,则堆大小可能小于 250 MB。

在目录代理服务器运行时,可以监视 JVM 计算机的堆大小,以确保不出现内存不足的情况。要执行此操作,请使用随 Java 开发工具包 (Java Development Kit, JDK) 提供的标准工具。这些工具位于以下目录中:$JAVA_HOME/bin/jps $JAVA_HOME/bin/jstat

Procedure查看 JVM 的堆大小

无法使用 DSCC 执行此任务。请使用命令行,如以下过程所述。

  1. 查看 JVM 的堆大小。


    $ dpadm get-flags instance-path jvm-args
    jvm-args: -Xms250M  -Xmx250M

Procedure监视目录代理服务器运行时 JVM 的堆大小

无法使用 DSCC 执行此任务。请使用命令行,如以下过程所述。

  1. 查看目录代理服务器实例的 PID。


    $ jps
  2. 查看 JVM 计算机所使用的内存。


    $ jstat -gcutil PID
    
    • 如果零列接近 100%, 则说明 JVM 计算机没有足够的内存。

    • FGC 是全部垃圾收集 (garbage collection, GC) 事件的数目。垃圾收集会占用很大空间。

    • GCT(garbage collection time,垃圾收集时间)是 GC 所花费的时间。