【ZABBIX添加ORACLE数据库ASM数据组监控】

ORACLE数据库ASM数据组监控

思路:使用oracle用户执行sql,将sql执行结果存在某个文件中,然后通过脚本筛选该文件,定义键值,创建模板

1、 使用root用户在/etc/zabbix下创建asm-monitor.txt文件

2、 修改该文件的权限为666(使oracle用户有权限写入)

3、 切换至oracle用户下,创建zabbix/asm-monitor目录

4、 在zabbix/asm-monitor下创建asm-monitor.sql

set heading on
set lines 300 pages 999
col usage for 999.00 head 'USAGE(%)'
select group_number,name,state,total_mb,free_mb,trunc((total_mb-free_mb)/total_mb*100,2) usage from v$asm_diskgroup;

5、 在zabbix/asm-monitor下创建asm-monitor.sh

#!/bin/bash 
source ~/.bash_profile 
function check {
sqlplus -S "/ as sysdba" << EOF 
set linesize 200 
set pagesize 200 
spool /etc/zabbix/asm-monitor/asm-monitor.txt 
@/home/oracle/zabbix/asm-monitor/asm-monitor.sql 
spool off 
quit 
EOF 
};check &>/dev/null    

AIX系统环境变量(export部分把/home/oracle/.profile下粘贴过来就可以)

例:

#!/usr/bin/sh
PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:$HOME/bin:/usr/bin/X11:/sbin:.
export PATH
export AIXTHREAD_SCOPE=S
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=xiandb
export ORACLE_HOME=/u01/app/oracle/product/11.2.0.3/dbhome_1
export GI_HOME=/u01/app/11.2.0.3/grid
export NLS_LANG=American_America.ZHS16GBK
export TMP=/tmp
export TMPDIR=/tmp
export ORACLE_TERM=vt100
export OPATCH_PLATFORM_ID=212
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH:/usr/java8_64/jre/bin:/usr/java8_64/bin
sqlplus -S / as sysdba <<EOF  >/dev/null 2>&1
set linesize 200
set pagesize 200
spool /etc/zabbix/asm-monitor/asm-monitor.txt
@/home/oracle/zabbix/asm-monitor/asm-monitor.sql
spool off
quit
EOF

6、 在oracle用户下创建计划任务(计划任务根据自己的需求定义)

crontab -e
#ASM monitor
15 * * * * sh /home/oracle/zabbix/asm-monitor/asm-monitor.sh

7、切换至root下,在/etc/zabbix/asm-monitor下创建获取名称的脚本

vi asm-monitor.sh
#!/bin/bash

linenum=`cat /etc/zabbix/asm-monitor/asm-monitor.txt|wc -l`
i=4
printf "{\n"
printf  '\t'"\"data\":["
tail -n +4 /etc/zabbix/asm-monitor/asm-monitor.txt | grep -v "^$" | while read line
do
         line_4=`echo $line|awk  '{print $2}'`
         printf '\n\t\t{'
         printf "\"{#NAME}\":\"${line_4}\"}"
         let "i=$i+1"
         if [ "$i" -lt "$linenum" ];then
                         printf ','
         fi
done
printf  "\n\t]\n"
printf "}\n"

8、切换至root下,在/etc/zabbix/asm-monitor下创建获取数据的脚本

vi asm-check.sh
#!/usr/bin/sh

CEHCK_TYPE=$1
NAME=$2

function_total () {
    grep "$NAME" /etc/zabbix/asm-monitor/asm-monitor.txt |awk '{printf $4}'
}
 
function_usage () {
    grep "$NAME" /etc/zabbix/asm-monitor/asm-monitor.txt | awk '{printf $6}'
}
 
function_free () {
    grep "$NAME" /etc/zabbix/asm-monitor/asm-monitor.txt | awk '{printf $5}'
}
 

case $CEHCK_TYPE in
    total)
        function_total
                ;;
    usage)
        function_usage
                ;;
    free)
        function_free 
                ;;
    *)
        echo -e "Usage: $0 [total|usage|free] [NAME]"
esac

9、 切换至root下,在/etc/Zabbix/Zabbix-agent2.d下创建conf文件

cat userparameter_asm.conf
UserParameter=asm.monitor[*],sh /etc/zabbix/asm-monitor/asm-monitor.sh
UserParameter=asm.check[*],sh /etc/zabbix/asm-monitor/asm-check.sh $1 $2

10、 创建模板

新建一个模板   Template asm monitor

创建自动发现规则

创建监控项原型(ASM磁盘组可使用空间大小、ASM磁盘组使用率、ASM磁盘组总空间大小)

{#NAME}是上边8步脚本中定义的变量,可以引入名称中

监控项原型可定义标记(zabbix6.0版本中是标记,类似于旧版本的应用集,方便在监控项中根据标记快速找到)

创建触发器类型(阈值可根据自己需求调整)

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Zabbix监控Oracle数据库中的表数据,可以使用Zabbix数据库监控功能结合Oracle的特定监控方法。以下是一个简单的步骤指南: 1. 确保已经安装和配置了Zabbix服务器和Zabbix代理。 2. 在Zabbix服务器上创建一个新的模板,用于监控Oracle数据库。在模板中,可以定义触发器、图表和报警等。 3. 在Zabbix服务器上创建一个新的主机,对应于要监控Oracle数据库实例。为主机配置IP地址和其他必要的参数。 4. 在Zabbix代理配置文件中添加数据库监控参数。编辑zabbix_agentd.conf文件,添加以下内容: ``` UserParameter=oracle.tablespace.discovery,/path/to/script UserParameter=oracle.tablespace.size[*],/path/to/script $1 $2 ``` 5. 创建一个用于获取表数据的脚本。可以使用Python、Shell脚本或其他适当的工具来编写脚本。该脚本应该能够连接到Oracle数据库并获取表数据。 6. 将脚本放置在Zabbix代理所在主机上,并确保脚本具有执行权限。 7. 在Zabbix服务器上导入模板,并将其关联到Oracle数据库的主机。 8. 在触发器中定义阈值和触发条件,以便在表数据达到特定阈值时触发警报。 9. 配置图表以显示表数据的趋势和变化。 10. 测试监控功能,确保Zabbix能够成功获取和显示表数据,并在需要时触发警报。 请注意,上述步骤只是一个简单的指南,具体的配置和实施可能因系统环境和要求而有所不同。建议参考ZabbixOracle的官方文档以获取更详细的信息和指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值