zoukankan      html  css  js  c++  java
  • 【Zabbix】zabora监控Oracle数据库

    zabora监控Oracle数据库

    它作为一个开源项目,通过shell脚本有效的监控Oracle基础指标。本文档旨在通过实战,在Zabbix 3.0版本之下,监控生产环境下的多台Oracle数据库。

    建立oracle账号

    CREATE USER monitor IDENTIFIED BY 'xxxxxxx' DEFAULT TABLESPACE SYSTEM TEMPORARY TABLESPACE TEMP PROFILE DEFAULT ACCOUNT UNLOCK;
    GRANT CONNECT TO monitor;
    GRANT RESOURCE TO monitor;
    ALTER USER monitor DEFAULT ROLE ALL;
    GRANT SELECT ANY TABLE TO monitor;
    GRANT CREATE SESSION TO monitor;
    GRANT SELECT ANY DICTIONARY TO monitor;
    GRANT UNLIMITED TABLESPACE TO monitor;
    GRANT SELECT ANY DICTIONARY TO monitor;
    GRANT SELECT ON V_$SESSION TO monitor;
    GRANT SELECT ON V_$SYSTEM_EVENT TO monitor;
    GRANT SELECT ON V_$EVENT_NAME TO monitor;
    GRANT SELECT ON V_$RECOVERY_FILE_DEST TO monitor;
    

    基本原理

    它的核心是通过一个zabora.sh脚本,调用zabora/sql目录下的多个sql脚本,用于获取json数据。然后在zabbix平台上调用。用于监控。

    部署命令:

    ./zabora/deploy_zabbix.sh "${ORACLE_USER}" "${ORACLE_PASS}"
    chmod 755 /etc/zabbix/scripts/agentd/zabora/zabora.sh
    

    如上命令,可以直接部署zabora.sh脚本。效果如下:

    1. 配置了/etc/zabbix/zabbix_agentd.d/zabora.conf

      放置shell脚本,SQL脚本到/etc/zabbix/scripts/agentd/zabora目录下。

      UserParameter=zabora[*],/etc/zabbix/scripts/agentd/zabora/zabora.sh -o $1 -s $2 -a $3
      UserParameter=zabora.discovery[*],/etc/zabbix/scripts/agentd/zabora/zabora.sh -o $1 -s $2 -a $3 -j $4
      UserParameter=zabora.version,/etc/zabbix/scripts/agentd/zabora/zabora.sh -v short
      
    2. 这里手工调用zabora.sh,查看其机理。

      -o代表oracle的sid

      -s代表调用sql脚本的简称。

      -j是否以json串的结果输出。

      以下是查看Oracle表空间的信息。

      [root@oradb sql]# /etc/zabbix/scripts/agentd/zabora/zabora.sh -o oradb -s tb_list -j 1
      {
         "data":[
            { "{#1}":"SYSTEM" },
            { "{#1}":"SYSAUX" },
            { "{#1}":"USERS" },
            { "{#1}":"OD" },
            { "{#1}":"OA" },
            { "{#1}":"FA" },
            { "{#1}":"HR" },
            { "{#1}":"IPC_HZ_DB" },
            { "{#1}":"PM" },
            { "{#1}":"DEF3DB" },
            { "{#1}":"HDOA" },
            { "{#1}":"ARP" },
            { "{#1}":"LMS_MANAGE" },
            { "{#1}":"LMS_SERVER" },
            { "{#1}":"DEVPLATFORM" },
            { "{#1}":"NEWOA" },
            { "{#1}":"PAY" },
            { "{#1}":"WHIOV_OA" },
            { "{#1}":"TBS_OA" },
            { "{#1}":"FIN" },
            { "{#1}":"EXCHANGE" },
            { "{#1}":"PLATFORM" },
            { "{#1}":"NNC_DATA02" },
            { "{#1}":"NNC_DATA03" },
            { "{#1}":"NNC_INDEX01" },
            { "{#1}":"NNC_INDEX02" },
            { "{#1}":"NNC_INDEX03" },
            { "{#1}":"PORTAL" },
            { "{#1}":"NNC_DATA01" },
            { "{#1}":"FINEDB" },
            { "{#1}":"ARP_FLASH_ARC" },
            { "{#1}":"FINEDB51" }
         ]
      }
      
    3. 在server端,测试脚本的可用性.

      [root@localhost ~]# zabbix_get -s 172.31.222.34 -k "zabora[oradb,db_active,1]"
      1
      [root@localhost ~]# zabbix_get -s 172.31.222.34 -k "zabora[oradb,tb_size,SYSTEM]"
      3.43
      

    以上说明,后台server端和agent端,脚本配置无误。现在可以配置前台,用于监控oracle的相关指标。

    zabbix前台配置

    步骤1,导入模板

    选择template_db_oracle-2.2.xml这个模板,【配置】--》【模板】--》【导入】,模板导入成功。

    模板的内容,无非就是监控项,触发器,图形等。其实可以自己建立一个监控指标,用于监控。

    zabbix_ora

    步骤2,添加主机到模板中。

    【配置】--》【主机】。选择你要监控的Oracle主机。

    【模板】,添加需要链接的模板,这里的模板名字为【Template_DB_Oracle】。

    【主机】--》【宏】。用于配置{$ORACLE_SID}的参数值。效果如下:

    {$ORACLE_SID} = oradb。

    zabbix_ora_02.png

    最终效果

    zabbix_ora03.png

  • 相关阅读:
    进程和程序的关系
    进程和线程区别和联系
    什么是进程,进程的特征
    23.each和map函数
    22.仿淘宝五角星评论(链式编程、隐式迭代)
    19.阻止事件冒泡e.stopPropagation();
    18.阻止默认操作e.preventDefault();防止冒泡事件:e.stopPropagation()
    15.仿腾讯固定导航栏
    14.仿京东右侧边导航栏
    算法学习:树上差分
  • 原文地址:https://www.cnblogs.com/zhangshengdong/p/11725299.html
Copyright © 2011-2022 走看看