Zabbix4.4 技术解决方案(实战篇) 监控 Oracle数据库 信息

  • Post author:
  • Post category:其他



一、登录要监控的数据库 创建 zabbix 用户并授权

创建用户
-> create user zabbix   identified by "123546#" default tablespace tabels temporary tablespace TEMP ;
--此命令可能执行不成功,原因可能是11g与12c语法不同,但是没有深究。执行 -> alter session set "_ORACLE_SCRIPT"=true;但是实际生产环境不建议使用。
--授予权限
-> 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;

--如果当前的oracle版本是11g的话,还需要添加如下的语句开放acl的访问控制,否则在监控的过程中有部份内容无法正常显示(例于数据库版本,数据库文件大小等)。

-> 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;
--授权完成后可以使用zabbix用户登录测试下
sqlplus zabbix/"123456#"

--查看数据库实例可使用以下命令
-> select instance_name from v$instance;       //查看实例名
-> select global_name from global_name;       //查看服务名


二、上传orabbix安装包到 zabbix服务器目录,解压 并编辑orabbix配置文件信息,加入数据库连接池信息


Orabbix下载连接

[app@Server_1 ~]$ unzip orabbix-1.2.3.zip
[app@Server_1 ~]$ mv orabbix-1.2.3.zip orabbix
[app@Server_1 ~]$ vim orabbix/conf/config.props

#comma separed list of Zabbix servers
	
	#Zabbix主机名
    ZabbixServerList=ZabbixServer1
	#Zabbix客户端IP
    ZabbixServer1.Address=192.168.1.124
    ZabbixServer1.Port=10051

    #pidFile
    OrabbixDaemon.PidFile=./logs/orabbix.pid
    #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的值未HOSTNAME配置的值,具体查看 vi /etc/sysconfig/network
    DatabaseList=orcl                             

    #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
    #配置JDBC连接池信息,此处orcl为数据库实例
    orcl.Url=jdbc:oracle:thin:@172.0.0.1:1521:orcl            
    orcl.User=ZABBIX
    orcl.Password=ZABBIX
    #Those values are optionals if not specified Orabbix is going to use the general values
    orcl.MaxActive=10
    orcl.MaxWait=100
    orcl.MaxIdle=1
    orcl.QueryListFile=./conf/query.props


三、授权并启动orabbix,分析日志是否有误报错或授权不足情况

[app@Server_1 ~]$ chmod +x orabbix/run.sh
[app@Server_1 ~]$ /home/app/orabbix/init.d/orabbix start
[app@Server_1 ~]$ tail -f  /opt/orabbix/logs/orabbix.log

#给主机Zabbix执行root的权限
[root@Server_2 zabbix_agentd.d]# vim /etc/sudoers
zabbix  ALL=(root)      NOPASSWD:/bin/python
zabbix  ALL=(root)      NOPASSWD:/bin/tail


四、导入自动发现 Oracle数据库 xml模板并关联相关主机,模板在之前你下载的Orabbix的template目录里


在这里插入图片描述


五、zabbix升级4.4以后,orabbix监控Oracle报错


在使用 zabbix 4.4 时, orabbix 会报错:

Orabbix – received unexpected response ’ ’ for key ‘alive’

根据这个 issue , 修改了 Sender.java, 并把编译好的 class 文件, 添加到 orabbix-1.2.3.jar 中、

使用方式:将下载下来的orabbix4zabbix4-master.zip放在orabbix环境下面,执行build.sh(执行有报错不用管),这个脚本会编译 Sender.java , 并把 class 文件,添加到原来的 jar 包中, 放到 orabbix 目录下。

将新生成的orabbix-1.2.3.jar,替换原来的jar包。

执行service orabbix start 就OK了



版权声明:本文为weixin_43792741原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。