Home » Hướng dẫn monitor oracle database with zabbix

Hướng dẫn monitor oracle database with zabbix

by tuanlp

 

Cài trên server

1 – installing unixodbc on zabbix server

yum -y install unixODBC unixODBC-devel

2- installing instant client packages

<https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html>
# rpm -ivh oracle-instantclient12.1-basic-12.2.0.1.0-1.x86_64.rpm
# rpm -ivh oracle-instantclient12.1-odbc-12.2.0.1.0-1.x86_64.rpm

3 – environment variables on zabbix server

Edit or add new file /etc/sysconfig/zabbix-server # for server /etc/sysconfig/zabbix-proxy # for proxy

export ORACLE_HOME=/usr/lib/oracle/12.1/client64
export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib:/usr/lib64
export TNS_ADMIN=/etc/oracle
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/lib/oracle/12.1/client64/lib

export ORACLE_HOME
export LD_LIBRARY_PATH
export TNS_ADMIN
export PATH

4 – Restart Zabbix server or Zabbix proxy.

service zabbix-server restart
service zabbix-proxy restart

vim /etc/odbcinst.ini

[OracleODBC-12.1]
Description = Oracle ODBC driver for Oracle 12c
Driver = /usr/lib/oracle/12.1/client64/lib/libsqora.so.12.1
FileUsage = 1
Driver Logging = 7

vim /etc/odbc.ini

[orcl]
Driver = OracleODBC-12.1
ServerName = orcl
FileUsage = 1
Driver Logging = 7
UserID = zabbix_mon
Password = zabbix
DatabaseCharacterSet=AL16UTF16
NLS_NUMERIC_CHARACTERS= ','

vi /etc/oracle/tnsnames.ora

ORCL =
 ( DESCRIPTION =
  (ADDRESS_LIST =
  (ADDRESS =
  (PROTOCOL = TCP)
  (Host = 10.1.1.223)
  (Port = 1521)
  )
 )
 (CONNECT_DATA = (SID = orcl)
 )
)

Check lại kết nối

isql -v orcl
SQL> select banner from v$version where rownum=1;
odbcinst -q -s
odbcinst -j

Install plugin

ldd /usr/lib/oracle/12.1/client64/lib/libsqora.so.12.1
chmod -R 775 /usr/lib/oracle/12.1/client64/lib/libsqora.so.12.1
yum -y install libnsl.so.1*64*

Cài đặt marco trong config host zabbix

Set the username and password in host macros ({$ORACLE.USER} and {$ORACLE.PASSWORD}).

Set the {$ORACLE.DSN} in host macros.

Trên máy db client

Create an Oracle DB user for monitoring:

CREATE USER zabbix_mon IDENTIFIED BY zabbix;
-- Grant access to the zabbix_mon user.
GRANT CONNECT, CREATE SESSION TO zabbix_mon;
GRANT SELECT ON v_$instance TO zabbix_mon;
GRANT SELECT ON v_$database TO zabbix_mon;
GRANT SELECT ON v_$sysmetric TO zabbix_mon;
GRANT SELECT ON v_$system_parameter TO zabbix_mon;
GRANT SELECT ON v_$session TO zabbix_mon;
GRANT SELECT ON v_$recovery_file_dest TO zabbix_mon;
GRANT SELECT ON v_$active_session_history TO zabbix_mon;
GRANT SELECT ON v_$osstat TO zabbix_mon;
GRANT SELECT ON v_$restore_point TO zabbix_mon;
GRANT SELECT ON v_$process TO zabbix_mon;
GRANT SELECT ON v_$datafile TO zabbix_mon;
GRANT SELECT ON v_$pgastat TO zabbix_mon;
GRANT SELECT ON v_$sgastat TO zabbix_mon;
GRANT SELECT ON v_$log TO zabbix_mon;
GRANT SELECT ON v_$archive_dest TO zabbix_mon;
GRANT SELECT ON v_$asm_diskgroup TO zabbix_mon;
GRANT SELECT ON sys.dba_data_files TO zabbix_mon;
GRANT SELECT ON DBA_TABLESPACES TO zabbix_mon;
GRANT SELECT ON DBA_TABLESPACE_USAGE_METRICS TO zabbix_mon;
GRANT SELECT ON DBA_USERS TO zabbix_mon;
grant dba to zabbix_mon;

You may also like