zoukankan      html  css  js  c++  java
  • 亲测的orabbix监控Oracle过程

         网上教程很多,但普遍较老,担心新版本的变化,于是亲自测试了一下,记录过程如下:

      一、环境

       Centos7.3 192.168.56.104

       Oracle安装在windows下,192.168.56.101

     二、步骤:

       1.确保JRE环境,使用java命令可以识别

       如果没有可以直接Yum install java java-devel

       2.安装orabbix

       orabbix官网:http://www.smartmarmot.com/wiki/index.php?title=Orabbix

       下载地址:http://www.smartmarmot.com/product/orabbix/download/  最新版本orabbix-1.2.3.zip

       下载后上传到Zabbix-server的/opt/orabbix/下(建议目录,否则会影响后续脚本执行)

    #mkdir /opt/orabbix
    #cd /opt/orabbit
    #unzip orabbix-1.2.3.zip
    

     解压后的目录如图:

    3. 配置orabbix

    给orabbix目录下附权限

    #chmod a+x /opt/orabbix -R
    

    创建orabbix配置文件

    #cp /opt/orabbix/conf/config.props.sample /opt/orabbix/conf/config.props

    编辑config.props

    [root@zabbix ~]# cat /opt/orabbix/conf/config.props
    
    #comma separed list of Zabbix servers
    ZabbixServerList=ZabbixServer 
    ZabbixServer.Address=192.168.56.104     #Zabbix server的地址 端口
    zabbixServer.Port=10051
    
    #ZabbixServer2.Address=IP_ADDRESS_OF_ZABBIX_SERVER
    #ZabbixServer2.Port=PORT_OF_ZABBIX_SERVER
    
    #pidFile
    OrabbixDaemon.PidFile=./logs/orabbix.pid       #Java进程
    #frequency of item's refresh
    OrabbixDaemon.Sleep=300
    #MaxThreadNumber should be >= than the number of your databases
    OrabbixDaemon.MaxThreadNumber=100
    
    #put here your databases in a comma separated list
    #DatabaseList=DB1,DB2,DB3
    DatabaseList=win-oracle         #此处名称需和oracle db端zabbix前端的hostname⼀一致
    
    #Configuration of Connection pool
    #if not specified Orabbis is going to use default values (hardcoded)
    #Maximum number of active connection inside pool
    DatabaseList.MaxActive=10
    #The maximum number of milliseconds that the pool will wait 
    #(when there are no available connections) for a connection to be returned 
    #before throwing an exception, or <= 0 to wait indefinitely. 
    DatabaseList.MaxWait=100
    DatabaseList.MaxIdle=1
    
    #define here your connection string for each database
    #DB1.Url=jdbc:oracle:thin:@server.domain.example.com:<LISTENER_PORT>:DB1
    win-oracle.Url=jdbc:oracle:thin:@192.168.56.101:1521:orcl  #实例名为orcl
    #DB1.User=ZABBIX
    win-oracle.User=zabbix
    #DB1.Password=zabbix_password
    win-oracle.Password=zabbix
    #Those values are optionals if not specified Orabbix is going to use the general values
    win-oracle.MaxActive=10
    win-oracle.MaxWait=100
    win-oracle.MaxIdle=1
    win-oracle.QueryListFile=./conf/query.props
    
    #DB2.Url=jdbc:oracle:thin:@server2.domain.example.com:<LISTENER_PORT>:DB2
    #DB2.User=zabbix
    #DB2.Password=zabbix_password
    #DB2.QueryListFile=./conf/query.props
    
    #DB3.Url=jdbc:oracle:thin:@server3.domain.example.com:<LISTENER_PORT>:DB3
    #DB3.User=zabbix
    #DB3.Password=zabbix_password
    #DB3.QueryListFile=./conf/query.props
    

    4.在Oracle端增加用户和权限

    CREATE USER ZABBIX IDENTIFIED BY zabbix DEFAULT TABLESPACE SYSTEM TEMPORARY TABLESPACE TEMP PROFILE DEFAULT ACCOUNT UNLOCK;
    GRANT CONNECT TO ZABBIX;
    GRANT RESOURCE TO ZABBIX;
    ALTER USER ZABBIX DEFAULT ROLE ALL;
    GRANT SELECT ANY TABLE TO ZABBIX;
    GRANT CREATE SESSION TO ZABBIX;
    GRANT SELECT ANY DICTIONARY TO ZABBIX;
    GRANT UNLIMITED TABLESPACE TO ZABBIX;
    GRANT SELECT ANY DICTIONARY TO ZABBIX;
    
    
    GRANT ALTER SESSION TO zabbix;
    GRANT CREATE SESSION TO zabbix;
    GRANT CONNECT TO zabbix;
    ALTER USER zabbix DEFAULT ROLE ALL;
    GRANT SELECT ON V_$INSTANCE TO zabbix;
    GRANT SELECT ON DBA_USERS TO zabbix;
    GRANT SELECT ON V_$LOG_HISTORY TO zabbix;
     
    GRANT SELECT ON V_$LOG TO zabbix;
    GRANT SELECT ON V_$PARAMETER TO zabbix;
    GRANT SELECT ON SYS.DBA_AUDIT_SESSION TO zabbix;
    GRANT SELECT ON V_$LOCK TO zabbix;
    GRANT SELECT ON DBA_REGISTRY TO zabbix;
    GRANT SELECT ON V_$LIBRARYCACHE TO zabbix;
    GRANT SELECT ON V_$SYSSTAT TO zabbix;
     
    GRANT SELECT ON V_$PARAMETER TO zabbix;
    GRANT SELECT ON V_$LATCH TO zabbix;
    GRANT SELECT ON V_$PGASTAT TO zabbix;
    GRANT SELECT ON V_$SGASTAT TO zabbix;
     
    GRANT SELECT ON V_$LIBRARYCACHE TO zabbix;
    GRANT SELECT ON V_$PROCESS TO zabbix;
    GRANT SELECT ON DBA_DATA_FILES TO zabbix;
    GRANT SELECT ON DBA_TEMP_FILES TO zabbix;
    GRANT SELECT ON DBA_FREE_SPACE TO zabbix;
    GRANT SELECT ON V_$SYSTEM_EVENT TO zabbix;
    GRANT SELECT ON V_$locked_object TO zabbix;
    GRANT SELECT ON dba_objects TO zabbix;
    GRANT SELECT ON dba_tablespaces TO zabbix;
    GRANT SELECT ON v_$session TO zabbix;
    

    上面的有重复的,不同文档中的,我当时发现一个文档的权限似乎不全,所以综合了两个文档。

    都说11G还需要执行以下过程,11G以前的版本没试过,不知道是否要执行:

    exec dbms_network_acl_admin.create_acl(acl => 'resolve.xml',description =>'resolve acl', principal =>'ZABBIX', is_grant => true, privilege =>'resolve');
    
    exec dbms_network_acl_admin.assign_acl(acl=> 'resolve.xml', host =>'*');
    commit;
    

    配置orabbix的服务和进程

    #cp -a /opt/orabbix/init.d/orabbix /etc/init.d/orabbix
    #chmod 755 /etc/init.d/orabbix
    #/etc/init.d/orabbix start
    

    ⽇日志⽂文件在/opt/orabbix/logs/orabbix.log中 tail -f 跟踪⽇日志分析部署过程中的问题。

    三、前端增加主机

    然后再zabbix web端configuration—》Templates—》Import中将模板添加
    然后再已添加好的hosts中增加该oracle template,enable相应所需要监控的内容即可。

      

      

      

      

      

      

  • 相关阅读:
    udp和tcp
    以查询代替临时变量
    memcached内存管理
    设计模式适配器模式
    排序算法
    防止表单重复提交
    php的引用
    按位与,按位异或,按位取反
    git常用操作
    http
  • 原文地址:https://www.cnblogs.com/ld1977/p/8011064.html
Copyright © 2011-2022 走看看