以下是我安装的环境,实际部署时并不需要跟我的环境一样
zabbix监控主机Redhat Linux 7.5 + Zabbix server 3.4 + Python 3.6 (系统默认的2.7,我改用的3.6) + Oracle Client 19.12 (x86_64)
被监控主机 Oracle 11.2.0.4
本文介绍的是使用external check方式去监控oracle数据库。
以下所有操作均在zabbix服务器上面执行
安装oracle客户端
从官网下载如下三个rpm包
https://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
oracle-instantclient19.12-basic-19.12.0.0.0-1.x86_64.rpm
oracle-instantclient19.12-devel-19.12.0.0.0-1.x86_64.rpm
oracle-instantclient19.12-sqlplus-19.12.0.0.0-1.x86_64.rpm
使用root安装oracle客户端
rpm -ivh oracle-instantclient19.12-basic-19.12.0.0.0-1.x86_64.rpm
rpm -ivh oracle-instantclient19.12-devel-19.12.0.0.0-1.x86_64.rpm
rpm -ivh oracle-instantclient19.12-sqlplus-19.12.0.0.0-1.x86_64.rpm
配置环境变量
vim /etc/profile
export ORACLE_HOME=/usr/lib/oracle/19.12/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$PATH:$ORACLE_HOME/bin
执行下面的命令让配置生效
source /etc/profile
添加动态库配置文件
vim /etc/ld.so.conf
vim /etc/ld.so.conf.d/oracle-instantclient.conf
添加
/usr/lib/oracle/11.2/client64/lib
执行命令ldconfig
查看python版本
python -V
python版本与cx_Oracle版本要一致,我的安装cx_Oracle2.7失败,改用了python3.6
先删除链接
rm -rf /usr/bin/python
删除后再建立新的链接关系:
ln -s /usr/bin/python3 /usr/bin/python
安装python相关包
安装argparse
下载3.6版本
wget https://bootstrap.pypa.io/pip/3.6/get-pip.py
python get-pip.py
pip install argparse
安装cx_Oracle(python连接oracle的包)
https://pypi.org/project/cx-Oracle/#files
cx_Oracle-8.2.1-cp36-cp36m-manylinux1_x86_64.whl
pip install cx_Oracle-8.2.1-cp36-cp36m-manylinux1_x86_64.whl
联网的话直接pip install cx_Oracle也行
上传python脚本
将附件中的pyora.py脚本放入/usr/lib/zabbix/externalscripts/目录下
赋权限,让zabbix用户能够执行该脚本
chmod 755 /usr/lib/zabbix/externalscripts/pyora.py
注意:先在被监控机的oracle数据库中创建监控用户,用户名和密码可以自己随意指定
create user zabbix identified by zabbix;
grant connect, select any dictionary to zabbix;
测试脚本
python pyora.py --username zabbix --password zabbix --address 192.168.100.120 --port 1521 --database orcltest show_tablespaces
上面测试脚本的参数说明
username: 用户名
password: 密码
address: 被监控机ip地址
port: 端口号
database: oracle service name
有返回结果表示脚本能正常运行
上传template文件
将附件中的Pyora_ExternalCheck_11G.xml模板导入到zabbix server中
在zabbix页面中,依次点击Configuration – Templates – Import – 选择文件 – Import,即完成了导入
添加机器,并链接到模板
在zabbix页面中,依次点击Configuration – Hosts – Create host – Hostname (输入ip地址) – groups (选Linux servers) – Templates (选择Pyora_ExternalCheck_11G) – 点击上面的Add – Macros – 点击上面的Add添加宏,全部添加完毕后,点击下面的Add,主机即添加完毕
查看监控数据
Monitoring – Latest Data – Host (选择对应的主机),则可以看到监控的数据了
cx-Oracle下载地址
https://pypi.org/project/cx-Oracle/#files
https://pypi.org/project/cx-Oracle/7.0.0/#files
get-pip.py下载地址
https://bootstrap.pypa.io/pip
https://bootstrap.pypa.io/pip/2.7/get-pip.py
https://bootstrap.pypa.io/pip/3.6/get-pip.py
附件:pyora.py,Pyora_ExternalCheck_11G.xml地址放在百度网盘上
链接:https://pan.baidu.com/s/1NBtHtuaT-t74qrY80jRygw
提取码:1234