前提:

1.被监控的数据库服务器上已经安装了zabbix-agent2客户端组件

2.我的oracle版本是12c,具体的版本是12.2.0.1,需要下载对应的客户端 oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm

下载地址:https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html

Zabbix agent被监控端配置步骤

1.登录oracle数据库,创建用于监听的账号,并授权

# sqlplus / as sysdba[@ORACLE_SID]    #[]中的内容为可选,ORACLE_SID指数据库的实例名,可以通过tnsnames.ora文件查看
SQL> CREATE USER zabbix_mon IDENTIFIED BY <PASSWORD>;
SQL> GRANT CONNECT, CREATE SESSION TO zabbix_mon;
SQL> GRANT SELECT ON DBA_TABLESPACE_USAGE_METRICS TO zabbix_mon;
SQL> GRANT SELECT ON DBA_TABLESPACES TO zabbix_mon;
SQL> GRANT SELECT ON DBA_USERS TO zabbix_mon;
SQL> GRANT SELECT ON SYS.DBA_DATA_FILES TO zabbix_mon;
SQL> GRANT SELECT ON V_$ACTIVE_SESSION_HISTORY TO zabbix_mon;
SQL> GRANT SELECT ON V_$ARCHIVE_DEST TO zabbix_mon;
SQL> GRANT SELECT ON V_$ASM_DISKGROUP TO zabbix_mon;
SQL> GRANT SELECT ON V_$DATABASE TO zabbix_mon;
SQL> GRANT SELECT ON V_$DATAFILE TO zabbix_mon;
SQL> GRANT SELECT ON V_$INSTANCE TO zabbix_mon;
SQL> GRANT SELECT ON V_$LOG TO zabbix_mon;
SQL> GRANT SELECT ON V_$OSSTAT TO zabbix_mon;
SQL> GRANT SELECT ON V_$PGASTAT TO zabbix_mon;
SQL> GRANT SELECT ON V_$PROCESS TO zabbix_mon;
SQL> GRANT SELECT ON V_$RECOVERY_FILE_DEST TO zabbix_mon;
SQL> GRANT SELECT ON V_$RESTORE_POINT TO zabbix_mon;
SQL> GRANT SELECT ON V_$SESSION TO zabbix_mon;
SQL> GRANT SELECT ON V_$SGASTAT TO zabbix_mon;
SQL> GRANT SELECT ON V_$SYSMETRIC TO zabbix_mon;
SQL> GRANT SELECT ON V_$SYSTEM_PARAMETER TO zabbix_mon; 

2.安装Oracle客户端oracle-instantclient

先测试安装,看是否缺少依赖项

rpm -ivh oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm --test

测试安装没问题,正式安装

rpm -ivh oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm

确定oracle客户端的安装目录

rpm -ql oracle-instantclient12.2-basic

通过返回结果看出是:/usr/lib/oracle/12.2/client64/

创建libclntsh.so、libocci.so的软连接

cd /usr/lib/oracle/12.2/client64/lib/
ln -s libclntsh.so.12.1 libclntsh.so
ln -s libocci.so.12.1 libocci.so

3.如果libaio没有安装,可能还需要安装这个包

yum install libaio

4.创建orcale的ld配置文件

sh -c "echo /usr/lib/oracle/12.2/client64/lib > /etc/ld.so.conf.d/oracle-instantclient.conf"
ldconfig

5.为新安装的oracle客户端配置tnsnames.ora

mkdir -p /usr/lib/oracle/12.2/client64/network/admin

从oracle数据库的安装目录的network/admin下将tnsnames.ora复制到/usr/lib/oracle/12.2/client64/network/admin目录一份

内容类似如下:

6.编辑zabbix-agent2配置文件,配置oracle plugin内容

Plugins.Oracle.Sessions.test.Uri=tcp://192.20.20.15:1521
Plugins.Oracle.Sessions.test.User=zbx_monitor
Plugins.Oracle.Sessions.test.Password=password
Plugins.Oracle.Sessions.test.Service=testpdb

 对上上面的配置内容,也可以单独创建一个配置文件,放在/etc/zabbix/zabbix_agent2.d/文件夹下

对于原来配置文件中的*号让替换成session name(此处为test,就是下图的实例名),,以及Service指定的Service name(此处为testpdb),可以通过查看侦听状态获取

su - oracle
lsnrctl status

 

保存退出后。

7.重启zabbix agent2服务

systemctl restart zabbix-agent2.service

 

zabbix server的web端配置

验证:

zabbix_get -s oracle-host -k oracle.ping[“{$ORACLE.CONNSTRING}”,”{$ORACLE.USER}”,”{$ORACLE.PASSWORD}”,”{$ORACLE.SERVICE}”]

{$ORACLE.CONNSTRING}:tcp://192.20.20.15:1521

{$ORACLE.USER} : zbx_monitor

{$ORACLE.PASSWORD} : password

{$ORACLE.SERVICE} : testpdb

进入对应的主机,添加模板:Template DB Oracle by Zabbix Agent 2

设置macros宏定义内容。如:

{$ORACLE.CONNSTRING}:tcp://192.20.20.15:1521

{$ORACLE.USER} : zbx_monitor

{$ORACLE.PASSWORD} : password

{$ORACLE.SERVICE} : testpdb

 

注意:如果Oracle的版本低于12,则此模板无法使用,需要使用orabbix进行监控。

具体原因据说是:官方的zabbix-agent2的Oralce数据采集插件用到12C的一个内置新函数 json_table、json_object,这个函数从12.1版本才开始集成,直接把sql查出的数据封装成json格式发送给zabbix-server服务器。

原文地址:http://www.cnblogs.com/hyyx/p/16768890.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性