Zabbix透過Orabbix監控Oracle
Orabbix簡介
Orabbix 是設計用來為 zabbix 監控 Oracle 的資料庫的外掛,它提供多層次的監控,包括可用性和伺服器效能的指標。
它提供了從眾多Oracle例項採集的有效機制,進而提供此資訊的監控和效能指標。然後,您可以利用的zabbix的報告功能為收集的所有資料,並提供分析。目前的發行版中包含了一組預先定義的模板,包括從初始部署報警和圖形功能。然而,這些可以進行微調,以滿足您額需求和資料/監控要求。
Orabbix監控的內容
1、資料庫版本
2、歸檔日誌與生產趨勢
3、觸發器,表/過程命中率
4、邏輯IO效能
5、物理IO效能
6、PGA
7、SGA
8、共享池
9、Session
10、資料庫大小
Orabbix 是一個用來監控 資料庫例項的 Zabbix 外掛。(外掛安裝在zabbix-server端)
下載地址:
zabbix-server上操作
Orabbix是透過JDBC去連線oracle資料庫,然後過濾想要的資料,所以需要jdk環境
我測試過jdk1.7和1.8都可以,直接yum安裝,或者下載rpm包,rpm -ivh安裝,都可以
這裡,我是直接rpm安裝的,
[root@zabbix ~]# rpm -ivh jdk-8u102-linux-x64.rpm
Preparing... ########################################### [100%]
1:jdk1.8.0_102 ########################################### [100%]
在/opt目錄下新建一個orabbix目錄:
[root@oracle orabbix]#mkdir -p /opt/orabbix
(建議在此目錄下,如果放置其他目錄稍後需要更改orabbix的啟動檔案orabbix,啟動檔案預設寫在opt/orabbix目錄下 )
[root@zabbix opt]# cd orabbix/
上傳orabbix-1.2.3.zip
[root@zabbix orabbix]# ls
orabbix-1.2.3.zip
解壓
[root@zabbix orabbix]# unzip -q orabbix-1.2.3.zip
[root@zabbix orabbix]# ls
conf init.d lib orabbix-1.2.3.zip orabbixw.exe run.sh uninstall.cmd
doc install.cmd orabbix-1.2.3.jar orabbix.exe run.bat template
授權
[root@zabbix orabbix]# cd ..
[root@zabbix opt]# chmod -R a+x orabbix/
[root@zabbix ~]# cd /opt/orabbix/conf/
[root@zabbix conf]# ls
config.props log4j.properties query_a_1.props query_b.props query.props
config.props.sample log4j.properties.sample query_a.props query - Copy.props query.props.sample
[root@zabbix conf]# cp config.props.sample config.props
編輯配置檔案:
[root@zabbix conf]# vim config.props
源配置檔案
[root@zabbix conf]# egrep "^[a-Z,1-9]" config.props.sample
ZabbixServerList=ZabbixServer1,ZabbixServer2
ZabbixServer1.Address=IP_ADDRESS_OF_ZABBIX_SERVER
ZabbixServer1.Port=PORT_OF_ZABBIX_SERVER
ZabbixServer2.Address=IP_ADDRESS_OF_ZABBIX_SERVER
ZabbixServer2.Port=PORT_OF_ZABBIX_SERVER
OrabbixDaemon.PidFile=./logs/orabbix.pid
OrabbixDaemon.Sleep=300
OrabbixDaemon.MaxThreadNumber=100
DatabaseList=DB1,DB2,DB3
DatabaseList.MaxActive=10
DatabaseList.MaxWait=100
DatabaseList.MaxIdle=1
DB1.Url=jdbc:oracle:thin:@server.domain.example.com:<LISTENER_PORT>:DB1
DB1.User=zabbix
DB1.Password=zabbix_password
DB1.MaxActive=10
DB1.MaxWait=100
DB1.MaxIdle=1
DB1.QueryListFile=./conf/query.props
DB2.Url=jdbc:oracle:thin:@server2.domain.example.com:<LISTENER_PORT>:DB2
DB2.User=zabbix
DB2.Password=zabbix_password
DB2.QueryListFile=./conf/query.props
DB3.Url=jdbc:oracle:thin:@server3.domain.example.com:<LISTENER_PORT>:DB3
DB3.User=zabbix
DB3.Password=zabbix_password
DB3.QueryListFile=./conf/query.props
修改之後
[root@zabbix conf]# egrep "^[a-Z,1-9]" config.props
ZabbixServerList=ZabbixServer1 #(zabbixserver的名字,下行中address和port都引用到了這個名字,所以下面兩行的字首名字要與這裡的名字保持一致)
ZabbixServer1.Address=127.0.0.1 #我這裡就是在zabbix server上面操作的,所以這裡是127.0.0.1
ZabbixServer1.Port=10051 #zabbix server的服務埠
OrabbixDaemon.PidFile=./logs/orabbix.pid
OrabbixDaemon.Sleep=300
OrabbixDaemon.MaxThreadNumber=100
DatabaseList=172.20.10.183-oracle,192.168.56.99-oracle #這裡很重要,跟下面的對應上
DatabaseList.MaxActive=10
DatabaseList.MaxWait=100
DatabaseList.MaxIdle=1
172.20.10.183-oracle.Url=jdbc:oracle:thin:@172.20.10.183:1521:orcl #172.20.10.183 oracle資料庫的地址,1521埠,orcl資料庫例項名
172.20.10.183-oracle.User=zabbix #授權的賬號
172.20.10.183-oracle.Password=zabbix #授權的密碼
172.20.10.183-oracle.MaxActive=10
172.20.10.183-oracle.MaxWait=100
172.20.10.183-oracle.MaxIdle=1
172.20.10.183-oracle.QueryListFile=./conf/query.props #要查詢的語句都在這定義的,不滿意自己改
oracle主機上操作(這步可以省略,只要知道資料庫例項,賬號,密碼)
下面是oracle 11g的(12c 語法不一樣)授權語句如下,創使用者,授權,這些操作,我都是在oracle資料庫的sqlplus下執行的
登入資料庫並授予使用者相關許可權即可。
DatabaseList中放的是被監控的資料庫主機名,該名稱要和zabbix server介面中的機器名稱保持一致
你會發現有一些監控項dbfilesize,dbsize沒有值,這是因為/opt/orabbix/conf/query.props檔案沒有把這兩個加入進查詢的List下面,可以從query.props.sample把這兩項複製進去
在QueryList最後面加上dbfilesize,dbsize
然後在檔案末尾加入:
1
2
3
4
5
6
7
8
|
dbfilesize.Query=
select
to_char(
sum
(bytes
/1024/1024/10
),
'FM99999999999999990'
) retvalue from dba_data_files
dbsize.Query=SELECT to_char(
sum
( NVL(a.bytes
/1024/1024/10
- NVL(f.bytes
/1024/1024/10
, 0), 0)),
'FM99999999999999990'
) retvalue \
FROM sys.dba_tablespaces d, \
(
select
tablespace_name,
sum
(bytes) bytes from dba_data_files group by tablespace_name) a, \
(
select
tablespace_name,
sum
(bytes) bytes from dba_free_space group by tablespace_name) f \
WHERE d.tablespace_name = a.tablespace_name(+) AND d.tablespace_name = f.tablespace_name(+) \
AND NOT (d.extent_management like
'LOCAL'
AND d.contents like
'TEMPORARY'
)
|
在oracle資料庫上建立zabbix使用者,並授權
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
CREATE
USER
zabbix
IDENTIFIED
BY
zabbix
DEFAULT
TABLESPACE SYSTEM
TEMPORARY
TABLESPACE
TEMP
PROFILE
DEFAULT
ACCOUNT UNLOCK;
– 2 Roles
for
ZABBIX
GRANT
CONNECT
TO
ZABBIX;
GRANT
RESOURCE
TO
ZABBIX;
ALTER
USER
ZABBIX
DEFAULT
ROLE
ALL
;
– 5 System
Privileges
for
ZABBIX
GRANT
SELECT
ANY
TABLE
TO
ZABBIX;
GRANT
CREATE
SESSION
TO
ZABBIX;
GRANT
SELECT
ANY
DICTIONARY
TO
ZABBIX;
GRANT
UNLIMITED TABLESPACE
TO
ZABBIX;
GRANT
SELECT
ANY
DICTIONARY
TO
ZABBIX;
|
如果需要嚴格的許可權控制,可以執行如下指令碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
CREATE
USER
zabbix
IDENTIFIED
BY
zabbix
DEFAULT
TABLESPACE USERS
TEMPORARY
TABLESPACE
TEMP
PROFILE
DEFAULT
ACCOUNT UNLOCK;
|
啟動orabbix
[root@zabbix orabbix]# cp init.d/orabbix /etc/init.d/
[root@zabbix orabbix]# ll /etc/init.d/orabbix
-rwxr-xr-x 1 root root 1693 Sep 14 21:40 /etc/init.d/orabbix
[root@zabbix orabbix]# /etc/init.d/orabbix start
linux7 啟動orabbix
Starting Orabbix service:
報錯的話,檢查配置檔案,資料庫地址,埠,例項名,賬號,密碼是否正確,需要驗證對於不懂oracle的怎麼辦,搜命令唄,我也是一路過來,各種坑~~~~~
然後裡面看日誌
[root@zabbix orabbix]# tailf /opt/orabbix/logs/orabbix.log
[main] INFO Orabbix - --------- on Database -> orcl
[pool-1-thread-1] WARN Orabbix - Error while executing ->dbversion- on database ->172.20.10.183-oracle- Exception received ORA-24247: network access denied by access control list (ACL)
ORA-06512: at "SYS.UTL_INADDR", line 4
ORA-06512: at "SYS.UTL_INADDR", line 35
ORA-06512: at line 1
出現這些日誌,不影響後面的操作
如果是oracle11g使用者還需要開放ACL訪問控制
1
2
3
|
exec
dbms_network_acl_admin.create_acl(acl =>
'resolve.xml'
,description =>
'resolve acl'
, principal =>
'ZABBIX'
, is_grant =>
true
, privilege =>
'resolve'
);
exec
dbms_network_acl_admin.assign_acl(acl =>
'resolve.xml'
, host =>
'*'
);
commit
;
|
到此,安裝配置完成,則透過web頁面訪問監控介面直接匯入模板即可
模版放置在/opt/orabbix/template下
Orabbix_export_full.xml #只需要匯入這個一個模板就好
新增主機
然後連結oracle的模板
新增完成之後的效果
檢視最新資料
這時候圖也有了
常見錯誤
[root@zabbix orabbix]# tailf /opt/orabbix/logs/orabbix.log
[main] ERROR Orabbix - Error on Configurator for database 172.20.10.183 oracle -->ORA-01017: invalid username/password; logon denied
config.props配置檔案中,資料庫賬號密碼不對,或者在oracle資料庫沒授權這個使用者
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25469263/viewspace-2638043/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Orabbix監控指標指標
- 【Zabbix配置】透過iLO進行Zabbix監控——針對HP伺服器整合伺服器
- Zabbix+Python監控Oracle資料庫PythonOracle資料庫
- Zabbix如何監控Oracle的告警日誌Oracle
- zabbix監控
- 使用zabbix監控oracle的後臺日誌Oracle
- Zabbix監控ActiveMQMQ
- Zabbix監控之遷移Zabbix
- Zabbix5.0 配置 ODBC 監控 Oracle 資料庫Oracle資料庫
- zabbix5.0監控安全配置全過程
- zabbix監控平臺
- 【監控】Zabbix安裝
- zabbix的主動模式監控和zabbix-proxy分散式監控模式分散式
- 【Zabbix】如何使用Zabbix進行IPMI監控?
- Zabbix監控安裝部署
- zabbix監控windows DHCP serverWindowsServer
- Zabbix實戰--監控NginxNginx
- Zabbix監控使用進階
- 【Zabbix】使用dbforbbix 2.2-beta監控Redhat 7.0上的Oracle、MysqlORBRedhatOracleMySql
- Zabbix監控平臺的搭建
- zabbix監控閱讀目錄
- Zabbix監控 MS SqlServer2019SQLServer
- 使用Zabbix + Python對Mysql監控PythonMySql
- Zabbix新增主機監控-zabbix+grafana從零設計自己的監控平臺Grafana
- Zabbix Agent active主動模式監控模式
- zabbix清除歷史監控資料
- Zabbix監控神通資料庫教程資料庫
- 五、自定義Zabbix監控專案
- Zabbix企業分散式監控工具分散式
- Zabbix監控阿里雲SLB操作指引阿里
- 一、自動化監控利器-Zabbix
- Zabbix學習(五)之Zabbix Agent Active 主動模式監控模式
- zabbix監控頁面自動截圖
- python獲取zabbix監控項圖形Python
- 分散式監控系統之Zabbix proxy分散式
- Linux監控平臺介紹 zabbix監控介紹 安裝zabbix 忘記Admin密碼如何做Linux密碼
- 分散式監控系統之Zabbix主動、被動及web監控分散式Web
- 在使用 zabbix 4 時, orabbix 會報錯的處理方法