环境
系统版本:Ubuntu 23.04
-----------------------------------------------------------
zabbix-server/zabbix-agent2:Ubuntu 23.04:192.168.20.36
Oracle 19c:windows server2016 :xx.xx.xx.xx:1521 (oracle 19c为远程主机)
-----------------------------------------------------------
安装oracle-instantclient
1、列出下载好的安装包 (实测仅仅安装oracle-instantclient-basic-21.3.0.0.0-1.x86_64.rpm就可以)
root@wanyan:~# ls
oracle-instantclient-basic-21.3.0.0.0-1.x86_64.rpm
oracle-instantclient-basiclite-21.10.0.0.0-1.x86_64.rpm
oracle-instantclient-basiclite_21.10.0.0.0-2_amd64.deb
oracle-instantclient-devel-21.3.0.0.0-1.x86_64.rpm
oracle-instantclient-jdbc-21.3.0.0.0-1.x86_64.rpm
oracle-instantclient-odbc-21.3.0.0.0-1.x86_64.rpm
oracle-instantclient-sqlplus-21.3.0.0.0-1.x86_64.rpm
oracle-instantclient-tools-21.10.0.0.0-1.x86_64.rpm-----------------------------------------------------------
2、安装rpm包安装工具
root@wanyan:~# apt update
root@wanyan:~# apt install alien -y
-----------------------------------------------------------
3、安装
root@wanyan:~# for i in `ls`;do echo "====$i===="; alien -i $i; done
等待安装完成即可
在oracle 19c上创建监控账号
CREATE USER zabbix_mon IDENTIFIED BY zabbix_mon;
-- Grant access to the zabbix_mon user.
GRANT CONNECT, CREATE SESSION TO zabbix_mon;
GRANT SELECT ON DBA_TABLESPACE_USAGE_METRICS TO zabbix_mon;
GRANT SELECT ON DBA_TABLESPACES TO zabbix_mon;
GRANT SELECT ON DBA_FREE_SPACE TO zabbix_mon;
GRANT SELECT ON DBA_USERS TO zabbix_mon;
GRANT SELECT ON SYS.DBA_DATA_FILES TO zabbix_mon;
GRANT SELECT ON SYS.DBA_TEMP_FILES TO zabbix_mon;
GRANT SELECT ON GV_$SORT_SEGMENT TO zabbix_mon;
GRANT SELECT ON V_$ACTIVE_SESSION_HISTORY TO zabbix_mon;
GRANT SELECT ON V_$ARCHIVE_DEST TO zabbix_mon;
GRANT SELECT ON V_$ASM_DISKGROUP TO zabbix_mon;
GRANT SELECT ON V_$DATABASE TO zabbix_mon;
GRANT SELECT ON V_$DATAFILE TO zabbix_mon;
GRANT SELECT ON V_$INSTANCE TO zabbix_mon;
GRANT SELECT ON V_$LOG TO zabbix_mon;
GRANT SELECT ON V_$OSSTAT TO zabbix_mon;
GRANT SELECT ON V_$PGASTAT TO zabbix_mon;
GRANT SELECT ON V_$PROCESS TO zabbix_mon;
GRANT SELECT ON V_$RECOVERY_FILE_DEST TO zabbix_mon;
GRANT SELECT ON V_$RESTORE_POINT TO zabbix_mon;
GRANT SELECT ON V_$SESSION TO zabbix_mon;
GRANT SELECT ON V_$SGASTAT TO zabbix_mon;
GRANT SELECT ON V_$SYSMETRIC TO zabbix_mon;
GRANT SELECT ON V_$SYSTEM_PARAMETER TO zabbix_mon;
GRANT SELECT ON V_$PARAMETER TO zabbix_mon;
GRANT SELECT_CATALOG_ROLE TO zabbix_mon;
配置tsn (实测这部分是不需要,但是如果需要调试就需要了)
root@wanyan:~# cd /usr/lib/oracle/21/client64/network/admin/
root@wanyan:/usr/lib/oracle/21/client64/network/admin# ls
admin.zip listener.ora sqlnet.ora tnsnames.ora
前提、/etc/hosts设置
root@wanyan:/usr/lib/oracle/21/client64/network/admin# cat /etc/hosts
xx.xx.xx.xx DYCWTESTDB
1、listener.ora的内容
root@wanyan:/usr/lib/oracle/21/client64/network/admin# cat listener.ora
# listener.ora Network Configuration File: D:\u01\app\oracle\product\19.3.0\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = D:\u01\app\oracle\product\19.3.0)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:D:\u01\app\oracle\product\19.3.0\bin\oraclr19.dll")
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = DYCWTESTDB)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
-----------------------------------------------------------
2、sqlnet.ora的内容
root@wanyan:/usr/lib/oracle/21/client64/network/admin# cat sqlnet.ora
# This file is actually generated by netca. But if customers choose to
# install "Software Only", this file wont exist and without the native
# authentication, they will not be able to connect to the database on NT.
SQLNET.AUTHENTICATION_SERVICES = (NTS)
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
-----------------------------------------------------------
3、tnsnames.ora的内容
root@wanyan:/usr/lib/oracle/21/client64/network/admin# cat tnsnames.ora
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = DYCWTESTDB)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
-----------------------------------------------------------
4、/etc/profile环境变量设置
export ORACLE_HOME=/usr/lib/oracle/21/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib64:$LD_LIBRARY_PATH
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=$PATH:$ORACLE_HOME/bin:$HOME/binsource /etc/profile
-----------------------------------------------------------
root@wanyan:~#source /etc/profile
zabbix-agent2配置文件设置
root@wanyan:~# grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.20.36
ServerActive=192.168.20.36
Hostname=192.168.20.36
Include=/etc/zabbix/zabbix_agent2.d/*.conf
PluginSocket=/run/zabbix/agent.plugin.sock
ControlSocket=/run/zabbix/agent.sock
Include=./zabbix_agent2.d/*.conf
-----------------------------------------------------------
root@wanyan:~# grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.d/monitor_oracle.conf
Plugins.Oracle.Sessions.demo.Uri=tcp://xx.xx.xx.xx:1521
Plugins.Oracle.Sessions.demo.User=zabbix_mon
Plugins.Oracle.Sessions.demo.Password=zabbix_mon
Plugins.Oracle.Sessions.demo.Service=ORCL
zabbix-agent2启动变量设置
root@wanyan:~# cat /etc/default/zabbix-agent2
ORACLE_HOME=/usr/lib/oracle/21/client64
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib64:$LD_LIBRARY_PATH
TNS_ADMIN=$ORACLE_HOME/network/admin
PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
ORACLE_SID=ORCL
-----------------------------------------------------------
root@wanyan:~# cat /etc/default/zabbix-server
ORACLE_HOME=/usr/lib/oracle/21/client64
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib64:$LD_LIBRARY_PATH
TNS_ADMIN=$ORACLE_HOME/network/admin
PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
ORACLE_SID=ORCL
-----------------------------------------------------------
root@wanyan:~# cat /usr/lib/systemd/system/zabbix-agent2.service
[Unit]
Description=Zabbix Agent 2
After=syslog.target
After=network.target
[Service]
Environment="ORACLE_HOME=/usr/lib/oracle/21/client64"
Environment="LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib64:$LD_LIBRARY_PATH"
Environment="TNS_ADMIN=$ORACLE_HOME/network/admin/"
Environment="PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin"
Environment="LANG=en_US.UTF-8"
Environment="NLS_LANG=AMERICAN_AMERICA.AL32UTF8"
Environment="CONFFILE=/etc/zabbix/zabbix_agent2.conf"
EnvironmentFile=-/etc/default/zabbix-agent2
Type=simple
Restart=on-failure
PIDFile=/run/zabbix/zabbix_agent2.pid
KillMode=control-group
ExecStart=/usr/sbin/zabbix_agent2 -c $CONFFILE
ExecStop=/bin/sh -c '[ -n "$1" ] && kill -s TERM "$1"' -- "$MAINPID"
RestartSec=10s
User=zabbix
Group=zabbix
LimitNOFILE=8192
[Install]
WantedBy=multi-user.target
zabbixweb界面配置

zabbix web界面宏配置
| 宏 | 值 |
| {$ORACLE.CONNSTRING} | tcp://xx.xx.xx.xx:1521 |
| {$ORACLE.DRIVER} | /usr/lib/oracle/21/client64/lib/libsqora.so.21.1 |
| {$ORACLE.PASSWORD} | zabbix_mon |
| {$ORACLE.SERVICE} | ORCL |
| {$ORACLE.USER} | zabbix_mon |
最后结果展示


该文详细描述了在Ubuntu23.04系统上安装Oracle-instantclient,配置Zabbix-agent2来监控远程Oracle19c数据库的过程。包括安装RPM包,创建数据库监控用户,授予相关权限,以及设置环境变量和Zabbix配置文件。
397

被折叠的 条评论
为什么被折叠?



