Published on InterSystems Developer Community (https://community.intersystems.com)

主页 > 第六十二章 使用 SNMP 监控 IRIS

文章
姚 鑫 · 一月 31, 2023 阅读大约需 4 分钟

第六十二章 使用 SNMP 监控 IRIS

第六十二章 使用 SNMP 监控 IRIS

本附录描述了 IRIS 数据平台和 SNMP(简单网络管理协议)之间的接口。 SNMP 是一种通信协议,作为一种管理 TCP/IP 网络(包括单个网络设备和一般计算机设备)的方法已获得广泛接受。它的流行扩大了它作为许多企业管理工具的底层结构和协议的用途。这是它对 IRIS 的主要重要性:一种向各种管理工具提供管理和监控信息的标准方法。

SNMP 既是一种标准消息格式,也是管理对象的一组标准定义。它还提供用于添加自定义管理对象的标准结构,这是 IRIS 用来定义其管理信息以供其他应用程序使用的功能。

将 SNMP 与 IRIS 结合使用

SNMP 定义了客户端-服务器关系,其中客户端(网络管理应用程序)连接到在远程网络设备或计算机系统上执行的服务器程序(称为 SNMP 代理)。客户端请求并从该代理接收信息。有四种基本类型的 SNMP 消息:
- GET – 获取特定托管对象的数据
- GETNEXT – 获取分层树中下一个管理对象的数据,允许系统管理员遍历设备的所有数据
- SET——为特定的管理对象设置值
- TRAP——被管理设备或系统发送的异步警报

SNMP MIB(管理信息库)包含管理对象的定义。每个设备都会发布一个文件,也称为其 MIB,该文件定义了它支持的标准 MIB 的哪一部分,以及托管对象的任何自定义定义。对于 IRIS,这是位于 install-dir\SNMP 目录中的 ISC-IRIS.mib 文件。

IRIS 作为子代理

SNMP 客户端连接到 SNMP 代理,该代理正在侦听众所周知的地址端口 161。由于客户端希望连接到该特定端口,因此计算机系统上只能有一个 SNMP 代理。为了允许访问系统上的多个应用程序,开发人员可以实现主代理,它可以扩展或连接到多个子代理。 已将 IRIS SNMP 接口实施为子代理,旨在通过 SNMP 主代理进行通信。

IRIS 支持的大多数操作系统都提供一个 SNMP 主代理,它可以通过某种方式扩展以支持多个子代理。然而,这些代理中的许多都以专有且不兼容的方式实现了它们的可扩展性。 IRIS 使用代理扩展性 (AgentX) 协议实现其子代理,该协议是 IETF 提议的标准,如 RFC 2741中所述。

一些标准的 SNMP 主代理支持 AgentX。如果操作系统提供的 SNMP 主代理与 AgentX 不兼容,可以将其替换为公共域 Net-SNMP 代理。

注意:Windows 标准代理例外,它不支持 AgentX,Net-SNMP 版本可能不适合。对于这个例外,提供了一个 Windows 扩展代理 DLL,iscsnmp.dll,它处理标准 Windows SNMP 服务扩展 API 和 IRIS AgentX 服务器之间的连接。

在 IRIS 中管理 SNMP。

由于 SNMP 是标准协议, IRIS 子代理的管理是最少的。最重要的任务是验证系统上的 SNMP 主代理是否与代理扩展性 (AgentX) 协议兼容(请参阅 IRIS 作为子代理)并且它处于活动状态并正在侦听标准 AgentX TCP 端口 705 上的连接。 Windows系统,系统自动安装一个DLL来连接标准的Windows SNMP服务。验证 Windows SNMP 服务是否已自动或手动安装和启动。

重要提示:一些 SNMP 主代理,特别是 Linux 上的 Net-SNMP,默认情况下不启用 AgentX,并且一旦启用,默认情况下不使用 TCP 端口 705。对于 Net-SNMP,必须修改 snmpd.conf 文件以启用与 IRIS 子代理的通信。最新版本的 Net-SNMP 还实现了 VACM(基于视图的访问控制模型)安全性,默认情况下,只允许访问 mib-2.system 子树; IRIS 子代理启动并正常运行,但没有 SNMP 请求转发到 IRIS。必须扩展 snmpd.conf 中定义的“视图”以包括 IRIS MIB 子树。

接下来,使用以下步骤启用监控服务:
1. 导航到管理门户中的服务页面(系统管理 > 安全 > 服务)。
2. 单击 %Service_Monitor 服务。
3. 选中启用服务复选框并单击保存。
4. 返回到服务列表页面并确保启用了 %Service_Monitor 服务。

最后,使用以下步骤将 IRIS SNMP 子代理配置为在 IRIS 启动时自动启动:

  1. 导航到管理门户中的监控设置页面(系统管理 > 配置 > 其他设置 > 监控)。
  2. 为系统启动时启动 SNMP 代理设置选择是,然后单击保存。
  3. 当编辑此设置时,SNMP 接口的 IRIS 端会立即停止和启动。

还可以使用 ^SNMP 例程手动或以编程方式启动和停止 IRIS SNMP 子代理:

Do start^SNMP(<port>,<timeout>)
Do stop^SNMP

其中 <port> 是连接的 TCP 端口(默认为 705),<timeout> 是 TCP 端口读取超时值(默认为 20 秒)。在达到 <timeout> 值之前, IRIS 会在 install-dir\mgr 目录下的 SNMP.LOG 文件中记录在建立连接或应答请求时遇到的任何问题。

注意:当 SNMP 主代理重新启动时,可能需要使用 ^SNMP 例程手动重新启动 IRIS SNMP 子代理,如前所述。

#Caché

源 URL:https://cn.community.intersystems.com/post/%E7%AC%AC%E5%85%AD%E5%8D%81%E4%BA%8C%E7%AB%A0-%E4%BD%BF%E7%94%A8-snmp-%E7%9B%91%E6%8E%A7-iris