Sun ONE Web Server 6.1 管理员指南 |
第 11 章
监视服务器本章介绍有关监视服务器的方法的信息,其中包括内置监视工具、服务质量功能和简单网络管理协议 (SNMP)。
您可以将 SNMP 与 Sun ONE 管理信息库 (MIB) 以及网络管理软件(例如 HP OpenView)结合使用以实时监视服务器(就像监视网络中的其他设备一样)。
您可以通过使用统计数据功能或 SNMP 来实时查看服务器的状态。在 UNIX 或 Linux 中,如果要使用 SNMP,则必须为 Sun ONE 服务器配置 SNMP。本章提供了在 UNIX 或 Linux 上将 SNMP 用于 Sun ONE 服务器所需的信息。
本章包括以下主题:
使用统计数据监视服务器您可以使用统计数据功能监视服务器的当前活动。统计数据显示了服务器处理的请求的数目以及这些请求的处理状况。您可以查看单个虚拟服务器的某些统计数据,也可以查看整个服务器实例的其他统计数据。如果交互式服务器监视器报告该服务器处理的请求过多,您可能需要调整服务器配置或系统的网络内核以容纳这些请求。有关详细信息,请参见《Sun ONE Web Server 6.1 Performance Tuning, Sizing, and Scaling Guide》。
启用统计数据功能后,您可以查看以下方面的统计数据:
交互式服务器监视器会报告各种服务器统计数据的总计。有关这些数据的说明,请参见联机帮助中的 "Monitor Current Activity" 页面。
注意 启用统计数据/探查时,服务器的所有用户都可以使用统计数据信息。有关详细信息,请参见《Sun ONE Web Server 6.1 NSAPI Programmer's Guide》中 stats-xml 的说明。
启用统计数据
要启用统计数据,请执行以下步骤:
有关启用统计数据的更多信息,请参见联机帮助。
使用统计数据
启用统计数据功能后,您可以获得有关服务器实例和虚拟服务器运行状况的各种信息。统计数据按功能被划分为若干方面。
要访问统计数据,请执行以下步骤:
您可以使用统计数据中显示的数据来优化服务器。有关详细信息,请参见《Sun ONE Web Server 6.1 Performance Tuning, Sizing, and Scaling Guide》。
使用服务质量服务质量是指为服务器实例虚拟服务器类或虚拟服务器设置的性能限制。例如,如果您是 ISP,则可能希望根据允许虚拟服务器使用的带宽数量对虚拟服务器收取不同的费用。可以在两个方面进行限制:带宽数量和连接数目。
您可以在 Server Manager 的 "Monitor" 选项卡中为整个服务器或虚拟服务器的某个类启用这些设置。然而,您可以为某单个虚拟服务器覆盖这些服务器或类级别的设置。有关为单个服务器设置服务质量限制的详细信息,请参见“配置虚拟服务器的服务质量设置”。
有两个设置用于控制流量的计算方式以及带宽的重新计算频率:重新计算时间间隔和公制时间间隔。重新计算时间间隔是带宽的计算频率(毫秒)。公制时间间隔是数据可用于流量计算的时间段。
本部分包括以下主题:
服务质量实例
以下示例显示了如何收集并计算服务质量信息:
服务器的公制时间间隔为 30 秒。
服务器在 0 秒启动。
在 1 秒时,至/自该服务器的 HTTP 连接产生了 5000 字节的流量。
之后没有进行更多连接。在 30 秒时,最后 30 秒内的总流量为 5000 字节。
在 32 秒时,在 1 秒时获得的流量采样数据被放弃,因为已经超过了 30 秒的公制时间间隔。现在,最后 30 秒的总流量为 0。
重新计算时间间隔的工作方式与此类似。服务器的重新计算时间间隔为 100 毫秒。
我们继续前面的示例,每隔 100 毫秒重新计算一次带宽。该计算以流量和公制时间间隔为基础。
在 0 秒时,将首次计算带宽。总流量为 0,除以 30 秒的公制时间间隔,得出带宽为 0。
在 1 秒时,将第 10 次(1000 毫秒/100 毫秒)计算带宽。总流量为 5000 字节,除以 30 秒,得出带宽为 5000/30 = 166 字节/秒。
在 30 秒时,将第 300 次计算带宽。总流量为 5000 字节,除以 30 秒,得出带宽为 5000/30 = 166 字节/秒。
在 32 秒时,将第 320 次计算带宽。现在流量为 0(因为产生流量的那次连接发生的时间太早,所以不能计算在内),除以 30 秒,得出带宽为 0 字节/秒。
设置服务质量
要为服务器实例或虚拟服务器的某个类配置服务质量设置,您需要通过用户界面配置这些设置。要实际施行服务质量设置,您还必须在 obj.conf 文件中设置服务器应用程序函数 (SAF)。
要配置服务质量,请执行以下步骤:
- 在 Server Manager 中,单击 "Monitor" 选项卡。
- 单击 "Quality of Service"。
将显示一个页面,其中列出了服务质量的常规设置,下面还有一个列表,列出了作为一个整体的服务器实例以及虚拟服务器的每个类。
- 要为整个服务器实例启用服务质量,请单击 "Enable"。
默认情况下,服务质量被启用。启用服务质量会略微增加服务器的负担。
- 选择 "Recompute Interval"。
重新计算时间间隔是所有服务器、类及虚拟服务器的每次带宽计算之间的毫秒数。默认值为 100 毫秒。
- 选择 "Metric Interval"。
公制时间间隔是测量其间流量的时间间隔(秒)。默认值为 30 秒。此时间段内测量的所有带宽将被平均以得出每秒的字节数。
如果站点中要传输很多大型文件,请在此字段中使用较大的值(几分钟或更长时间)。如果公制时间间隔较短,大量文件的传输可能会占用所允许的所有带宽。如果您强制了最大带宽设置,这将导致连接被拒绝。由于带宽是按公制时间间隔均分的,因此较长的时间间隔可以缓和由大量文件引起的高峰流量。
如果带宽限制比可用带宽低很多(例如,带宽限制为 1 MB/秒,但是与主干的连接为 1 GB/秒),则应缩短公制时间间隔。
请注意,如果传输很大的静态文件,而带宽限制又远远低于可用带宽,则需要确定要优化前者还是后者,因为两者的解决方案恰好相反。
- 为服务器实例和/或虚拟服务器类启用服务质量。
屏幕的底部列出了服务器实例和服务器类。在要为其启用服务质量的项的旁边,选择 "Enable" 操作。
- 设置最大带宽(字节/秒)。
- 选择是否强制最大带宽设置。
如果选择强制最大带宽,当服务器达到其带宽限制时,额外的连接将被拒绝。
如果没有强制最大带宽,当超过最大值时,服务器将在错误日志中记录一条消息。
- 选择允许的最大连接数。
该数值是处理的并行请求数。
- 选择是否强制最大连接数设置。
如果选择强制最大连接数,当服务器达到其限制时,额外的连接将被拒绝。
- 如果没有强制最大连接数,当超过最大值时,服务器将在错误日志中记录一条消息。
- 单击 "OK"。
需要对 obj.conf 进行的更改
要启用服务质量,您必须在 obj.conf 中包含指令以调用两个服务器应用程序函数 (SAF):AuthTrans qos-handler 和 Error qos-error。
要能够正常工作,qos-handler AuthTrans 指令必须是在默认对象中配置的第一个 AuthTrans。服务质量处理程序的作用是检查虚拟服务器、虚拟服务器类以及整个服务器的当前统计数据并通过返回错误来强制限制。
Sun ONE Web Server 包含一个称为 qos-handler 的内置样例服务质量处理程序 SAF。当达到限制时,此 SAF 将进行记录并向服务器返回一个 503 "Server busy" 错误,以便由 NSAPI 处理。
Sun ONE Web Server 还包含一个称为 qos-error 的内置样例错误 SAF,它将返回一个错误页面,说明引起 503 错误的限制以及触发该限制的统计数据的值。您可以更改样例代码以提供不同的错误信息。
可以在 server_root/plugins/nsapi/examples/qos.c 处获得这些样例。您可以使用这些样例,以可以编写自己的 SAF。
有关这些 SAF 以及如何使用它们的详细信息,请参见《Sun ONE Web Server 6.1 NSAPI Programmer's Guide》。
服务质量的已知限制
使用服务质量功能时,请记住以下限制:
- 由于性能的原因,不能在服务器进程之间共享连接或带宽统计数据。也就是说,没有考虑 MaxProc 设置。因此,所有限制都单独应用于某个服务器进程,而非所有进程的集合。有关 MaxProcs 和多进程的详细信息,请参见《Sun ONE Web Server 6.1 Performance Tuning, Sizing, and Scaling Guide》。
- 服务质量功能仅测量应用程序级别的 HTTP 带宽。由于以下多种原因,HTTP 带宽可能与实际的 TCP 网络带宽不同:
- 服务质量功能不能精确测量 PR_TransmitFile 调用的流量。对于诸如 PR_Send()/net_write 或 PR_Recv()/net_read 等基本 I/O 操作,带宽管理器可以快速计算出传输的数据,因为在一个系统调用中传输的字节数通常即是缓冲区的大小,并且 I/O 调用会快速返回。这非常适用于测量动态内容应用程序的即时带宽。但是,因为 PR_TransmitFile 传输的数据量仅在传输结束时才会知道,所以在传输完成前无法进行测量。
- 计算的带宽始终是一个近似值,因为它不是即时测量的,而是在一段时间内以固定的时间间隔计算的。例如,如果公制时间间隔是默认的 30 秒,而服务器空闲了 29 秒,然后在下一秒中,客户机有可能在 1 秒内使用了 30 倍的带宽限制。
- 无论何时动态重新配置了服务器,都将丢失服务质量带宽统计数据。此外,服务质量限制在具有基于较早的、非活动配置的连接的线程中不会被强制,因为带宽管理器线程仅计算活动配置的带宽统计数据。还有一种潜在可能,即长时间未关闭其套接字并保持活动(从而服务器没有使其超时)的客户机在动态重新配置服务器后不会再受服务质量限制的约束。
- 虚拟服务器的并行连接计算间隔与虚拟服务器类和整个服务器实例的计算间隔不同。单个虚拟服务器的连接计数器在请求被分析并路由到虚拟服务器后会立即自动递增,而在该请求的响应处理结束时会自动减少。这意味着虚拟服务器的连接统计数据在任意时刻都是准确的。
SNMP 基本原理SNMP 是用于交换有关网络活动的数据的协议。利用 SNMP,可以在被管理的设备和网络管理站 (NMS) 之间传输数据。被管理的设备即运行 SNMP 的任何设备:主机、路由器、Web 服务器和网络上的其他服务器。NMS 是用于远程管理网络的计算机。NMS 软件通常提供图像来显示收集的数据,或使用这些数据确保服务器在特定的参数值范围内运行。
NMS 通常是安装有一个或多个网络管理应用程序的功能强大的工作站。网络管理应用程序(例如 HP OpenView)以图形方式显示有关被管理设备(例如 Web 服务器)的信息。例如,它可能显示您的企业中服务器的打开或关闭情况,或者收到的错误消息的数量和类型。将 SNMP 与 Sun ONE 服务器一起使用时,这些信息将通过两种代理(子代理和主代理)在 NMS 和服务器之间传输。
子代理收集有关服务器的信息并将信息传递给服务器的主代理。每个 Sun ONE 服务器(除 Administration Server 外)都具有子代理。
主代理与 NMS 进行通信。主代理随 Administration Server 一起安装。
您可以在一台主机上安装多个子代理,但是只能安装一个主代理。例如,如果在同一台主机上安装了 Directory Server、Sun ONE Web Server 及 Messaging Server,则每个服务器的子代理将与同一个主代理通信,如下所示:
Sun ONE Web Server MIBSun ONE Web Server 存储了与网络管理有关的变量。主代理可以访问的变量称为被管理对象。这些对象在称为管理信息库 (MIB) 的树状结构中定义。MIB 提供了对 Web 服务器的网络配置、状态和统计数据的访问。使用 SNMP 可以从网络管理工作站 (NMS) 查看此信息。
服务器的 MIB 包含有关该特定服务器的网络管理的变量定义。下图显示了 MIB 树的顶层。
MIB 树的顶层显示出 Internet 对象标识符具有四个子树:directory (1)、mgmt (2)、experimental (3) 和 private (4)。private (4) 子树包含 enterprises (1) 节点。enterprises (1) 节点中的每个子树都被分配给一个单独的企业,企业是注册有自己特定 MIB 扩展的组织。然后,企业可以在其子树下创建特定产品的子树。由企业创建的 MIB 位于 enterprises (1) 节点下。Sun ONE MIB 位于 enterprises (1) 节点下。
每个 Sun ONE 服务器子代理都提供了一个用于 SNMP 通信的 MIB。服务器通过发送包含这些变量的消息(或陷阱)将重要事件报告给网络管理站 (NMS)。NMS 也可以查询服务器的 MIB 以获取数据,或以远程方式更改 MIB 中的变量。
每个 Sun ONE 服务器都有其自己的管理信息库 (MIB)。所有 Sun ONE MIB 都位于:
Sun ONE Web Server 的 MIB 是一个名为 webserv61.mib 的文件。此 MIB 包含与 Sun ONE Web Server 的网络管理有关的各种变量的定义。
Sun ONE Web Server 6.1 MIB 具有一个对象标识符
http 60 (iws60 OBJECT IDENTIFIER ::= {http 60 }),它位于 server_root/plugins/snmp 目录下。您可以使用 Sun ONE Web Server MIB 查看有关 Web 服务器的管理信息并实时监视服务器。表 11-1 列出并说明了存储在 webserv61.mib 中的被管理对象。
设置 SNMP一般来讲,要使用 SNMP,系统上必须安装了一个主代理和至少一个子代理,并且正在运行。要启用子代理,需要先安装主代理。
设置 SNMP 的过程根据不同的系统而不同。表 8.1 概述了在不同情况下所要执行的过程。本章后面将对实际过程进行详细介绍。
开始前,应当验证两件事情:
有关如何验证这些信息的说明,请参见您的系统文档。
表 2 启用 SNMP 主代理和子代理的过程概述。
使用代理 SNMP Agent (UNIX/Linux)如果已经运行了一个本地代理,并且希望将它与一个 Sun ONE Web Server 主代理一起并行使用,则需要使用一个代理 SNMP Agent。在启动之前,请确保停止本地主代理。(有关更多信息,请参见您的系统文档。)
本部分包括以下主题:
安装代理 SNMP Agent
如果某个 SNMP 代理正在系统上运行,并且您希望继续使用本地 SNMP 守护程序,请执行以下各节中的步骤:
- 安装 SNMP 主代理。请参见“安装 SNMP 主代理”。
- 安装并启动代理 SNMP Agent,然后重新启动本地 SNMP 守护程序。请参见“使用代理 SNMP Agent (UNIX/Linux)”。
- 启动 SNMP 主代理。请参见“启用和启动 SNMP 主代理”。
- 启用子代理。请参见“启用子代理”。
要安装代理 SNMP Agent,请编辑位于服务器根目录下的 plugins/snmp/sagt 中的 CONFIG 文件(您可以为此文件指定其他名称),以使其包含 SNMP 守护程序要侦听的端口。其中还需要包括代理 SNMP Agent 要转发的 MIB 树和陷阱。
下面是一个 CONFIG 文件示例:
AGENT AT PORT 1161 WITH COMMUNITY public
SUBTREES 1.3.6.1.2.1.1,
1.3.6.1.2.1.2,
1.3.6.1.2.1.3,
1.3.6.1.2.1.4,
1.3.6.1.2.1.5,
1.3.6.1.2.1.6,
1.3.6.1.2.1.7,
1.3.6.1.2.1.8
FORWARD ALL TRAPS;
启动代理 SNMP Agent
要启动代理 SNMP Agent,请在命令提示符下输入:
重新启动本地 SNMP 守护程序进程
启动代理 SNMP Agent,您需要在 CONFIG 文件中指定的端口重新启动本地 SNMP 守护程序。要启动本地 SNMP 守护程序,请在命令提示符下输入:
其中 port_number 是在 CONFIG 文件中指定的端口号。例如,在 Solaris 平台上,使用前面提到的 CONFIG 文件实例中的端口,您需要输入:
重新配置 SNMP 本地代理如果 SNMP 守护程序运行在 AIX 上,则它支持 SMUX。因此,您无需安装主代理。但是,您必须更改 AIX SNMP 守护程序配置。
AIX 使用多个配置文件来筛选其通信。需要更改 snmpd.conf(其中一个配置文件)以使 SNMP 守护程序接受从 SMUX 子代理传入的消息。有关详细信息,请参见 snmpd.conf 的联机手册页。您需要添加一行以定义每个子代理。
例如,您可以将此行添加到 snmpd.conf 中:
IP_address 是运行子代理的主机的 IP 地址,net_mask 是该主机的网络掩码。
安装 SNMP 主代理要配置 SNMP 主代理,您必须以 root 用户身份安装 Administration Server 实例。但是,即使是非 root 用户,也可以通过配置 SNMP 子代理以便与主代理一起工作,从而在 Web 服务器实例上完成基本 SNMP 任务(例如 MIB 浏览)。
要使用 Server Manager 安装 SNMP 主代理,请执行以下步骤:
- 以 root 用户身份登录。
- 检查端口 161 上是否运行有 SNMP 守护程序 (snmpd)。
如果没有运行 SNMP 守护程序,请转到步骤 4。
如果运行有 SNMP 守护程序,请确保知道如何重新启动它以及它支持哪些 MIB 树。
- 如果运行有 SNMP 守护程序,请结束它的进程。
- 在 Server Manager 中,从 "Global Settings" 选项卡中选择 "SNMP Master Agent Trap" 页面。将显示 "Manager Entries" 页面。
- 键入正在运行网络管理软件的系统的名称。
- 键入网络管理系统用来侦听陷阱的端口号。(常用的端口是 162。)有关陷阱的详细信息,请参见“配置陷阱目标”。
- 键入要在陷阱中使用的社区字符串。有关社区字符串的详细信息,请参见“配置社区字符串”。
- 单击 "OK"。
- 在 Server Manager 中,从 "Global Settings" 选项卡中选择 "SNMP Master Agent Community" 页面。将显示 "Community Strings" 页面。
- 键入主代理的社区字符串。
- 选择社区的操作。
- 单击 "OK"。
启用和启动 SNMP 主代理主代理操作在名为 CONFIG 的代理配置文件中进行了定义。您可以使用 Server Manager 编辑 CONFIG 文件,也可以手动编辑该文件。要启用 SNMP 子代理,必须先安装 SNMP 主代理。
如果在重新启动主代理时出现类似于 "System Error: Could not bind to port" 的绑定错误,请使用 ps -ef | grep snmp 检查 magt 是否在运行。如果正在运行,请使用 kill -9 pid 命令结束该进程。然后,SNMP 的 CGI 将重新开始工作。
本部分包括以下主题:
在其他端口上启动主代理
管理界面只能在 161 端口上启动 SNMP 主代理。但是,您可以使用以下步骤在其他端口上手动启动主代理:
然后,主代理将在所希望的端口上启动。但是,用户界面能够检测出主代理正在运行。
手动配置 SNMP 主代理
要手动配置 SNMP 主代理,请执行以下步骤:
编辑主代理的 CONFIG 文件
CONFIG 文件定义了将与主代理一起工作的社区和管理器。管理器的值应当是有效的系统名称或 IP 地址。
下面是一个基本 CONFIG 文件的示例:
COMMUNITY public
ALLOW ALL OPERATIONS
MANAGER manager_station_name
SEND ALL TRAPS TO PORT 162
WITH COMMUNITY public
定义 sysContact 和 sysLocation 变量
您可以编辑 CONFIG 文件,为指定了 sysContact 和 sysLocation MIB-II 变量的 sysContact 和 sysLocation 添加初始值。此示例中 sysContact 和 sysLocation 的字符串放在了引号内。任何包含空格、换行符、制表符等的字符串都必须放在引号内。您也可以用十六进制记数法来指定值。
下面是一个 CONFIG 文件示例,其中定义了 sysContract 和 sysLocation 变量:
配置 SNMP 子代理
您可以配置 SNMP 子代理以监视服务器。
要配置 SNMP 子代理,请执行以下步骤:
- 在 Administration Server 中,选择服务器实例并单击 "Manage"。
- 选择 "Monitor" 选项卡。
- 选择 "SNMP Subagent Configuration"。
- (只适用于 UNIX)在 "Master Host" 字段中,输入服务器的名称和域。
- 输入服务器的说明,包括操作系统信息。
- 输入负责该服务器的组织。
- 在 "Location" 字段中,输入服务器的绝对路径。
- 在 "Contact" 字段中,输入负责该服务器的人员的姓名和联系信息。
- 选择 "On" 启用 SNMP 统计数据收集。
- 单击 "OK"。
- 单击 "Apply"。
- 选择 "Apply Changes" 重新启动服务器,使更改生效。
启动 SNMP 主代理
安装 SNMP 主代理后,您可以手动启动它或通过 Administration Server 启动。
手动启动 SNMP 主代理
要手动启动主代理,请在命令提示符下输入以下内容:
INIT 文件是包含 MIB-II 系统组信息(包括系统位置和联系信息)的非易失性文件。如果 INIT 不存在,首次启动主代理时将创建它。如果 CONFIG 文件中的管理器名称无效,将导致主代理启动失败。
要在非标准端口上启动主代理,请使用以下两种方法之一:
方法一:在 CONFIG 文件中,为主代理用来侦听来自管理器的 SNMP 请求的每个接口指定传输映射。传输映射允许主代理接受标准端口和非标准端口上的连接。主代理还可以在非标准端口上接受 SNMP 通信。并行 SNMP 的最大数目受限于目标系统对每个进程的打开的套接字或文件描述符数目的限制。下面是一个传输映射条目示例:
手动编辑 CONFIG 文件后,您应当在命令提示符下键入以下内容以便手动启动主代理:
方法二:编辑 /etc/services 文件,以允许主代理接受标准端口和非标准端口上的连接。
使用 Administration Server 启动 SNMP 主代理
要使用 Administration Server 启动 SNMP 主代理,请执行以下步骤:
配置 SNMP 主代理在主机上启用了主代理和子代理后,您需要配置主机的 Administration Server。这要求指定社区字符串和陷阱目标。
配置社区字符串
社区字符串是 SNMP 代理用来进行授权的文本字符串。这意味着网络管理站在发送给代理的每条消息中都带有一个社区字符串。然后,代理就可以验证网络管理站是否被授权获取信息。社区字符串在 SNMP 包中发送时没有被隐藏;字符串以 ASCII 文本格式发送。
您可以在 Server Manager 的 "Community Strings" 页面中为 SNMP 主代理配置社区字符串。还可以定义特定社区所能执行的与 SNMP 相关的操作。在 Server Manager 中,您还可以查看、编辑和删除已配置的社区。
配置陷阱目标
SNMP 陷阱是 SNMP 代理发送给网络管理站的消息。例如,当接口的状态由打开变为关闭时,SNMP 代理将发送一个陷阱。SNMP 代理必须知道网络管理站的地址,以便知道向何处发送陷阱。您可以通过 Sun ONE Web Server 为 SNMP 主代理配置陷阱目标。还可以查看、编辑并删除已配置的陷阱目标。使用 Sun ONE Web Server 配置陷阱目标时,实际上是在编辑 CONFIG 文件。
启用子代理安装了 Administration Server 附带的主代理后,您必须在尝试启动它之前为您的服务器实例启用子代理。有关安装主代理的详细信息,请参见“安装 SNMP 主代理”。您可以使用 Server Manager 启用子代理。
要在 UNIX/Linux 平台上停止 SNMP 功能,您必须先停止子代理,然后再停止主代理。如果先停止主代理,可能无法停止子代理。如果发生这种情况,请重新启动主代理,停止子代理,然后停止主代理。
要启用 SNMP 子代理,请使用 Server Manager 中的 "SNMP Subagent Configuration" 页面,然后在 "SNMP Subagent Control" 页面中启动子代理。有关更多信息,请参见联机帮助中的相应小节。
启用子代理后,您可以通过 "SNMP Subagent Control" 页面或 Windows 的服务控制面板来启动、停止或重新启动子代理。
了解 SNMP 消息GET 和 SET 是 SNMP 定义的两种消息。GET 和 SET 消息由网络管理站 (NMS) 发送给主代理。您可以通过 Administration Server 使用其中一个或两个都使用。
SNMP 以协议数据单元 (PDU) 的格式交换网络信息。这些单元包含有关存储在被管理设备(例如 Web 服务器)上的变量的信息。这些变量(也称为被管理对象)具有值和标题,值和标题将在需要时报告给 NMS。由服务器发送给 NMS 的协议数据单元称为“陷阱”。以下实例显示了 GET、SET 和“陷阱”消息的使用。
NMS 启动的通信。NMS 将从服务器请求信息,或者更改存储在服务器 MIB 中的变量的值。例如:
服务器启动的通信。发生重要事件时,服务器子代理将向 NMS 发送一条消息(或“陷阱”)。例如: