专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

分享一个超实用的Zabbix监控Oracle用户无效对象手册

ins518 2024-10-17 13:01:49 技术文章 9 ℃ 0 评论

一、Oracle客户端配置

1、创建脚本invalid_object_check.sh

SQL语句查询无效对象,首先创建一个获取无效对象信息的原始脚本/etc/zabbix/scripts/invalid_object_check.sh这个脚本由oracle用户去执行,脚本内容如下:

#!/bin/bash
sqlplus / as sysdba <<EOF &>/dev/null
set linesize 120
set pagesize 50000
col OBJECT_NAME for a40
spool /tmp/invalid_objects.txt
SELECT owner, object_name, object_type,status FROM dba_objects WHERE status = 'INVALID';
spool off

spool /tmp/failures_jobs.txt
select log_user from dba_jobs where failures <>0 ;
spool off
quit
EOF

执行这个脚本,并生成文件:/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 "{\n"
printf '\t'"\"data\":["
for ((i=0;i<$length;i++))
do
printf "\n\t\t{"
printf "\"{#USER_NAME}\":\"${user[$i]}\"}"
if [ $i -lt $[$length-1] ];then
printf ","
fi
done
printf "\n\t]\n"
printf "}\n"


为Zabbix增加监控Key

在Zabbix客户端配置文件/etc/zabbix/zabbix_agentd.conf增加如下参数:

/etc/zabbix/zabbix_agentd.d/oracle_invalid_object.conf

重新启动Zabbix客户端服务。

1. service zabbix_agentd restart
2. 或 cd /etc/init.d
3. ./zabbix-agent restart

二、Zabbix服务端配置

1、创建模板,并添加自动发现规则

2、创建监控项

监控项原型:

触发器原型:

获取到数据:

已触发无效对象的告警:

使用中如有问题可随时在下发评论处留言哦,关注我每天分享更多实用的运维知识哦[爱慕]

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表