在zabbix中有了orabbix的辅助,监控效率大大提高,但是因为orabbix是基于jdbc的方式,有些监控还是有一些限制。
比如dataguard的检查,如果采用dg broker来检查,效果就更直观也更可信。
DGMGRL> show configuration;
Configuration - csdb
Protection Mode: MaxPerformance
Databases:
test- Primary database
stest- Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS
只要显示为SUCCESS,说明dg就是正常的。
如果通过orabbix来监控,只能通过主库中的v$dataguard_status来进行检查。
很多时候这种检查一方面很可能有误报,有时候可能会有很多额外的信息干扰。
所以使用orabbix来监控备库还是有一定的瓶颈,可以监控,但是结果还是不够可信。
这个时候还是投入zabbix的怀抱,我们还是需要通过zabbix的方法来辅助。
对于dg的检查,可以使用下面的脚本来检查
echo `sudo su -l oracle <<eof
dgmgrl -silent / <<eod
show configuration;
EOD
EOF`|grep ORA- |wc -l
如果输出结果大于0,说明检查结果存在ORA错误。这个时候需要关注备库的情况。
在zabbix中的配置如下:
在zabbix agent的目录下配置这个参数
UserParameter=check.dg[*], sh /home/app/zabbix/script/check_dg.sh
然后在zabbix agent的script目录下,脚本check_dg.sh 的内容就是调用show configuration的结果。
这些配置还是方便的。
然后配置trigger
配置完成之后,就可以在zabbix server端进行验证。
# ./zabbix_get -s 10.xxx.xx.45 -k check.dg
ZBX_NOTSUPPORTED
这个时候说明agent这边校验失败,还是需要重启一下agent的。
这个时候如果备库存在问题显示也会为0,需要明辨。
如果备库确实存在问题,显示结果就会大于0
# ./zabbix_get -s 10.127.133.45 -k check.dg
1
当然为了使得zabbix用户能够切换到oracle用户,还是需要使用sudo的方式为zabbix赋予权限,比如末尾的切换用户的su -l
zabbix ALL=(ALL) NOPASSWD: /etc/init.d/iptables status,/sbin/iptables -nL, /usr/bin/head -n 50, /var/log/secure,/bin/su -l *</eod
</eof