XenServer

警报

您可以将 XenServer® 配置为根据任何可用的主机或 VM 指标生成警报。此外,XenServer 还提供预配置警报,这些警报会在主机出现特定条件和状态时触发。

查看警报

您可以使用 XenCenter® 或 xe CLI 查看这些警报:

  • 要在 XenCenter 中查看警报,请单击“通知”,然后单击“警报”。

    “警报”视图显示各种类型的警报,包括性能警报、系统警报、软件更新警报、许可证警报和 VM 反关联组警报。有关详细信息,请参阅(/zh-cn/xencenter/current-release/systemalerts)。

  • 要使用 xe CLI 查看警报,请键入xe message-list。

    您可以通过指定其他参数来缩小警报列表,例如:

    • 指定要列出的警报的优先级:xe message-list priority=<priority>
    • 指定警报是与池相关还是与 VM 相关:xe message-list class=<Pool|VM>
    • 指定警报类型的名称:xe message-list name=<alert_name>。有关部分可用警报类型的列表,请参阅(#system-alerts)。

您还可以将环境配置为通过电子邮件发送警报。有关详细信息,请参阅(#receive-alerts-through-email)。

性能警报

当受管主机、VM 或存储库 (SR) 上的以下任何值超过指定阈值时,可以生成性能警报:CPU 使用率、网络使用率、内存使用率、控制域内存使用率、存储吞吐量或 VM 磁盘使用率。

默认情况下,警报重复间隔设置为 60 分钟,如有必要可以修改。警报显示在 XenCenter 的“通知”区域中的“警报”页面上。您还可以将 XenCenter 配置为针对任何指定的性能警报以及其他严重系统警报发送电子邮件。

使用 xe CLI 配置的任何自定义警报也会显示在 XenCenter 的警报页面上。

每个警报都有相应的优先级/严重性级别。您可以修改这些级别,并可选择在警报触发时接收电子邮件。默认警报优先级/严重性设置为 3。

优先级 名称 描述 默认电子邮件警报
1 严重 立即采取行动,否则数据可能会永久丢失/损坏。 是
2 主要 立即采取行动,否则某些服务可能会失败。 是
3 警告 立即采取行动,否则服务可能会受到影响。 是
4 次要 注意到某些方面刚刚有所改善。 否
5 信息 日常信息(虚拟机启动、停止、恢复等) 否
? 未知 未知错误 否

使用 XenCenter 配置性能警报

  1. 在资源窗格中,选择相关的主机、VM 或 SR,然后单击常规选项卡,再单击属性。

  2. 选择警报选项卡。下表总结了主机、VM 或 SR 可用的警报:

    警报名称 主机 虚拟机 SR 描述
    生成 CPU 使用率警报 X X   设置触发警报的 CPU 使用率和时间阈值。
    生成控制域 CPU 使用率警报 X     设置触发警报的控制域 CPU 使用率和时间阈值。
    生成内存使用情况警报 X     设置触发警报的内存使用情况和时间阈值。
    生成控制域内存使用情况警报 X     设置触发警报的控制域内存使用情况和时间阈值。
    生成控制域可用内存警报 X     设置触发警报的控制域可用内存和时间阈值。
    生成磁盘使用情况警报   X   设置触发警报的磁盘使用情况和时间阈值。
    生成存储吞吐量警报     X 设置触发警报的存储吞吐量和时间阈值。注意:物理块设备 (PBD) 表示特定 XenServer 主机与连接的 SR 之间的接口。当 PBD 上的总读/写 SR 吞吐量活动超过您指定的阈值时,将在连接到 PBD 的主机上生成警报。与其他 XenServer 主机警报不同,此警报必须在 SR 上配置。
    生成网络使用情况警报 X X   设置触发警报的网络使用情况和时间阈值。

    要更改警报重复间隔,请在“警报重复间隔”框中输入分钟数。当达到警报阈值并生成警报后,在警报重复间隔过去之前,不会生成另一个警报。

  3. 单击“确定”保存更改。

有关如何查看、筛选和配置性能警报严重性的详细信息,请参阅 XenCenter 文档中的配置性能警报。

使用 xe CLI 配置性能警报

注意:

警报触发器以至少五分钟的间隔进行检查。此间隔可避免系统因检查这些条件和报告误报而承受过大的负载。将警报重复间隔设置为小于五分钟,警报仍将以五分钟的最小间隔生成。

性能监控 perfmon 工具每五分钟运行一次,并请求 XenServer 提供更新,这些更新是超过一分钟的平均值。这些默认值可以在 /etc/sysconfig/perfmon 中更改。

perfmon 工具每五分钟读取一次在同一主机上运行的性能变量的更新。这些变量分为一个与主机本身相关的组,以及一个用于在该主机上运行的每个 VM 的组。对于每个 VM 和主机,perfmon 读取参数 other-config:perfmon 并使用此字符串来确定要监视哪些变量以及在何种情况下生成消息。

例如,以下显示了通过将 XML 字符串写入参数 other-config:perfmon 来配置 VM“CPU 使用率”警报的示例:

xe vm-param-set uuid=vm_uuid other-config:perfmon=\

'<config>
    <variable>
        <name value="cpu_usage"/>
        <alarm_trigger_level value="0.5"/>
    </variable>
</config>'
<!--NeedCopy-->

注意:

您可以使用多个变量节点。

设置新配置后,使用以下命令刷新每个主机的 perfmon:

xe host-call-plugin host=host_uuid plugin=perfmon fn=refresh
<!--NeedCopy-->

如果未执行此刷新,新配置生效前会有延迟,因为默认情况下,perfmon 每 30 分钟检查一次新配置。此默认值可在 /etc/sysconfig/perfmon 中更改。

有效的 VM 元素

  • name:变量的名称(无默认值)。如果名称值为 cpu_usage、network_usage 或 disk_usage,则不需要 rrd_regex 和 alarm_trigger_sense 参数,因为将使用这些值的默认值。

  • alarm_priority:生成的警报的优先级(默认值 3)。

  • alarm_trigger_level:触发警报的值级别(无默认值)。

  • alarm_trigger_sense:如果 alarm_trigger_level 是最大值,则值为 high;否则,如果 alarm_trigger_level 是最小值,则值为 low(默认值 high)。

  • alarm_trigger_period:在发送警报之前,可以接收值(高于或低于警报阈值)的秒数(默认值为 60)。

  • alarm_auto_inhibit_period:发送警报后,此警报将被禁用的秒数(默认值为 3600)。

  • consolidation_fn:将 rrd_updates 中的变量组合成一个值。对于 cpu-usage,默认值为 average;对于 fs_usage,默认值为 get_percent_fs_usage;对于所有其他情况,默认值为 sum。

  • rrd_regex:匹配 xe vm-data-sources-list uuid=vm_uuid 中的变量名称,以计算性能值。此参数对命名变量具有默认值:

    • cpu_usage
    • memory_internal_free
    • network_usage
    • disk_usage

如果指定,xe vm-data-source-list返回的所有项中,其名称与指定的正则表达式匹配的项的值将使用consolidation_fn指定的方法进行整合。

有效主机元素

  • name: 变量名称(无默认值)。
  • alarm_priority: 生成警报的优先级(默认值 3)。
  • alarm_trigger_level: 触发警报的值级别(无默认值)。
  • alarm_trigger_sense: 当 alarm_trigger_level 是最大值时,该值为 high;否则,如果 alarm_trigger_level 是最小值,则为 low。(默认值 high)
  • alarm_trigger_period: 在发送警报之前,可以接收值(高于或低于警报阈值)的秒数(默认值 60)。
  • alarm_auto_inhibit_period: 发送警报后,警报被禁用的秒数。(默认值 3600)。
  • consolidation_fn: 将 rrd_updates 中的变量组合成一个值(默认值 sum - 或 average)
  • rrd_regex: 用于匹配 xe vm-data-source-list uuid=vm_uuid 命令返回的变量名称的正则表达式,以计算统计值。此参数对以下命名变量具有默认值:
    • cpu_usage
    • network_usage
    • memory_free_kib
    • sr_io_throughput_total_xxxxxxxx(其中 xxxxxxxx 是 SR-UUID 的前八个字符)。

SR 吞吐量:存储吞吐量警报必须在 SR 上配置,而不是在主机上配置。例如:

xe sr-param-set uuid=sr_uuid other-config:perfmon=\
'<config>
    <variable>
        <name value="sr_io_throughput_total_per_host"/>
        <alarm_trigger_level value="0.01"/>
    </variable>
</config>'
<!--NeedCopy-->

通用示例配置

以下示例显示了通用配置:

<config>
    <variable>
    <name value="NAME_CHOSEN_BY_USER"/>
    <alarm_trigger_level value="THRESHOLD_LEVEL_FOR_ALERT"/>
    <alarm_trigger_period value="RAISE_ALERT_AFTER_THIS_MANY_SECONDS_OF_BAD_VALUES"/>
    <alarm_priority value="PRIORITY_LEVEL"/>
    <alarm_trigger_sense value="HIGH_OR_LOW"/>
    <alarm_auto_inhibit_period value="MINIMUM_TIME_BETWEEN_ALERT_FROM_THIS_MONITOR"/>
    <consolidation_fn value="FUNCTION_FOR_COMBINING_VALUES"/>
    <rrd_regex value="REGULAR_EXPRESSION_TO_CHOOSE_DATASOURCE_METRIC"/>
    </variable>

    <variable>
    ...
    </variable>

    ...
</config>
<!--NeedCopy-->

系统警报

下表显示了在 XenCenter 的“警报”页面上触发警报显示的系统事件/条件。

名称 优先级/严重性 描述
license_expires_soon 2 XenServer 许可协议即将到期。
ha-statefile_lost 2 与高可用性存储库失去联系,请尽快处理。
ha-heartbeat_approaching_timeout 5 高可用性即将超时,除非采取措施,否则主机可能会重启。
ha_statefile_approaching_timeout 5 高可用性即将超时,除非采取措施,否则主机可能会重启。
haxapi_healthcheck_approaching_timeout 5 高可用性即将超时,除非采取措施,否则主机可能会重启。
ha_network_bonding_error 3 潜在的服务丢失。发送高可用性心跳的网络丢失。
ha_pool_overcommited 3 潜在的服务丢失。高可用性无法保证对已配置虚拟机的保护。
ha_poor_drop_in_plan_exists_for 3 高可用性覆盖率已下降,更可能发生故障,但目前尚未出现损失。
ha_protected_vm_restart_failed 2 服务丢失。高可用性未能重新启动受保护的虚拟机。
ha_host_failed 3 高可用性检测到主机发生故障。
ha_host_was_fenced 4 高可用性重新启动了主机,以防止虚拟机损坏。
redo_log_healthy 4 XAPI 重做日志已从之前的错误中恢复。
redo_log_broken 3 XAPI 重做日志遇到错误。
ip_configured_pif_can_unplug 3 使用高可用性时,XAPI 可以拔出已配置 IP 的网卡,这可能导致高可用性故障。
host_sync_data_failed 3 未能同步 XenServer 性能统计信息。
host_clock_skew_detected 3 主机时钟未与池中的其他主机同步。
host_clock_went_backwards 1 主机时钟已损坏。
pool_master_transition 4 一个新主机已被指定为池协调器。
pbd_plug_failed_on_server_start 3 主机在启动时未能连接到存储。
auth_external_init_failed 2 主机未能启用外部 AD 身份验证。
auth_external_pool_non-homogeneous 2 池中的主机具有不同的 AD 身份验证配置。
multipath_period_alert 3 到 SR 的路径已失败或已恢复。
链路聚合状态已更改 3 绑定中的一个链接已断开或重新连接。

软件更新警报

  • XenCenter 过旧: XenServer 期望使用较新版本,但仍可连接到当前版本
  • XenCenter 已过期: XenCenter 版本过旧,无法连接到 XenServer
  • XenServer 已过期: XenServer 是旧版本,当前 XenCenter 无法连接到它
  • 许可证过期警报: XenServer 许可证已过期
  • IQN 缺失警报: XenServer 使用 iSCSI 存储,但主机 IQN 为空
  • IQN 重复警报: XenServer 使用 iSCSI 存储,并且存在重复的主机 IQN

通过电子邮件接收警报

您可以将 XenServer 配置为在 XenServer 主机生成警报时发送电子邮件通知。XenServer 中的 mail-alarm 实用程序使用 sSMTP 发送这些电子邮件通知。您可以使用 XenCenter 或 xe 命令行界面 (CLI) 启用基本电子邮件警报。

使用不需要身份验证的 SMTP 服务器。通过需要身份验证的 SMTP 服务器发送的电子邮件无法送达。

使用 XenCenter 启用电子邮件警报

  1. 在 Resources 窗格中,右键单击池并选择 Properties。

  2. 在 Properties 窗口中,选择 Email Options。

  3. 选中 Send email alert notifications 复选框。输入您首选的通知电子邮件目标地址和 SMTP 服务器详细信息。

  4. 从 Mail language 列表中选择您的首选语言。性能警报电子邮件的默认语言是英语。

使用 xe CLI 启用电子邮件警报

要配置电子邮件警报,请指定通知电子邮件的首选目标地址和 SMTP 服务器:

xe pool-param-set uuid=pool_uuid other-config:mail-destination=joe.bloggs@example.com
xe pool-param-set uuid=pool_uuid other-config:ssmtp-mailhub=smtp.example.com:<port>
<!--NeedCopy-->

XenServer 自动将发件人地址配置为 noreply@<hostname>。但是,您可以显式设置发件人地址:

xe pool-param-set uuid=pool_uuid other-config:mail-sender=serveralerts@example.com
<!--NeedCopy-->

当您开启电子邮件通知时,当生成优先级为 3 或更高的警报时,您会收到电子邮件通知。因此,默认的最低优先级级别是 3。您可以使用以下命令更改此默认设置:

xe pool-param-set uuid=pool_uuid other-config:mail-min-priority=level
<!--NeedCopy-->

注意:

某些 SMTP 服务器仅转发使用 FQDN 地址的邮件。如果您发现电子邮件未被转发,可能是由于此原因。在这种情况下,您可以将服务器主机名设置为 FQDN,以便在连接到邮件服务器时使用此地址。

要配置性能警报电子邮件的语言:

xe pool-param-set uuid=pool_uuid other-config:mail-language=ja-JP
<!--NeedCopy-->

性能警报电子邮件的默认语言是英语。

警报