文章
· 六月 19, 2023 阅读大约需 5 分钟

IRIS通过SNMP发送警告通知的操作

上篇文章IRIS, Caché监控指导 - 警告和告警 发出后收到要求介绍一下发送SNMP通知的具体操作,这里介绍一下。

我省去了SNMP的原理,这个有需要的可以网上查找。这里只做一个配置的操作:测试怎么从一个Windows上安装的IRIS实例发送IRIS Alert给另一台Linux服务器。

第一步: 配置 Windows SNMP

因为安全原因,Windows 10不再默认安装中启动SNMP,用户需要手工安装SNMP启动服务。以下两个文章是古老的Window 2003和新的Windows 10中配置SNMP的安装,给各位做个参考。

简单的总结一下:Windows系统中有两个服务:

  • SNMP Service:使简单网络管理协议(SNMP)请求能够在此计算机上被处理。如果此服务停止,计算机将不能处理 SNMP 请求。如果此服务被禁用,所有明确依赖它的服务都将不能启动。
  • SNMP Trap:接收本地或远程简单网络管理协议 (SNMP) 代理程序生成的陷阱消息并将消息转发到此计算机上运行的 SNMP 管理程序。如果此服务被停用,此计算机上基于 SNMP 的程序将不会接收 SNMP trap 消息。如果此服务被禁用,任何依赖它的服务将无法启动。

当前我需要从本机向远端发送SNMP, 所以只需要开启SNMP Service即可。然后需要配置SNMP Service的:

  • Community名称
  • 发送Trap的目的地址
  • Community的权限(在”安全”子页面配置,权限为读写,应该选中“发送身份验证Trap”)

如下图,Commnity是”public”, 发送trap到172.16.58.1和172.16.58.101, 分别是两台远端的服务器。

第二步: 配置IRIS SNMP

在Windows系统注册iscsnmp.dll

Windows系统中,如果IRIS安装在SNMP服务安装之前, 需要手工执行以下命令来注册iscsnmp.dll到Windows Registry。命令成功执行后要重启操作系统的SNMP Service。

打开IRIS Terminal工具,在%SYS命名空间执行:

SYS>set myStatus=$$Register^SNMP()
Cache SNMP Extension Agent DLL successfully added to Registry

上述命令行必须是在Administrator的角色执行,否则会有权限问题, 提示错误 “Unable to open Registry key 'SOFTWARE\Microsoft\Windows\CurrentVersion\CommonFilesDir”

开启 %SNMP_Monitor服务

到System>Security Management >Services, 启动%Service_Monitor服务。%Service_Monitor服务负责Caché和本地操作系统的SNMP Agent的通信,如果关闭,本地和远程的SNMP通信都将中断。

到“系统>配置>监视器配置- 配置设置。选中” 开启SNMP服务随系统启动而启动”,英文”Start SNMP Agent at System Startup”。(Cache'中本页面还包括BMC PORTAL监控软件或者WMI选项,如果不使用,可以不用关心)。

最后,为了启用修改后的配置,需要重启Caché实例。如果是测试环境, 也可以不重启,而是在Caché Terminal执行:Do start^SNMP() 或者Do start^SNMP(705,20)来应用修改, 其中705是ensemble SNPM作为subagent的默认TCP端口号, 20是超时时间。 命令do stop^SNMP()命令可以在IRIS停止SNMP工作。

第三步: 向远端服务器发送SNMP Trap

这里,远端服务器我使用net-snamp工具。 net-snmp是linux, unix, mac os上第一选择的snmp服务和工具。简单的介绍centos 7 的net-snmp安装命令

# 安装net-snmp
[root@serverb ~]# yum install net-snmp net-snmp-utils -y

# 查看版本
[root@serverb ~]# snmpd -v

# 启动
[root@serverb ~]# systemctl start snmpd
[root@serverb ~]# systemctl status snmpd

(如果接收警告的SNMP Server是Windows系统,您可以选择一些图形化的工具做SNMP Trap的接收,比如iReasoning. )

设置snmp trap deamon

hma@CNMBPHMA ~ % snmptrapd -df -Lo
NET-SNMP version 5.6.2.1

在IRIS发送Alert

简单的制造一个alert的最简单的方法是用下面的命令,它向messages.log写一个级别为2的记录,这个记录会再写到alert.log里,通过SNMP发送给SNMP服务器。

%SYS>do ##class(%SYS.System).WriteToConsoleLog("Winter is coming",,2)

检查SNMP服务器收到警告

这时去刚才的snmptrapd终端,可以看到收到了警告。

hma@CNMBPHMA ~ % snmptrapd -df -Lo

Received 137 byte packet from UDP: [172.16.58.200]:55212->[0.0.0.0]:0
0000: 30 81 86 02  01 00 04 06  70 75 62 6C  69 63 A4 79    0.......public�y
0016: 06 0A 2B 06  01 04 01 81  81 33 04 02  40 04 AC 10    ..+......3..@.�.
0032: 3A C8 02 01  06 02 01 0E  43 03 5E E4  CB 30 5A 30    :�......C.^��0Z0
0048: 1E 06 14 2B  06 01 04 01  81 81 33 04  01 01 01 01    ...+......3.....
0064: 06 48 43 44  45 4D 4F 04  06 48 43 44  45 4D 4F 30    .HCDEMO..HCDEMO0
0080: 38 06 14 2B  06 01 04 01  81 81 33 04  01 01 01 08    8..+......3.....
0096: 06 48 43 44  45 4D 4F 04  20 5B 55 74  69 6C 69 74    .HCDEMO. [Utilit
0112: 79 2E 45 76  65 6E 74 5D  20 57 69 6E  74 65 72 20    y.Event] Winter
0128: 69 73 20 63  6F 6D 69 6E  67                          is coming

到这里,IRIS的警告通过SNMP发送已经成功,接下来,您可以做进一步的测试,比如, 如果您对镜像的警告很重视, 您可以测试做如下的测试:

接收镜像相关的警告

  • Becoming primary mirror server

    本镜像成员成为主机

  • Arbiter connection lost

    丢失和arbiter的连接。

  • MirrorServer: Connection to xxxx(backup) terminated

​ 丢失和backup的连接。

以上3个警告都会写入alert,并发送给snmp服务器。

最后,如果您熟悉其他的监控工具,这时候您可以配置您的工具来接收警告了。 我后面会贴一个zabbix上监控IRIS的介绍,其中的警告用SNMP Trap实现,有兴趣的同学可关注本作者。

讨论 (0)1
登录或注册以继续