Application Delivery Management

创建事件规则

您可以配置规则来监控特定事件。规则使监控整个基础架构中生成的大量事件变得更加容易。

您可以通过配置具有特定条件的规则并为这些规则分配操作来筛选一组事件。当生成的事件符合规则中的筛选条件时,将运行与该规则关联的操作。您可以创建筛选器的条件包括:严重性、Citrix Application Delivery Controller (NetScaler) 实例、类别、故障对象、配置命令和消息。

您可以为事件分配以下操作:

  • 发送电子邮件操作:针对符合筛选条件的事件发送电子邮件。

  • 发送陷阱操作:将 SNMP 陷阱发送或转发到外部陷阱目标。

  • 运行命令操作:当传入事件符合配置的规则时运行命令。

  • 执行作业操作:针对符合您指定筛选条件的事件运行作业。

  • 抑制操作:在特定时间段内抑制或丢弃事件。

  • 发送 Slack 通知:针对符合筛选条件的事件,在配置的 Slack 频道上发送通知。

  • 发送 PagerDuty 通知:根据 PagerDuty 配置,针对符合筛选条件的事件发送事件通知。

  • 发送 ServiceNow 通知:针对符合筛选条件的事件,自动生成 ServiceNow 事件。

有关详细信息,请参阅添加事件规则操作

您还可以设置在事件清除之前,以指定的时间间隔重新发送通知。并且您可以使用特定的主题行、用户消息和附件来自定义电子邮件。

使用规则监控事件

例如,作为管理员,您可能希望监控特定 NetScaler 实例的“CPU 使用率高”事件,因为这些事件可能导致您的 NetScaler 实例中断。您可以:

  • 创建规则以监控实例,并指定在发生“CPU 使用率高”类别的事件时向您发送电子邮件通知的操作。

  • 将规则安排在特定时间运行,例如上午 11 点到晚上 11 点之间,这样您就不会在每次生成事件时都收到通知。

配置事件规则涉及以下任务:

  1. 定义规则

  2. 选择规则检测到的事件的严重性

  3. 指定事件类别

  4. 指定规则适用的 NetScaler 实例

  5. 选择故障对象

  6. 指定高级筛选器

  7. 指定规则检测到事件时要执行的操作

步骤 1 - 定义事件规则

导航到 基础架构 > 事件 > 规则,然后单击 添加。如果要启用规则,请选中 启用规则 复选框。

您可以设置 事件期限 选项,以指定 NetScaler® ADM 刷新事件规则的时间间隔(以秒为单位)。

注意:

事件期限的最小值为 60 秒。如果将 事件期限 字段留空,则事件发生后会立即应用事件规则。

根据上面的示例,您可能希望在您的 NetScaler 实例发生“CPU 使用率高”事件持续 60 秒或更长时间时,每次都通过电子邮件收到通知。您可以将事件期限设置为 60 秒,这样每当您的 NetScaler 实例发生“CPU 使用率高”事件持续 60 秒或更长时间时,您都会收到一封包含事件详细信息的电子邮件通知。

创建事件规则

您还可以按 实例系列 筛选事件规则,以跟踪 NetScaler ADM 从哪个 NetScaler 实例接收事件。

如果要包含除星号 (*) 模式匹配之外的正则表达式,请选择 启用带正则表达式匹配的高级筛选器

步骤 2 - 选择事件的严重性

您可以创建使用默认严重性设置的事件规则。严重性指定了您要添加事件规则的事件的当前严重性。

您可以定义以下严重性级别:严重、主要、次要、警告、清除和信息。

定义严重性级别

注意

您可以为通用事件和高级特定事件配置严重性。要修改 NetScaler ADM 上管理的 NetScaler 实例的事件严重性,请导航到 基础架构 > 事件 > 事件设置。选择要配置事件严重性的 类别,然后单击 配置严重性。分配新的严重性级别,然后单击 确定

步骤 3 - 指定事件类别

您可以指定 NetScaler 实例生成的事件类别。所有类别都在 NetScaler 实例上创建。然后,这些类别会映射到 NetScaler ADM,可用于定义事件规则。选择您要考虑的类别,并将其从 可用 表移动到 已配置 表。

在上面的示例中,您必须从显示的表中选择“cpuUsageHigh”作为事件类别。

定义事件类别

步骤 4 - 指定 NetScaler 实例

选择要为其定义事件规则的 NetScaler 实例的 IP 地址。在 实例 部分中,单击 选择实例。在 选择实例 页面中,选择您的实例,然后单击 选择

指定实例

步骤 5 - 选择故障对象

您可以从提供的列表中选择故障对象,也可以添加已生成事件的故障对象。您还可以指定正则表达式来添加故障对象。根据指定的正则表达式,故障对象会自动添加到列表中。故障对象是已生成事件的实体实例或计数器。

重要

要使用正则表达式列出故障对象,请在步骤 1 中选择 启用带正则表达式匹配的高级筛选器

故障对象会影响事件的处理方式,并确保其反映所通知的确切问题。使用此筛选器,您可以快速跟踪故障对象上的问题并确定问题的原因。例如,如果用户存在登录问题,则此处的故障对象是用户名或密码,例如 nsroot

此列表可以包含所有阈值相关事件的计数器名称、所有实体相关事件的实体名称、所有证书相关事件的证书名称等。

对象列表

步骤 6 - 指定高级筛选器

您可以根据以下条件进一步筛选事件规则:

  • 配置命令 - 您可以指定完整的配置命令,或指定正则表达式来筛选事件。

    您可以根据命令的身份验证状态和/或其执行状态进一步筛选事件规则。例如,对于 NetscalerConfigChange 事件,键入 [.]*bind system global policy_name[.]*

    高级配置命令筛选器

  • 消息 - 您可以指定完整的消息描述,或指定正则表达式来筛选事件。 例如,对于 NetscalerConfigChange 事件,键入 [.]*ns_client_ipaddress :10.122.132.142[.]*ns_client_ipaddress :^([.]*10.122.132.142[.]*)

    高级消息筛选器

步骤 7 - 添加事件规则操作

您可以添加事件规则操作来为事件分配通知操作。当事件符合您在上面设置的已定义筛选条件时,将发送或执行这些通知。您可以添加以下事件操作:

  • 发送电子邮件操作

  • 发送陷阱操作

  • 运行命令操作

  • 运行作业操作

  • 抑制操作

  • 发送 Slack 通知

  • 发送 PagerDuty 通知

  • 发送 ServiceNow 通知

设置电子邮件事件规则操作

当您选择“发送电子邮件操作”事件操作类型时,如果事件符合定义的筛选条件,则会触发电子邮件。您必须通过提供邮件服务器或邮件配置文件详细信息来创建电子邮件分发列表,或者您可以选择以前创建的电子邮件分发列表。

由于 NetScaler ADM 中配置了大量虚拟服务器,您每天可能会收到大量电子邮件。电子邮件具有默认主题行,其中提供有关事件严重性、事件类别和故障对象的信息。但主题行不包含有关这些事件源自的虚拟服务器名称的任何信息。您现在可以选择包含一些附加信息,例如受影响实体的名称、故障对象的名称。

当传入事件与配置的规则匹配时,您还可以添加自定义主题行和用户消息,并将附件上传到您的电子邮件。

在发送事件通知电子邮件时,您可能希望发送一封测试电子邮件以测试配置的设置。现在,“测试”按钮允许您在配置电子邮件服务器、关联的分发列表和其他设置后发送测试电子邮件。此功能可确保设置正常运行。

您还可以通过选中 重复电子邮件通知,直到事件清除 复选框来确保所有关键事件都得到处理,并且不会错过任何重要的电子邮件通知,从而针对符合您所选条件的事件规则发送重复的电子邮件通知。例如,如果您为涉及磁盘故障的实例创建了事件规则,并且希望在问题解决之前一直收到通知,则可以选择接收有关这些事件的重复电子邮件通知。

设置电子邮件事件规则操作

设置陷阱事件规则操作

当您选择 发送陷阱操作 事件操作类型时,SNMP 陷阱会发送或转发到外部陷阱目标。通过定义陷阱分发列表(或陷阱目标和陷阱配置文件详细信息),当事件符合定义的筛选条件时,陷阱消息会发送到特定的陷阱侦听器。

设置运行命令操作

当您选择 运行命令操作 事件操作时,您可以创建可在 NetScaler ADM 上运行的命令或脚本,以匹配特定筛选条件的事件。

您还可以为 运行命令操作 脚本设置以下参数:

参数 描述
$source 此参数对应于接收到的事件的源 IP 地址。
$category 此参数对应于筛选器类别下定义的陷阱类型。
$entity 此参数对应于已生成事件的实体实例或计数器。它可以包括所有阈值相关事件的计数器名称、所有实体相关事件的实体名称以及所有证书相关事件的证书名称。
$severity 此参数对应于事件的严重性。
$failureobj 故障对象会影响事件的处理方式,并确保故障对象反映所通知的确切问题。这可用于快速跟踪问题并确定故障原因,而不是简单地报告原始事件。

注意

在命令执行期间,这些参数将替换为实际值。

例如,假设您要在负载平衡虚拟服务器状态为 Down 时设置运行命令操作。作为管理员,您可能希望通过添加另一个虚拟服务器来提供快速解决方案。在 NetScaler ADM 中,您可以:

  • 编写脚本 (.sh) 文件。

    以下是示例脚本 (.sh) 文件:

     #!/bin/sh
     source=$1
     failureobj=$2
     payload='{"params":{"warning":"YES"},"lbvserver":{"name":"'$failureobj'","servicetype":"HTTP","ipv46":"x.x.x.x","port":"80","td":"","m":"IP","state":"ENABLED","rhistate":"PASSIVE","appflowlog":"ENABLED","
     bypassaaaa":"NO","retainconnectionsoncluster":"NO","comment":""}}'
     url="http://$source/nitro/v1/config/lbvserver"
     curl --insecure -basic -u nsroot:nsroot -H "Content-type: application/json" -X POST -d $payload $url
    
     <!--NeedCopy-->
    
  • 将 .sh 文件保存在 NetScaler 代理上的任何持久位置。例如,/var

  • 在 NetScaler ADM 中提供 .sh 文件位置,以便在满足规则条件时运行。

要设置用于创建新虚拟服务器的 运行命令 操作:

  1. 定义规则

  2. 选择事件的严重性

  3. 选择事件类别 entitydown

  4. 选择已配置虚拟服务器的实例

  5. 选择或创建虚拟服务器的故障对象

  6. 事件规则操作 下,单击 添加操作,然后从 操作类型 列表中选择 运行命令操作

  7. 命令执行列表 下,单击 添加

    此时将显示“创建命令分发列表”页面。

    1. 配置文件名称 中,指定您选择的名称。

    2. 运行命令 中,指定必须运行脚本的 NetScaler 代理位置。例如:/sh/var/demo.sh $source $failureobj

    3. 选择 追加输出追加错误

      注意

      如果您希望在 NetScaler ADM 服务器日志文件中存储运行命令脚本时生成的输出和错误(如果有),则可以启用 追加输出追加错误 选项。如果您不启用这些选项,NetScaler ADM 将丢弃运行命令脚本时生成的所有输出和错误。

    4. 单击 创建

  8. 添加事件操作 页面中,单击 确定

    添加事件操作

    注意

    如果您希望在 NetScaler ADM 服务器日志文件中存储运行命令脚本时生成的输出和错误(如果有),则可以启用 追加输出追加错误 选项。如果您不启用这些选项,NetScaler ADM 将丢弃运行命令脚本时生成的所有输出和错误。

设置 执行 作业操作

通过创建包含配置作业的配置文件,作业将作为内置作业或自定义作业为 NetScaler 和 NetScaler SDX 实例运行,以匹配您指定的筛选条件的事件和警报。

  1. 事件规则操作 下,单击 添加操作,然后从 操作类型 下拉列表中选择 执行作业操作

  2. 创建包含作业的配置文件,以便在事件符合定义的筛选条件时运行该作业。

  3. 创建作业时,请指定配置文件名称、实例类型、配置模板以及如果作业上的命令失败时要执行的操作。

  4. 根据所选的实例类型和所选的配置模板,指定您的变量值,然后单击 完成 以创建作业。

运行作业操作

设置抑制操作

当您选择 抑制操作 事件操作时,您可以配置一个时间段(以分钟为单位),在此期间事件将被抑制或丢弃。您可以将事件抑制至少 1 分钟。

设置抑制操作

从 NetScaler ADM 设置 Slack 通知

通过在 NetScaler ADM GUI 中提供配置文件名称和 Webhook URL 来配置所需的 Slack 频道。然后,事件通知将发送到此频道。您可以配置多个 Slack 频道来接收这些通知。

  1. 在 NetScaler ADM 中,导航到 基础架构 > 事件 > 规则,然后单击 添加 以创建规则。

  2. 创建规则 页面上,设置规则参数,例如严重性和类别。选择必须监控的实例和故障对象。

  3. 事件规则操作 下,单击 添加操作。然后,从 操作类型 列表中选择 发送 Slack 通知,并选择 Slack 配置文件列表

  4. 您还可以通过单击 Slack 配置文件列表 字段旁边的 添加 来添加 Slack 配置文件列表。

  5. 键入以下参数以创建配置文件列表:

    1. 配置文件名称。键入要在 NetScaler ADM 上配置的配置文件列表的名称。

    2. 频道名称。键入要发送事件通知的 Slack 频道名称。

    3. Webhook URL。键入您之前输入的频道的 Webhook URL。传入 Webhook 是一种将消息从外部源发布到 Slack 的简单方法。该 URL 在内部链接到频道名称,所有事件通知都发送到此 URL,以发布到指定的 Slack 频道。Webhook 示例如下:https://hooks.slack.com/services/T0******E/B9X55DUMQ/c4tewWAiGVTT51Fl6oEOVirK

  6. 单击 创建,然后在 添加事件操作 窗口中单击 确定

注意:

您还可以通过导航到 系统 > 通知 > Slack 配置文件 来添加 Slack 配置文件。单击 添加 并按照前面部分中的说明创建配置文件。

您可以查看已创建的 Slack 配置文件的状态。

现在,您的事件规则已创建,其中包含适当的筛选器和定义明确的事件规则操作。

从 NetScaler ADM 设置 PagerDuty 通知

您可以在 NetScaler ADM 中添加 PagerDuty 配置文件作为选项,以根据您的 PagerDuty 配置监控事件通知。PagerDuty 使您能够通过电子邮件、短信、推送通知和注册号码上的电话呼叫来配置通知。

在 NetScaler ADM 中添加 PagerDuty 配置文件之前,请确保您已在 PagerDuty 中完成所需的配置。有关详细信息,请参阅 PagerDuty 文档

您可以选择您的 PagerDuty 配置文件作为以下功能的通知选项之一:

  • 事件 – 为 NetScaler 实例生成的事件列表。

  • 许可证 – 当前处于活动状态、即将过期等的许可证列表。

  • SSL 证书 – 添加到 NetScaler 实例的 SSL 证书列表。

在 ADM 中添加 PagerDuty 配置文件:

  1. 使用管理员凭据登录到 NetScaler ADM。

  2. 导航到 设置 > 通知 > PagerDuty 配置文件

  3. 单击 添加 以创建新配置文件。

  4. 在“创建 PagerDuty 配置文件”页面中:

    1. 提供您选择的配置文件名称。

    2. 输入 集成密钥

      您可以从 PagerDuty 门户获取集成密钥。

    3. 单击 创建

    用例

    考虑以下场景:

    • 您希望将通知发送到您的 PagerDuty 配置文件。

    • 您已在 PagerDuty 中将电话呼叫配置为接收通知的选项。

    • 您希望获取 NetScaler 事件的电话呼叫警报。

    要配置:

    1. 导航到 事件 > 规则

    2. 创建规则 页面上,配置所有其他参数以创建规则。

    3. 创建规则操作 下,单击 添加操作

      此时将显示“添加事件操作”页面。

      1. 操作类型 下,选择 发送 PagerDuty 通知

      2. 选择您的 PagerDuty 配置文件,然后单击 确定

配置完成后,每当为 NetScaler 实例生成新事件时,您都会收到电话呼叫。通过电话呼叫,您可以决定:

  • 确认事件

  • 将其标记为已解决

  • 上报给其他团队成员

从 NetScaler ADM 自动生成 ServiceNow 事件

您可以通过在 NetScaler ADM GUI 上选择 ServiceNow 配置文件,为 NetScaler ADM 事件自动生成 ServiceNow 事件。您必须在 NetScaler ADM 中选择 ServiceNow 配置文件才能配置事件规则。

在配置事件规则以自动生成 ServiceNow 事件之前,请将 NetScaler ADM 与 ServiceNow 实例集成。有关详细信息,请参阅配置适用于 ServiceNow 的 ITSM 适配器

要配置事件规则,请导航到 事件 > 规则

  1. 创建规则 页面上,配置所有其他参数以创建规则。

  2. 创建规则操作 下,单击 添加操作

    此时将显示“添加事件操作”页面。

    1. 操作类型 中,选择 发送 ServiceNow 通知

    2. ServiceNow 配置文件 中,从列表中选择 Citrix_Workspace_SN 配置文件。

    3. 单击 确定