使用zabbix監(jiān)控oracle數(shù)據(jù)庫的方法詳解
一、概述
zabbix是一款非常強(qiáng)大,同時(shí)也是應(yīng)用最為廣泛的開源監(jiān)控軟件,本文將給大家介紹如何利用zabbix+python監(jiān)控oracle數(shù)據(jù)庫。
二、環(huán)境介紹
以下是我安裝的環(huán)境,實(shí)際部署時(shí)并不需要跟我的環(huán)境一樣。
1. 監(jiān)控機(jī) Redhat Linux 6.5 + Zabbix server 3.4.10 + Python 2.6.6 (操作系統(tǒng)自帶) + Oracle Client 11.2 (x86_64)
2. 被監(jiān)控機(jī) Oracle 11.2.0.4
三、選擇監(jiān)控方式
zabbix監(jiān)控的方式主要有以下三種類型
Zabbix agent
在被監(jiān)控機(jī)上面安裝zabbix agent,zabbix agent將被監(jiān)控機(jī)采集到的數(shù)據(jù)發(fā)送給zabbix server。這種方式最常用,一般用來采集服務(wù)器的cpu、內(nèi)存等信息。
SNMP
一些網(wǎng)絡(luò)設(shè)備如交換機(jī),上面無法安裝zabbix agent,所以只能通過snmp的方式收集監(jiān)控?cái)?shù)據(jù)如端口狀態(tài),流量等。
External check
在zabbix server上面運(yùn)行查詢腳本,直接查詢被監(jiān)控機(jī)上的數(shù)據(jù)。此種方式在被監(jiān)控機(jī)上面不需要做任何部署,所有查詢?nèi)繌膠abbix server上面發(fā)出,所以對zabbix server的性能要求較高,官方不推薦大量使用該方式。對于少量的oracle數(shù)據(jù)庫服務(wù)器,可以采用該方式。
本文介紹的就是使用external check方式去監(jiān)控oracle數(shù)據(jù)庫。
四、規(guī)劃監(jiān)控項(xiàng)
監(jiān)控?cái)?shù)據(jù)庫的目的是為了保障數(shù)據(jù)庫穩(wěn)定運(yùn)行,一旦出現(xiàn)故障,dba能夠及時(shí)發(fā)現(xiàn)并介入處理,監(jiān)控項(xiàng)分為以下兩類
1. 數(shù)據(jù)庫空間不足或數(shù)據(jù)庫發(fā)生故障,DBA需要立即處理。
監(jiān)控項(xiàng)包括表空間、用戶狀態(tài)、實(shí)例狀態(tài)、鎖、大量等待事件、閃回區(qū)使用率等。此類監(jiān)控項(xiàng)需要給其設(shè)置觸發(fā)器,一旦出現(xiàn)異常,及時(shí)告警。
2. 數(shù)據(jù)庫運(yùn)行狀態(tài)的一些統(tǒng)計(jì)信息,為DBA定位數(shù)據(jù)庫性能問題發(fā)生的時(shí)間和類別提供參考。
監(jiān)控項(xiàng)包括常見的等待事件發(fā)生的次數(shù),命中率、硬解析比例等。
下面表格中列出附件中模板的監(jiān)控項(xiàng)
五、安裝
上面閑話扯完,進(jìn)入正式安裝環(huán)節(jié),我假定你已經(jīng)安裝了zabbix server,因此這里略過zabbix server的安裝步驟。
以下所有操作均在zabbix服務(wù)器上面執(zhí)行
安裝oracle客戶端
從官網(wǎng)下載如下三個(gè)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
配置環(huán)境變量
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
執(zhí)行下面的命令讓配置生效
source /etc/profile
添加動(dòng)態(tài)庫配置文件
vi + /etc/ld.so.conf.d/oracle.conf
---------------------------------------
/usr/lib/oracle/11.2/client64/lib
執(zhí)行命令ldconfig
連接oracle進(jìn)行測試
SQL> sqlplus scott/tiger@192.168.56.101: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>
出現(xiàn)上面的提示證明oracle client安裝成功
安裝python相關(guān)包
安裝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/目錄下
賦權(quán)限,讓zabbix用戶能夠執(zhí)行該腳本
chmod 755 /usr/lib/zabbix/externalscripts/pyora.py
[注意:先在被監(jiān)控機(jī)的oracle數(shù)據(jù)庫中創(chuàng)建監(jiān)控用戶,用戶名和密碼可以自己隨意指定
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
上面測試腳本的參數(shù)說明
username: 用戶名
password: 密碼
address: 被監(jiān)控機(jī)ip地址
port: 端口號(hào)
database: oracle service name
有返回結(jié)果表示腳本能正常運(yùn)行
上傳template文件
將附件中的Pyora_ExternalCheck_11G.xml模板導(dǎo)入到zabbix server中
在zabbix頁面中,依次點(diǎn)擊Configuration – Templates – Import – 選擇文件 – Import,即完成了導(dǎo)入
查看監(jiān)控?cái)?shù)據(jù)
Monitoring – Latest Data – Host (選擇對應(yīng)的主機(jī)),則可以看到監(jiān)控的數(shù)據(jù)了
參考: https://github.com/bicofino/Pyora
附件:
pyora.py,Pyora_ExternalCheck_11G.xml地址放在github上
https://github.com/YangBaohust/zabbix_templates
到此這篇關(guān)于使用zabbix監(jiān)控oracle數(shù)據(jù)庫的方法詳解的文章就介紹到這了,更多相關(guān)zabbix監(jiān)控oracle數(shù)據(jù)庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
zabbix監(jiān)控4.4升級(jí)至5.0的詳細(xì)教程
這篇文章主要介紹了zabbix監(jiān)控4.4升級(jí)至5.0的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07在centos7安裝zabbix3.0的超詳細(xì)步驟記錄
這篇文章主要給大家介紹了關(guān)于在centos7安裝zabbix3.0的超詳細(xì)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10Zabbix如何使用過濾器實(shí)現(xiàn)監(jiān)控
這篇文章主要介紹了Zabbix如何使用過濾器實(shí)現(xiàn)監(jiān)控,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08Zabbix監(jiān)控多個(gè)JVM進(jìn)程的方法
這篇文章主要介紹了Zabbix監(jiān)控多個(gè)JVM進(jìn)程的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09zabbix利用python腳本發(fā)送報(bào)警郵件的方法
這篇文章是是用外部腳本python實(shí)現(xiàn)zabbix的報(bào)警機(jī)制的。對于zabbix3.0此處存在一個(gè)小改動(dòng),忙活了一天才找到原因噠。下面就來看看詳細(xì)的介紹吧,有需要的朋友們可以參考借鑒。2016-12-12Zabbix對Kafka?topic積壓數(shù)據(jù)監(jiān)控的問題(bug優(yōu)化)
這篇文章主要介紹了Zabbix對Kafka?topic積壓數(shù)據(jù)監(jiān)控,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07利用zabbix監(jiān)控ogg進(jìn)程(Windows平臺(tái))
這篇文章主要介紹了利用zabbix監(jiān)控ogg進(jìn)程(Windows平臺(tái))的步驟,幫助大家監(jiān)控windows平臺(tái)下的ogg程序,感興趣的朋友可以參考下2020-12-12zabbix通過percona插件監(jiān)控mysql的方法
這篇文章主要介紹了zabbix通過percona插件監(jiān)控mysql的方法步驟詳解,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-06-06Zabbix自定義腳本監(jiān)控nginx以及微信告警的全過程
zabbix是一個(gè)基于WEB界面的提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡(luò)監(jiān)視功能的企業(yè)級(jí)的開源解決方案,下面這篇文章主要給大家介紹了關(guān)于Zabbix自定義腳本監(jiān)控nginx以及微信告警的相關(guān)資料,需要的朋友可以參考下2022-04-04