前提:
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