文章
· 二月 2, 2023 阅读大约需 4 分钟

第六十四章 使用 SNMP 监控 IRIS - 扩展 InterSystems IRIS MIB

第六十四章 使用 SNMP 监控 IRIS - 扩展 IRIS MIB

应用程序员可以添加托管对象定义并扩展 IRIS 子代理为其提供数据的 MIB。这不是一个完整的 MIB 编辑器或SNMP 工具包;相反,它是一种添加简单应用程序指标的方法,可以通过 SNMP 浏览或查询这些指标。

注意:对象必须遵循基本的 IRIS SNMP 结构,对 SNMP 表结构的支持有限(仅支持整数值索引),并且不会创建 SNMP 陷阱(请参阅新选项卡类中的 %Monitor.AlertOpens) 对管理信息的 SNMP 结构有一个基本的了解是很有帮助的。

要创建这些对象,请执行以下操作:

  1. 在继承 %Monitor.Adaptor 的类中创建 IRIS 对象定义。
  2. 执行 SNMP 类方法以在 SNMP 中启用这些被管理对象,并创建 MIB 定义文件供管理应用程序使用。实现此目的的方法是 MonitorTools.SNMP.CreateMIB()

该方法为 %Monitor 数据库中定义的特定应用程序创建私有企业 MIB 树的一个分支。除了为应用程序创建实际的 MIB 文件之外,该方法还创建了 MIB 树的内部轮廓。 IRIS 子代理使用它来注册 MIB 子树,为 GETNEXT 请求遍历树,并引用特定对象方法以在 GET 请求中收集实例数据。

所有托管对象定义都使用与 IRIS 企业 MIB 树相同的通用组织,即:application.objects.table.row.item.indices。所有表格的第一个索引是 IRIS 应用程序 ID。所有应用程序都必须向 IANA 注册以获得自己的私有企业编号,这是 CreateMIB() 方法中的参数之一。

要禁用 SNMP 中的应用程序,请使用 MonitorTools.SNMP.DeleteMIB() 方法。这会删除应用程序 MIB 的内部轮廓,因此 IRIS 子代理不再注册或回答对该私有企业 MIB 子树的请求。

IRIS SNMP 陷阱

除了通过 SNMP 查询提供的对象数据和指标外, IRIS 还可以发送异步警报或 SNMP 陷阱。下表描述了 IRIS 特定的 SNMP 陷阱。

IRIS SNMP 通知对象(陷阱)

Trap Name (Number) Description
irisStart (1) IRIS 实例已启动。
irisStop (2) IRIS 实例正在关闭。
irisDBExpand (3) IRIS 数据库已成功扩展。
irisDBOutOfSpace (4) IRIS 数据库的未来扩展可能会受到限制;文件系统上的可用空间不足,无法再扩展 10 次,或者可用空间不足 50 MB
irisDBStatusChange (5) IRIS 数据库的读/写状态已更改。
irisDBWriteFail (6) 写入 IRIS 数据库失败。它包括写入失败的 IRIS 错误代码。
irisWDStop (7) IRIS 实例的写入守护进程已停止。
irisWDPanic (8) IRIS 实例的写入守护进程已进入“恐慌panic”模式;也就是说,写入守护进程缓冲区不足,必须将数据库块直接写入磁盘,而无需先将它们提交到写入映像日志 (WIJ) 文件。
irisLockTableFull (9) IRIS 实例的锁表已满,导致后续 Locks 失败。
irisProcessFail (10) 进程异常退出 IRIS(由于访问冲突)。
irisECPTroubleDSrv (11) IRIS 数据库与此 ECP 数据服务器的连接遇到了严重的通信问题。
irisECPTroubleASrv (12) 从该 ECP 应用程序服务器到远程 IRIS 数据库的连接遇到了严重的通信问题。
irisAuditLost (13) IRIS 未能记录审核事件。最可能的原因是审计数据库的空间有问题,这需要操作员的帮助。
irisLoggedError (14) messages.log 文件中记录了一个“严重”错误。此陷阱包括在 irisSysErrorMsg 中定义的错误消息。
irisLicenseExceed (15) 许可证请求已超出当前可用或允许的许可证数量。
irisEventLogPost (16) 互操作性事件日志中发布的条目。
irisAppAlert (100) 这是一个通用陷阱, IRIS 应用程序可以使用它通过 SNMP 生成警报。有关如何使用此陷阱的详细信息,请参阅 %Monitor.Alert.External 类方法。

下表描述了可以在上表中描述的陷阱中发送的 IRIS 特定辅助对象。

Auxiliary Object Name (Number) Description
irisDBWriteError (1) 数据库写入失败的 IRIS 特定错误代码。可能的值为:<DATABASE><DISKHARD><BLOCKNUMBER><FILEFULL><DATABASE MAP LABEL>
irisApp (2) 一个短文本字符串(最多 20 个字符),用于标识生成(或来源)irisAppAlert 陷阱的应用程序。
irisAppSeverity (3) 指示 irisAppAlert 陷阱问题严重性的代码。代码可以是 0(信息)、1(警告)、2(严重)或 3(严重)。
irisApptext (4) 导致 irisAppAlert 陷阱的问题、错误或事件的文本字符串描述(最多 1024 个字符)。
讨论 (0)1
登录或注册以继续