zabbix-agent2通过oracle-instantclient监控远程oracle19c服务

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

环境

系统版本: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

最后结果展示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

完颜振江

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值