[root@zabbix_serv_121_12 ~]#/usr/local/zabbix/bin/zabbix_get -s 192.168.3.13 -p10050 -k"oracle.standby_status"
standard in must be a tty
1
[root@zabbix_serv_121_12 ~]#
需要在脚本里面配置一些oracle的环境变量,这样可以利用当前的zabbix帐号来运行sqlplus命令:
[root@pldb02 data]# more get_dg.sh #!/bin/bash #tbname="v$archived_log" #echo $tbname #result=`sqlplus zabbix/ys_zb_0418@PD2` #sqlplus -S '/nolog' zabbix/ys_zb_0418@PD2 << EOF #su - oracle -c " export NLS_LANG=american_america.ZHS16GBK export ORACLE_BASE=/oracle/app/oracle export ORACLE_HOME=/oracle/app/oracle/product/11.2.0/dbhome_1 export ORACLE_SID=powerdesdg2 export PATH=$ORACLE_HOME/bin:$PATH
cd /oracle/backup/data sqlplus -S zabbix/ys_zb_0418@PD2 << EOF set heading off set feedback off set pagesize 0 set verify off set echo off spool bts.csv select sequence#,applied from $1 order by sequence#; spool off exit EOF
[root@pldb02 data]# |
[root@pldb02 data]# more check_dg.sh #!/bin/bash #> /oracle/backup/data/bts.csv /bin/sh /oracle/backup/data/get_dg.sh $1 > /dev/null
cd /oracle/backup/data result_num=`cat bts.csv |wc |awk '{print $1}'` yes_num=`cat bts.csv |grep YES |wc |awk '{print $1}'` in_memory_num=`cat bts.csv |grep IN-MEMORY |wc |awk '{print $1}'` out_num=0; standby_num=`expr $yes_num + $in_memory_num + $out_num` if [ "$result_num" -eq 0 ] then echo 0 elif [ "$result_num" -eq 1 ] then echo 0 elif [ "$result_num" -eq "$standby_num" ] then echo 1 else echo 0 fi [root@pldb02 data]# |
gpasswd -a zabbix oinstall gpasswd -a zabbix dba gpasswd -a zabbix oracle |
vim /usr/local/zabbix/conf/zabbix_agentd.conf
UnsafeUserParameters=1 UserParameter=oracle.standby_status,/oracle/backup/data/check_dg.sh 'v$archived_log' |
重启zabbix_agentd
在zabbix-server的服务器上,远程调用oracle的standby上的状态监控,看到能获取到实际的值1:
[root@zabbix_serv_121_12 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.3.13 -p10050 -k "oracle.standby_status" 1 [root@zabbix_serv_121_12 ~]# |
建立oracle模版22.png:
Actions里面添加 模版21.png: