文章
Michael Lei · 六月 23 阅读大约需 15 分钟

最低限度的监控和警报解决方案

InterSystems 数据平台包括了用于系统监视和警报的实用程序及工具,但对于不熟悉构建于 InterSystems 数据平台(又名 Caché)的解决方案的系统管理员来说,他们需要知道从何处下手以及需要配置什么。

本指南以在线文档和开发者社区帖子为参考,介绍了实现最低限度的监视和警报解决方案的途径,以及如何启用和配置以下组件:

  1. Caché Monitor:扫描控制台日志并发送电子邮件警报。

  2. System Monitor:监视系统状态和资源,根据固定参数生成通知(警报和警告),同时跟踪整体系统运行状况。

  3. Health Monitor:对主要的系统和用户定义指标进行采样,并将它们与用户可配置的参数和既定的标准值进行比较,在样本超过适用或学习的阈值时生成通知。

  4. History Monitor:维护性能指标和系统使用情况指标的历史数据库。

  5. pButtons:每天按计划收集操作系统指标和 Caché 指标。

请记住,本指南是最低配置,所包含的工具灵活且可扩展,因此可在需要时提供更多功能。 本指南跳过了文档,让您直接上手。 您需要更深入地研究文档才能充分利用监视工具,同时,请考虑将本指南作为启动和运行的速查表。

1. Caché Monitor

控制台日志 (install-directory/mgr/cconsole.log) 必须被监视,可以通过第三方工具扫描日志文件,或者像我们这样使用附带的 Caché Monitor 实用工具将警报发送到一个电子邮件地址。

控制台日志是其他监视工具(包括 Caché System Monitor 和 Caché Health Monitor)用于编写警报和通知的中央存储库。

至少将 Caché Monitor 配置为向一个电子邮件发送警报。

使用 ^MONMGR 实用工具管理 Caché Monitor。

Caché Monitor 基本设置

Caché Monitor 扫描控制台日志,并根据可配置的消息严重级别生成通知。 通知通过电子邮件发送到您配置的收件人列表。 默认扫描周期为每 10 秒一次,但可以更改。

提示:将 Caché Monitor 警报严重级别配置为 1(警告、严重和致命条目)。 如果您发现收到的警报太多,可以降回到警报级别 2(严重和致命条目)。

当 60 秒内有一系列条目来自一个给定进程时,只会针对第一个条目生成通知,然后暂停一小时。 因此,当出现问题时,必须进行调查。 因为没有新消息并不表示事件已过去。 此规则的例外是 Caché Monitor 错误和陷阱中列出的控制台日志条目,会针对其中所有条目生成通知。

有关完整的配置详细信息,请参见 ^MONMGR 的在线文档。

Caché Monitor 速查表

启用 Caché Monitor 不需要很多操作。 确保 Monitor 已启动,然后设置电子邮件选项。

%SYS>d ^MONMGR
1) Start/Stop/Update MONITOR
2) Manage MONITOR Options
3) Exit
Option? **1**

1) Update MONITOR
2) Halt MONITOR
3) Start MONITOR
4) Reset Alerts
5) Exit
Option? **3**

Starting MONITOR... MONITOR started
1) Update MONITOR
2) Halt MONITOR
3) Start MONITOR
4) Reset Alerts
5) Exit
Option? **<return>**

设置警报严重级别。

1) Start/Stop/Update MONITOR
2) Manage MONITOR Options
3) Exit
Option? **2**

1) Set Monitor Interval
2) Set Alert Level
3) Manage Email Options
4) Exit
Option? **2**

Alert on Severity (1=warning,2=severe,3=fatal)? 2 => **1**

设置电子邮件选项,您可能需要联系 IT 部门以获取电子邮件服务器的地址。 任何有效的电子邮件地址都应该可用。

1) Set Monitor Interval
2) Set Alert Level
3) Manage Email Options
4) Exit
Option? **3**

1) Enable/Disable Email
2) Set Sender
3) Set Server
4) Manage Recipients
5) Set Authentication
6) Test Email
7) Exit
Option?

确保在设置后测试电子邮件(选项 6)。

Caché Monitor 示例

Caché System Monitor 针对高 CPU 利用率生成了一个严重级别为 2 的条目,该条目已发送到 cconsole.log:

03/07/18-11:44:50:578 (4410) 2 [SYSTEM MONITOR] CPUusage Alert: CPUusage = 92, 95, 98 (Max value is 85).

同时也向 Caché Monitor 电子邮件收件人发送了一封电子邮件,其内容与 console.log 相同,主题行为:

[CACHE SEVERE ERROR yourserver.name.com:instancename] [SYSTEM MONITOR] CPUusage Alert: CPUusage = 92, 95, 98 (Max value is 85).

Caché Monitor 更多提示

在开发者社区的另一篇文章的评论中,Aric West 提示可以在发件人电子邮件中嵌入更多信息,例如,不要只设置一个有效的电子邮件,而是将发件人或收件人设置为:"某个名字" \<valid@emailAddress.com>


Caché System Monitor 工具

Caché System Monitor 是一系列监视工具的汇总,通过 ^%SYSMONMGR 实用工具进行配置。 如简介中所述,为实现最低限度的监视解决方案,我们将配置:

  • System Monitor
  • Health Monitor
  • History Monitor

顺带说一下,是的,名称 System Monitor 很令人烦恼地重载了其父名称 Caché System Monitor

Caché System Monitor 和 Health Monitor 通知和警报会发送到控制台日志,使 Caché Monitor(在上一节中设置)可以在事件发生时生成电子邮件。

有关 Caché System Monitor 的所有深入详细信息,请参见在线文档。


警告说明:您还将在 ^%SYSMONMGR 菜单中看到 Application Monitor。 本指南中不会配置 Application Monitor。 本指南中介绍的工具和实用程序对系统性能的影响可以忽略不计,然而 Application Monitor 有一些类是此规则的例外。 有关详细信息,请参见 ^PERFMON 实用工具的文档。 如果您使用 Application Monitor,则必须先在非生产系统上测试,因为运行任何时长的 ^PERFMON 都可能对性能产生重大影响。


2. System Monitor

根据文档:“System Monitor 对重要的系统状态和资源使用指标(例如 ECP 连接的状态和使用中的锁表的百分比)进行采样,并根据固定状态和阈值生成通知(警报、警告和‘状态正常’消息)”。

文档中有 System Monitor 状态和资源指标的列表。 例如:日志空间(日志目录中的可用空间):

  • 少于 250 MB = 警告
  • 少于 50 MB = 警报
  • 警告/警报后大于 250 MB = 正常

System Monitor 基本设置

System Monitor 警报和警告会写入控制台日志,因此请确保 Caché Monitor 设置为发送电子邮件警报(上一节)。

使用 ^SYSMONMGR 实用工具管理 System Monitor。 默认情况下,当实例运行时,System Monitor 也一直运行;可以使用 ^%SYSMONMGR 将其停止,但是当实例下次启动时,它会自动再次启动。

默认情况下,System Monitor 具有以下可以更改的设置:

  • 每 30 秒获取一次传感器指标。
    • 仅将警报、警告和消息写入 System Monitor 日志。

System Monitor 还维护单一整体系统运行状况状态,当运行 ccontrol list 等命令时可以查询或使用该状态:

  • 绿色(正常)
  • 黄色(警告)
  • 红色(警报)

System Monitor 速查表

对于最低限度的监视解决方案,实际上无需任何操作,因为当实例运行时,它也一直运行。


3. Health Monitor

根据文档:“Caché Health Monitor 通过在特定期间对一系列关键指标的值进行采样,并将这些值与配置的指标参数和这些期间的既定标准值进行比较,来监视正在运行的 Caché 实例;如果采样值过高,Health Monitor 将生成警报或警告。 例如,根据配置的 CPU 使用率最大值或者在星期一上午 9:00 至 11:30 期间采集的标准 CPU 使用率样本,如果 Health Monitor 在星期一上午 10:15 采样的 CPU 使用率过高,Health Monitor 将生成通知。”

Health Monitor 对 41 个系统传感器进行采样,文档中给出了列表和默认值。

Health Monitor 警报(严重级别 2)和警告(严重级别 1)将写入控制台日志。 Health Monitor 生成:

  • 警报,如果在一个期间内传感器的三次连续读数大于传感器最大值。
  • 警告,如果在一个期间内传感器的五次连续读数大于传感器警告值。

对于为最大值或警告值设置了条目的传感器,即使 Health Monitor 本身未启用,也会立即生成警报。 例如,为 CPU 配置的最大值为 85,警告值为 75,所以当连续 5 次的 CPU 利用率测量值超过 75% 时,会将以下通知发送到控制台日志:

1 [SYSTEM MONITOR] CPUusage Warning: CPUusage = 83 ( Warnvalue is 75).

其他传感器需要收集足够长时间的指标才能创建图表。 需要图表来评估指标的平均值,从而得出标准偏差 (sigma),以便在值超出正常范围时发出警报。 在一个期间内收集指标。 有 63 个标准期间,一个期间示例是星期一上午 9:00 至 11:30。 期间可以更改。

Health Monitor 基本设置

Health Monitor 不会自动启动,需要使用 ^%SYSMONMGR 中的设置来启用它。

默认情况下,Health Monitor 在 Caché 启动后等待 10 分钟,以便系统达到正常运行状态,如果需要,可以更改此时间。

Caché Health Monitor 传感器对象带有默认值。 例如,如上文所述,CPUPct(系统 CPU 使用率百分比)的默认值为:基础值 50,最大值 90,警告值 80。

您可能更保守一些,并想要更改这些值,使用 ^%SYSMONMGR 可以更改这些值,例如,最大值 85,警告值 70。 现在,当 CPU 使用率达到 99% 时,我们会看到:

2 [SYSTEM MONITOR] CPUusage Alert: CPUusage = 99, 99, 99 (Max value is 85).

Health Monitor 速查表

该速查表相当长,显示在总结后面。


4. History Monitor

David Loveluck 在社区上有一个非常好的帖子。按照该帖中的说明启动 History Monitor,开始收集和评估指标。


5. pButtons

pButtons 实用工具可根据其创建的日志文件生成可读的 HTML 性能报告,其中包含操作系统和 Caché 指标。 pButtons 输出的性能指标可以被提取、绘图和评估。 例如,一天中 CPU 利用率或 Caché 数据库访问量的图表。

每天 24 小时运行 pButtons 收集是一种简单但至关重要的方法,用于收集指标以进行故障排除。 pButtons 对于趋势分析也非常有用。 以下社区文章详细介绍了 pButtons 以及如何将其计划为每天运行:InterSystems 数据平台和性能 – 第 1 部分

如文章中所述,30 秒收集间隔对于趋势分析和 24 小时报告是合适的。

还有说明用于确保您即使没有运行最新版的 Caché,也能拥有最新版的 pButtons:InterSystems 数据平台和性能 – 如何更新 pButtons

虽然 pButtons 主要是一个支持工具,但您可以通过快速绘制所收集的指标来获得宝贵的系统使用情况洞察:Yape - 另一个 pButtons 提取程序(自动创建图表)


总结

本帖仅触及了监控选项的皮毛,例如 Health Monitor 将以默认设置工作,但随着时间的推移,您将希望探索可自定义的选项来满足您的应用程序配置文件。

接下来的方向?

如我们所见,我们将 System Monitor 和 Health Monitor 实用工具配置为将警报发送到作为中央报告位置的 cconsole.log。 我们使用了 Caché Monitor 将这些警报发送到电子邮件。 有一些第三方工具可以抓取日志并消耗非结构化的日志数据,您可能已经在组织中使用这些工具,而且也没有理由不使用它们。

如今,我看到许多客户在 VMware 上进行虚拟化。 如果您使用 vSphere,请考虑使用 Log Insight 来监视控制台日志。 在撰写本帖时(2018 年 3 月),对于您拥有的每个 vCenter Server 6.0 实例,您都有资格获取一个免费的 vRealize Log Insight for vCenter 25 OSI 许可证。 Log insight 是一个读取非结构化数据的工具,用于日志管理和分析 — 例如,您可以将其与 cconsole.log 配合使用 — 如果您对此感兴趣,请联系 VMware 以了解更多信息。 同时,我正计划在将来的帖子中展示如何将 Log Insight 与 cconsole.log 配合使用。


如果您在收集指标,您仍然需要研究它们,并了解他们的含义,我将继续发帖来展示如何解释所呈现的信息,特别是性能指标。


应用程序性能监视

David Loveluck 在社区中有一系列关于应用程序性能监视的帖子,请在社区中搜索 APM,或者从这里开始


附录:Health Monitor 速查表

本速查表展示了我们在第 3 节看到的 Health Monitor 的启动过程,并完成了传感器阈值的编辑。

首先让我们启动 Health Monitor。

%SYS>**d ^%SYSMONMGR**

1) Start/Stop System Monitor
2) Set System Monitor Options
3) Configure System Monitor Classes
4) View System Monitor State
5) Manage Application Monitor
6) Manage Health Monitor
7) View System Data
8) Exit
Option? **6**

1) Enable/Disable Health Monitor
2) View Alerts Records
3) Configure Health Monitor Classes
4) Set Health Monitor Options
5) Exit
Option? **1**

Enable Health Monitor? No => **yes**
Health Monitor is Enabled. Stop and restart System Monitor to run Health Monitor

如我们从消息中所见,导航回到第一个菜单或再次启动 ^%SYSMONMGR 来停止 System Monitor 并再次启动它,以完成这一过程。

%SYS>**d ^%SYSMONMGR**

1) Start/Stop System Monitor
2) Set System Monitor Options
etc...

我们将在这里继续,以编辑 CPUPct 阈值为例。

%SYS>**d ^%SYSMONMGR**

1) Start/Stop System Monitor
2) Set System Monitor Options
3) Configure System Monitor Classes
4) View System Monitor State
5) Manage Application Monitor
6) Manage Health Monitor
7) View System Data
8) Exit
Option? **6**

1) Enable/Disable Health Monitor
2) View Alerts Records
3) Configure Health Monitor Classes
4) Set Health Monitor Options
5) Exit
Option? **3**

1) Activate/Deactivate Rules
2) Configure Periods
3) Configure Charts
4) Edit Sensor Objects
5) Reset Defaults
6) Exit
Option? **4**

先看一下所有传感器;

1) List Sensor Objects
2) Edit Sensor Object
3) Exit
Option? **1**

Sensor                        Base      Max       Max M     Warn      Warn M
--                        ----      ---       -----     ----      ------
CPUPct                        50        80        0         70        0
CPUusage                      50        85        0         75        0
CSPActivity                   100       0         2         0         1.6
:
: <Big list of sensors goes here>
:
WDWIJTime                     60        0         2         0         1.6
WDWriteSize                   1024      0         2         0         1.6

1) List Sensor Objects
2) Edit Sensor Object
3) Exit
Option? **2**
Cannot configure while System Monitor is running.

1) List Sensor Objects
2) Edit Sensor Object
3) Exit

噢,我们需要先返回并禁用 Health Monitor 和 System Monitor。

1) Enable/Disable Health Monitor
2) View Alerts Records
3) Configure Health Monitor Classes
4) Set Health Monitor Options
5) Exit
Option? **1**

Disable Health Monitor? No => **yes**
Health Monitor is Disabled. Stop and restart System Monitor to halt Health Monitor

1) Enable/Disable Health Monitor
2) View Alerts Records
3) Configure Health Monitor Classes
4) Set Health Monitor Options
5) Exit
Option?**<return>**

1) Start/Stop System Monitor
2) Set System Monitor Options
3) Configure System Monitor Classes
4) View System Monitor State
5) Manage Application Monitor
6) Manage Health Monitor
7) View System Data
8) Exit
Option? **1**

1) Start System Monitor
2) Stop System Monitor
3) Exit
Option? **2**

Stopping System Monitor... System Monitor stopped

好了,Health Monitor 和 System Monitor 已停止。 现在导航回到 Health Monitor 并编辑一个传感器对象。

1) Start System Monitor
2) Stop System Monitor
3) Exit
Option?**<return>**

1) Start/Stop System Monitor
2) Set System Monitor Options
3) Configure System Monitor Classes
4) View System Monitor State
5) Manage Application Monitor
6) Manage Health Monitor
7) View System Data
8) Exit
Option? **6**

1) Enable/Disable Health Monitor
2) View Alerts Records
3) Configure Health Monitor Classes
4) Set Health Monitor Options
5) Exit
Option? **3**

1) Activate/Deactivate Rules
2) Configure Periods
3) Configure Charts
4) Edit Sensor Objects
5) Reset Defaults
6) Exit
Option? **4**

1) List Sensor Objects
2) Edit Sensor Object
3) Exit
Option? **2**

输入传感器名称(如果您知道的话),否则输入“?”以显示列表。 传感器? ?

 Num  Sensor                         Threshold
  1)  CPUPct
  2)  CPUusage
:
: <Big list of sensors goes here>
:
 46)  WDWIJTime
 47)  WDWriteSize

Sensor? **1** CPUPct
Base? 50 =>**<return>**
Enter either an Alert Value or a Multiplier
Alert Value? 80 => **85**
Setting Max Multiplier and Warn Multiplier to 0. Enter a Warn Value
Warn Value? 70 => **75**
Sensor object CPUPct updated.
Base           50
MaxMult        0
AlertValue     85
WarnMult       0
WarnValue      75

1) List Sensor Objects
2) Edit Sensor Object
3) Exit

现在返回并启用 Health Monitor 和启动 System Monitor。

Option?**<return>**

1) Activate/Deactivate Rules
2) Configure Periods
3) Configure Charts
4) Edit Sensor Objects
5) Reset Defaults
6) Exit
Option?**<return>**

1) Enable/Disable Health Monitor
2) View Alerts Records
3) Configure Health Monitor Classes
4) Set Health Monitor Options
5) Exit
Option? **1**

Enable Health Monitor? No => **yes**
Health Monitor is Enabled. Stop and restart System Monitor to run Health Monitor

1) Enable/Disable Health Monitor
2) View Alerts Records
3) Configure Health Monitor Classes
4) Set Health Monitor Options
5) Exit
Option?**<return>**

1) Start/Stop System Monitor
2) Set System Monitor Options
3) Configure System Monitor Classes
4) View System Monitor State
5) Manage Application Monitor
6) Manage Health Monitor
7) View System Data
8) Exit
Option? **1**

1) Start System Monitor
2) Stop System Monitor
3) Exit
Option? **1**

Starting System Monitor... System Monitor started

好了,工作已完成!


00
2 0 0 31
Log in or sign up to continue