zabbix 用 LLD 完全自動化監控 Oracle

來源:互聯網
上載者:User

標籤:

文章轉載自:http://mp.weixin.qq.com/s?__biz=MzA3MzYwNjQ3NA==&mid=2651296856&idx=1&sn=2bdf780719d3bd913f80ebab18ada237&scene=23&srcid=0719KBxswRECyHXV3DbvSgSS#rd

在這裡本人只是作為好的文章儲存,不做他用

原創 2016-07-19 南非蜘蛛 營運幫

上次寫完《 Zabbix用好LLD,立馬感覺高大上許多》後,近期又遇到一個用 Zabbix 監控 Oracle 的需求,有一些心得體會,記錄一下以備後用。

 

這次還是用到了 Zabbix 的 LLD 功能,這個功能可謂是:無 LLD 不 Zabbix ,強大到讓人想哭。

 

一、Orabbix 和 Zabora 的問題

 

一開始用 Orabbix 監控 Oracle,這個外掛程式的工作模式是配置好執行個體資訊,然後起一個JAVA程式,這個進程會根據定義好的查詢語句擷取到資料,用Trapper模式發送給 Zabbix 收集並展現。

 

但是用 Orabbix 監控 Oracle 存在幾個問題:

1、JAVA程式需要 JRE 環境,但實際情況是:並不是所有機器都安裝了JRE。

2、每個執行個體都需要在 Zabbix 裡配置一個HOST,這是一個非人性化的設計。

3、Orabbix 不在 Zabbix 架構內,不受 Zabbix 統一管理,要想升級、配置的話都麻煩要死。

4、不能自動探索執行個體的所有資料表空間,我們非常需要這個功能。

5、最可怕的是網上的好多中文文檔全有問題,走了很多彎路。

 

用了一段 Orabbix 時間後,果斷放棄,目光轉向了 Zabora 外掛程式,這是用 Shell 寫的,Zabora 設計思路還可以,不過寫的有點簡陋,也不能滿足我的需求。有興趣的朋友可以在全球最大的同性交友網站github上搜尋:zabora

 

所以,我打算重新造這個輪子。

 

二、監控 Oracle 的需求

 

1、可以自動探索所有資料庫執行個體並監控

2、可以自動探索所有資料庫執行個體裡的資料表空間,監控大小及使用率

3、可以靈活擴充監控選項

4、可以方便升級(如果在zabbix架構裡,我已經實現裡自動升級功能)

 

三、設計及功能詳解

 

首先來看一個 Oracle 資料庫的架構,和我們常用的MySQL有一點不一樣。

在一個資料庫裡可以有多個執行個體,每個執行個體下麵包括多個使用者和多個資料表空間。

 


 

我們最終要監控的 item 至少應該知道以下幾個資訊:

執行個體名字、資料庫使用者名稱、資料庫密碼、管理資料庫的作業系統使用者及環境檔案,如果要監控資料表空間,還需要資料表空間的名字。

 

聽起來還是比較暈的,下面我來梳理一下這些資訊。

 

四、幾個主要程式的作用:

 

1) key.conf 檔案中定義了4個key

 



第一個key用來發現有幾個執行個體

第二個key用來擷取執行個體裡需要監控的值

第三個key用來發現所有執行個體裡所有的資料表空間

第四個key用來擷取資料表空間的大小和使用率

 

2) oracle.conf 定義了執行個體的基本資料

 


其實也可以沒有這個檔案,但是需要滿足一些條件,完全做到關聯模板就自動探索並監控。

 

但是需要兩個條件,有興趣的朋友可以試試:

  • 用程式發現所有執行個體及運行執行個體的使用者,這個簡單

    ps -ef|grep smon|grep -v grep|awk ‘{print $8}‘|awk -Fora_smon_ ‘{print $2}‘

  • 為 Zabbix 在所有資料庫裡建立統一的監控帳號和密碼,然後在擷取資料裡的shell定義或者從Zabbix web傳參給擷取資料的shell也行。

 

3、discover_oracle_db.sh

發現所有執行個體並輸出JSON格式資料給Zabbix

 

4、discover_oracle_tb.sh

發現所有執行個體及資料表空間並輸出JSON格式資料給Zabbix

 

5、sql目錄下的*.sql

sql目錄下的所有sql檔案都是用到的執行語句,所以在shell裡你看不到具體的執行語句,都是調用的這裡的,在shell裡的調用文法大概都是這樣:

 

sqlplus -s ${DB_USER}/${DB_PASS} @/etc/zabbix/zabbix_agentd.d/script/sql/xxxxx.sql

 

如果你需要擴充監控,還需要添加一個對應的sql語句

 

五、在Zabbix Web裡配置監控項

 

1、添加兩個自動探索,一個資料庫執行個體自動探索,一個資料庫資料表空間自動探索。

2、添加需要監控的item及trigger等

 

六、Latest data裡的效果

 

三個Applications分組

 

 

所有執行個體裡的監控項

 



所有執行個體裡所有資料表空間的使用率

 

 

理論上這套架構設計可以滿足多資料庫執行個體(單一實例,叢集執行個體)、多資料表空間的自動探索及監控需求。

 

代碼我需要整理一下發布,因我不太懂Oracle,誰要是很懂,可以幫我寫一些oracle監控語句,我豐富一下監控項,加我yunweibang008

 

在此感謝搜狐暢遊的楊建榮同學,他也是業內知名 Oracle 專家,幫我貢獻了很多Oracle sql語句,下面是他的個人訂閱號,有很多乾貨,值得關注。

zabbix 用 LLD 完全自動化監控 Oracle

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.