一、Oracle客户端配置
1、创建脚本invalid_object_check.sh
SQL语句查询无效对象,首先创建一个获取无效对象信息的原始脚本/etc/zabbix/scripts/invalid_object_check.sh这个脚本由oracle用户去执行,脚本内容如下:
#!/bin/bashsqlplus / as sysdba </dev/nullset linesize 120set pagesize 50000col OBJECT_NAME for a40spool /tmp/invalid_objects.txtSELECT owner, object_name, object_type,status FROM dba_objects WHERE status = 'INVALID';spool offspool /tmp/failures_jobs.txtselect log_user from dba_jobs where failures <>0 ;spool offquitEOF
执行这个脚本,并生成文件:/tmp/failures_jobs.txt
把脚本放到oracle用户的crontab计划任务表中,让脚本在后台每5分钟执行一次
2、创建脚本discovery_oracle_user.sh
通过脚本取得无效对象的名字,并转换成json格式的(因为zabbix的自动发现功能获取的数据类型是JSON格式的)。
user=(`cat /tmp/invalid_objects.txt |awk '{print $1}'| sed -e "1,4d" -e "/^$/d" -e "/[0-9].*/d" -e "/.*>.*/d"|sort|uniq`)length=${#user[@]}printf "{"printf ''""data":["for ((i=0;i
为Zabbix增加监控Key
在Zabbix客户端配置文件/etc/zabbix/zabbix_agentd.conf增加如下参数:
/etc/zabbix/zabbix_agentd.d/oracle_invalid_object.conf
重新启动Zabbix客户端服务。
1. service zabbix_agentd restart2. 或 cd /etc/init.d3. ./zabbix-agent restart
二、Zabbix服务端配置
1、创建模板,并添加自动发现规则
2、创建监控项
监控项原型:
触发器原型:
获取到数据:
已触发无效对象的告警:
使用中如有问题可随时在下发评论处留言哦,关注我每天分享更多实用的运维知识哦[爱慕]