使用zabbix監控oracle數據庫的方法詳解
一、概述
zabbix是一款非常強大,同時也是應用最為廣泛的開源監控軟件,本文將給大傢介紹如何利用zabbix+python監控oracle數據庫。
二、環境介紹
以下是我安裝的環境,實際部署時並不需要跟我的環境一樣。
1. 監控機 Redhat Linux 6.5 + Zabbix server 3.4.10 + Python 2.6.6 (操作系統自帶) + Oracle Client 11.2 (x86_64)
2. 被監控機 Oracle 11.2.0.4
三、選擇監控方式
zabbix監控的方式主要有以下三種類型
Zabbix agent
在被監控機上面安裝zabbix agent,zabbix agent將被監控機采集到的數據發送給zabbix server。這種方式最常用,一般用來采集服務器的cpu、內存等信息。
SNMP
一些網絡設備如交換機,上面無法安裝zabbix agent,所以隻能通過snmp的方式收集監控數據如端口狀態,流量等。
External check
在zabbix server上面運行查詢腳本,直接查詢被監控機上的數據。此種方式在被監控機上面不需要做任何部署,所有查詢全部從zabbix server上面發出,所以對zabbix server的性能要求較高,官方不推薦大量使用該方式。對於少量的oracle數據庫服務器,可以采用該方式。
本文介紹的就是使用external check方式去監控oracle數據庫。
四、規劃監控項
監控數據庫的目的是為瞭保障數據庫穩定運行,一旦出現故障,dba能夠及時發現並介入處理,監控項分為以下兩類
1. 數據庫空間不足或數據庫發生故障,DBA需要立即處理。
監控項包括表空間、用戶狀態、實例狀態、鎖、大量等待事件、閃回區使用率等。此類監控項需要給其設置觸發器,一旦出現異常,及時告警。
2. 數據庫運行狀態的一些統計信息,為DBA定位數據庫性能問題發生的時間和類別提供參考。
監控項包括常見的等待事件發生的次數,命中率、硬解析比例等。
下面表格中列出附件中模板的監控項
五、安裝
上面閑話扯完,進入正式安裝環節,我假定你已經安裝瞭zabbix server,因此這裡略過zabbix server的安裝步驟。
以下所有操作均在zabbix服務器上面執行
安裝oracle客戶端
從官網下載如下三個rpm包
oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm
oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm
使用root安裝oracle客戶端
rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
rpm -ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm
rpm -ivh oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm
配置環境變量
vi + /etc/profile
———————————————
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$PATH:$ORACLE_HOME/bin
執行下面的命令讓配置生效
source /etc/profile
添加動態庫配置文件
vi + /etc/ld.so.conf.d/oracle.conf
—————————————
/usr/lib/oracle/11.2/client64/lib
執行命令ldconfig
連接oracle進行測試
SQL> sqlplus scott/[email protected]:1521/orcltest
SQL*Plus: Release 11.2.0.4.0 Production on Wed Apr 24 18:24:28 2019
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
出現上面的提示證明oracle client安裝成功
安裝python相關包
安裝cx_Oracle(python連接oracle的包)
wget http://downloads.sourceforge.net/project/cx-oracle/5.1.2/cx_Oracle-5.1.2-11g-py26-1.x86_64.rpm
rpm -ivh cx_Oracle-5.1.2-11g-py26-1.x86_64.rpm
安裝argparse
wget https://bootstrap.pypa.io/2.6/get-pip.py –no-check-certificate
python get-pip.py
pip install argparse
上傳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 10.30.10.32 –port 1521 –database office show_tablespaces
上面測試腳本的參數說明
username: 用戶名
password: 密碼
address: 被監控機ip地址
port: 端口號
database: oracle service name
有返回結果表示腳本能正常運行
上傳template文件
將附件中的Pyora_ExternalCheck_11G.xml模板導入到zabbix server中
在zabbix頁面中,依次點擊Configuration – Templates – Import – 選擇文件 – Import,即完成瞭導入
查看監控數據
Monitoring – Latest Data – Host (選擇對應的主機),則可以看到監控的數據瞭
參考: https://github.com/bicofino/Pyora
附件:
pyora.py,Pyora_ExternalCheck_11G.xml地址放在github上
https://github.com/YangBaohust/zabbix_templates
到此這篇關於使用zabbix監控oracle數據庫的方法詳解的文章就介紹到這瞭,更多相關zabbix監控oracle數據庫內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 使用Docker制作Python環境連接Oracle鏡像
- 教你使用PLSQLDeveloper14連接Oracle11g的詳細過程
- RPM包方式安裝Oracle21c的方法詳解
- Oracle11g R2 安裝教程完整版
- python安裝cxOracle避坑總結不要直接pip install