基于SNMP trap实现DB2数据库的HADR状态告警
2018-11-06
HADR(High Availability Disaster Recovery,高可用性灾难恢复)是IBM DB2数据库上的数据库级别的高可用性数据复制机制。
SNMP trap(SNMP陷阱):在网管系统中,被管理设备中的SNMP代理可以在任何时候向SNMP网络管理工作站报告错误情况,而不是等待SNMP网络管理工作站的再次轮询。
生产环境下由于某些原因,HADR主备机之间的连接会断开,影响数据库的高可用性。
由于断开的情况下数据库无法主动发送告警,数据库服务器也不能连接公网发送告警邮件,这里考虑使用SNMP trap和SHELL脚本配合,定期检查HADR状态,在异常的时候向SNMP网络管理工作站发送SNMP消息,由管理工作站向DBA发送邮件告警。
操作和配置步骤如下:
1.首先在数据库服务器安装net-snmp-utils软件包,该软件包包含了snmptrap命令,用于发送SNMP消息。
yum -y install netsnmp-utils
2.数据库服务器检查HADR状态和发送trap的脚本内容如下:
# 如果脚本检查HADR状态不是PEER状态,就向snmptrapd所在的网络管理工作站发送消息;public是 团 体 名,1.1.1.1是snmptrapd所在服务器的ip,1.2.3.4.5 用来标识信息
3.将脚本保存为/home/db2inst1/db2_hadr_check.sh,并赋予执行权限。
4.在数据库服务器/etc/crontab文件中添加如下语句:
#每隔一分钟,运行脚本检查DB2数据库的HADR状态
5.确保在网络管理工作站可以连接公网,安装netsnmp软件包,该软件包包含snmptrapd命令,用于在后台接收数据库服务器发送的SNMP消息。
yum -y install netsnmp
6.对 文 件/etc/snmptrapd.conf添加如下内容:
#捕获到1.2.3.4.5的标识信息,就执行mail.sh的脚本发告警邮件
authCommunity log,execute,net public
7.以后台运行方式执行snmptrapd命令:
snmptrapd -c /etc/snmptrapd.conf -d
8.在网络管理工作站安装mailx包。
CentOS下的配置文件是/etc/mail.rc。
Debian下的配置文件是/etc/nail.rc。
#注 意debian下 是nail,不是 mail
9.发件人配置文件/etc/nail.rc内容如下:
set from=a@b.com
set smtp=14.17.57.217
set smtp-auth-user=a@b.com
set smtp-authpassword=passwd
set smtp-auth=login
#a@b.com 为发件人邮箱
10.报警脚本mail.sh内容如下,记得赋予脚本执行权限:
#!/bin/bash
echo error | mail-s "db2 hadr is down"support@b.com
#发送邮件到support@b.com数据库管理员的邮箱