控實踐)
【免費下載鏈接】community-templatesZabbix Community Templates repository項目地址https://gitcode.com/gh_mirrors/co/community-templates點擊查看免費下載本文以 community-templates 倉庫中 Databases/Oracle/template_3.0_for_pyora 目錄下的模板文檔與導入文件為對象完整解析名為Pyora active send的 Zabbix 模板它如何基于 PyOra 的主動發(fā)送active send機制通過 trapper 與低級別發(fā)現LLD實現對 Oracle 實例、表空間、臨時表空間、ASM 卷和數據庫用戶的全面監(jiān)控。讀完本文你將掌握該模板的宏配置、發(fā)現規(guī)則、采集項與觸發(fā)器體系并能在 Zabbix 5.0/5.4/6.0 環(huán)境中正確導入、配置與調優(yōu)這套 Oracle 監(jiān)控方案。模板背景為什么需要一個修復版 PyOra 模板PyOraPyOra for Zabbix是社區(qū)中廣泛使用的 Oracle 監(jiān)控工具它用 Python 腳本查詢 Oracle 動態(tài)性能視圖再把結果通過zabbix_sender主動推送給 Zabbix Server 的 trapper 監(jiān)控項Item。這種腳本采集 主動推送的架構避免了在數據庫主機上長期占用 Zabbix Agent 輪詢連接也天然適配只讀賬號 單向出站的安全環(huán)境。然而原版模板是為舊版本 Zabbix 設計的直接導入新版本會出現兼容性問題。本模板的作者在 Overview 中明確說明This is the fixed template for Zabbix PyOra to work on 3.0. I remove the unsupported tags and downgraded version. Note you will most likely have to update the triggers manually.即該模板去掉了新版 Zabbix 不支持的標簽tags并降級了導出版本使其能穩(wěn)定工作在 Zabbix 3.0 上同時提醒使用者——觸發(fā)器triggers大概率需要根據實際環(huán)境手動更新。值得注意的是這個面向 3.0 的修復版模板在倉庫中同時以三種導出格式存放目錄格式文件5.0XMLtemplate_3.0_for_pyora.xml5.4YAMLtemplate_3.0_for_pyora.yaml6.0YAMLtemplate_3.0_for_pyora.yaml三份文件的導出時間均為2021-11-21T21:26:5xZ且 YAML 中模板 UUID 一致7eae89aae9d747498d89b12d7f25df33說明它們是同一模板針對不同 Zabbix 版本生成的導出物可按需選用。倉庫根 README.md 的模板索引中也收錄了該模板Pyora active send。模板總體結構一個純 trapper 的主動發(fā)送模板導入后模板名為Pyora active send歸屬于Pyora與Templates兩個模板組共定義了 5 個應用ApplicationOracle、ASM Volumes、Tablespaces、Temp Tablespaces、Database Users。從 5.4 YAML 與 5.0 XML 的實現看模板呈現三個鮮明特征幾乎全部采用 Zabbix trapperTRAP類型普通指標項如commits、uptime、version與 LLD 原型項如tablespace[{#TABLESPACE}]均為 trapperdelay為0完全依賴 PyOra 腳本主動推數Zabbix 側不做輪詢。少量輔助項用 Zabbix agent 類型僅Zabbix items listpyora-items-list[...]為 agent 項更新周期 3600 秒用于校驗 PyOra 腳本是否成功在 Zabbix 中創(chuàng)建了完整條目清單。無模板鏈接Template linksREADME 明確標注 There are no template links in this template.該模板不依賴任何其他模板。數據流Oracle 數據庫 │ 只讀賬號查詢 v$ 視圖 ▼ PyOra Python 腳本在數據庫主機或獨立采集機上運行 │ zabbix_sender 主動推送trapper itemsdelay0 ▼ Zabbix Server ── trapper items ── 預處理器 ── 歷史/趨勢 ── 觸發(fā)器告警 ▲ └── Zabbix Agent 每 3600s 輪詢 pyora-items-list 做完整性自檢宏定義Macros接入前必須配置的變量模板在 README 宏表 中列出了 6 個宏與 XML 宏定義 一一對應宏名說明默認值類型{$ASMHIGH}ASM 卷使用率告警閾值%85Text macro{$DATABASE}被監(jiān)控的 Oracle 數據庫名如ORCL空Text macro{$HIGH}表空間使用率告警閾值%80Text macro{$ZABBIXPASSWORD}用于調用 Zabbix API 的密碼空Text macro{$ZABBIXURL}Zabbix API 地址如http://zabbix/api_jsonrpc.php空Text macro{$ZABBIXUSER}用于調用 Zabbix API 的用戶名空Text macro此外模板中的 item 鍵還引用了一個未在宏表中列出但實際被使用的宏{$ADDRESS}出現在所有pyora-discovery[...]與pyora-items-list[...]鍵中指 Oracle 實例地址以及{$ARCHIVE}用于check_archive[{$ARCHIVE}]監(jiān)控項。在 5.4/6.0 YAML 的宏區(qū) 中同樣只能看到{$ASMHIGH}、{$DATABASE}、{$HIGH}、{$ZABBIXPASSWORD}、{$ZABBIXURL}、{$ZABBIXUSER}六個宏定義因此{$ADDRESS}、{$ARCHIVE}需要在主機級或模板級手動補充。部署時建議在主機上統(tǒng)一設置否則帶{$ADDRESS}的發(fā)現規(guī)則與自檢項會因宏未解析而失效。低級別發(fā)現LLD規(guī)則自動盤點 Oracle 對象模板通過 4 條發(fā)現規(guī)則實現自動發(fā)現、自動建項詳見 README Discovery rules發(fā)現規(guī)則名稱鍵key類型更新周期過濾器宏Discovery Oracle temp tablespacespyora-discovery[{$ADDRESS},{$DATABASE},show_tablespaces_temp]Zabbix agent3600{#TABLESPACE_TEMP}Discovery Oracle tablespacespyora-discovery[{$ADDRESS},{$DATABASE},show_tablespaces]Zabbix agent3600{#TABLESPACE}Discovery Oracle ASM volumespyora-discovery[{$ADDRESS},{$DATABASE},show_asm_volumes]Zabbix agent3600{#ASMVOLUME}Discovery Oracle userspyora-discovery[{$ADDRESS},{$DATABASE},show_users]Zabbix agent3600{#DBUSER}這些規(guī)則由 PyOra 腳本的 discovery 輸出驅動腳本按show_*參數分別返回臨時表空間、表空間、ASM 卷、數據庫用戶清單Zabbix 據此生成對應的 LLD 原型項。需要特別注意5.4 YAML 與 6.0 YAML 中Discovery Oracle tablespaces與Discovery Oracle users兩條規(guī)則的狀態(tài)為DISABLED5.0 XML 中同樣標注statusDISABLED意味著導入后默認不會執(zhí)行發(fā)現需要按需啟用。各規(guī)則生成的原型項如下ASM 卷發(fā)現應用ASM Volumesasm_volume_free[{#ASMVOLUME}]ASM Volume Free單位 Basm_volume_size[{#ASMVOLUME}]ASM Volume Size單位 Basm_volume_use[{#ASMVOLUME}]ASM Volume Use單位 %表空間發(fā)現應用Tablespacestablespace[{#TABLESPACE}]Tablespace percentual use單位 %FLOATtablespace_abs[{#TABLESPACE}]Tablespace free單位 bytes臨時表空間發(fā)現應用Temp Tablespacestablespace_temp[{#TABLESPACE_TEMP}]Temp Tablespace Use單位 %FLOAT用戶發(fā)現應用Database Usersuser_status[{#DBUSER}]{#DBUSER} user statusTEXT 類型原型本身狀態(tài)為 DISABLED所有 LLD 原型項同樣都是 trapperTRAPdelay0等待 PyOra 按{#宏}展開后的具體鍵推送數據。采集指標Items47 個 trapper 指標 7 個 LLD 原型模板的采集項幾乎覆蓋了 Oracle 性能監(jiān)控的核心維度完整清單見 README Items collected 與 XML items 區(qū)。除Zabbix items list外全部為Zabbix trapper、Update: 0。按監(jiān)控維度可歸納為以下幾組實例與運行狀態(tài)指標名鍵說明Oracle/Instance is active and open on {$DATABASE}check_active實例存活與打開狀態(tài)CHAROracle/Uptime on {$DATABASE}uptime實例運行時長單位 sOracle/Version on {$DATABASE}versionOracle 版本CHAROracle/Logonscurrent on {$DATABASE}logonscurrent當前登錄會話數Oracle/Active user count on {$DATABASE}activeusercount活躍用戶數性能與等待事件指標名鍵Oracle/Read Cache hit ratio on {$DATABASE}rcachehit% Oracle/Hard parse ratio on {$DATABASE}hparsratio% Oracle/Disk sorts ratio on {$DATABASE}dsksortratio% Oracle/Buffer busy waits on {$DATABASE}bufbusywaitsOracle/Latchfree on {$DATABASE}latchfreeOracle/Enqueue on {$DATABASE}enqueue默認 DISABLEDOracle/freebufwaits on {$DATABASE}freebufwaits默認 DISABLEDOracle/Netresv / Netroundtrips / Netsentnetresv/netroundtrips/netsentOracle/dbseqread / dbscattread / directread / dbsnglwrite / dbprllwrite各類物理 I/O 計數事務、日志與鎖指標名鍵Oracle/User Commits on {$DATABASE}commitsOracle/Redo Writes on {$DATABASE}redowritesOracle/Deadlocks on {$DATABASE}deadlocksOracle/Logfilesync / Logprllwrite / Logswcompletionlogfilesync/logprllwrite/logswcompletionOracle/Lastarclog / Lastapplarcloglastarclog/lastapplarclog后者默認 DISABLEDOracle/Query Lock / Query Lock listquery_lock/query_lock_list2TEXTOracle/Query Redologs / Query Rollbacks / Query Sessionsquery_redologs/query_rollbacks/query_sessions容量與增長指標名鍵Oracle/Size of user data (without temp) on {$DATABASE}dbsize單位 BOracle/Size of all datafiles on {$DATABASE}dbfilesize單位 BOracle/fra_use on {$DATABASE}fra_useFast Recovery Area 使用率默認 DISABLEDOracle/Archive {$ARCHIVE} on {$DATABASE}check_archive[{$ARCHIVE}]% 默認 DISABLED系統(tǒng)指標sysmetrics指標名鍵Oracle/Database CPU Time Ratio on {$DATABASE}query_sysmetrics[Database_CPU_Time_Ratio]% Oracle/Database Wait Time Ratio on {$DATABASE}query_sysmetrics[Database_Wait_Time_Ratio]% Oracle/User Transaction Per Sec on {$DATABASE}query_sysmetrics[User_Transaction_Per_Sec]這三個指標直接對應 Oracle AWR 中的經典比率指標PyOra 通過query_sysmetrics[指標名]參數化的鍵按名稱取數FLOAT 類型存儲。自檢與完整性指標名鍵類型/周期Zabbix items listpyora-items-list[{$ZABBIXURL},{$ZABBIXUSER},{$ZABBIXPASSWORD},{HOST.HOST},{$ADDRESS},{$DATABASE}]Zabbix agent3600sCHARZabbix failed checks on {$DATABASE}failedcheckstrapperPyOra 上報失敗的推送計數其中Zabbix items list會調用 Zabbix APIURL/用戶名/密碼均來自宏把當前主機上應存在的條目清單寫入該 item若輸出中不包含關鍵字OK將觸發(fā)Cant create items list告警詳見下節(jié)是這套模板安裝是否正確的體檢指標。預處理器Preprocessing讓原始計數變成可讀指標從 YAML items 定義 可以看到模板為不同指標配置了三種預處理器預處理器作用應用到的鍵CHANGE_PER_SECOND將累計計數換算為每秒變化率速率commits、deadlocks、indexffs、netresv、redowrites、tblrowsscans、tblscansBOOL_TO_DECIMAL將布爾值true/false轉為 1/0 數值dbprllwrite、dbseqread、lastarclogMULTIPLIER×1048576將 MB 單位數值放大為字節(jié)Basm_volume_free[{#ASMVOLUME}]、asm_volume_size[{#ASMVOLUME}]見 YAML LLD 區(qū)這三類預處理器正是 PyOra原始值上報、Zabbix 側加工思路的體現腳本只負責把 Oracle 視圖里的計數值、布爾標志和 MB 尺寸推過來速率、歸一化和單位換算全部交給 Zabbix 預處理完成從而保持采集端腳本簡單、可移植。觸發(fā)器體系從災難告警到容量預警模板內置的觸發(fā)器在 README Triggers 中公開了 4 條而 XML 與 YAML 實際內置了更多按嚴重級別匯總如下嚴重級別觸發(fā)器名稱表達式以 5.4/6.0 新語法為例說明DISASTERDatabase {$DATABASE} is down or ORA error foundfind(/Pyora active send/check_active,,regexp,ORA)1check_active返回內容中出現ORA即告警提示聯系 DBAHIGHDatabase {$DATABASE} is not respondingnodata(/Pyora active send/check_active,800s)1800 秒無數據判定實例無響應HIGHfra_use used on {$DATABASE} 90%last(/Pyora active send/fra_use)90Fast Recovery Area 使用率超 90%AVERAGEASM Volume {#ASMVOLUME} used {$ASMHIGH}%(last(...asm_volume_size...) - last(...asm_volume_free...)) / last(...asm_volume_size...) *100 {$ASMHIGH}由 size/free 計算使用率后與{$ASMHIGH}比較AVERAGETablespace {#TABLESPACE} used on {$DATABASE} {$HIGH} %last(/Pyora active send/tablespace[{#TABLESPACE}]){$HIGH}表空間使用率超{$HIGH}AVERAGEZabbix sender failed checks count: {ITEM.LASTVALUE1}last(/Pyora active send/failedchecks)0上報失敗計數非零AVERAGEQuery Sessions on {$DATABASE} 250last(/Pyora active send/query_sessions)250會話數超 250AVERAGEQuery Lock on {$DATABASE} 1last(/Pyora active send/query_lock)0 and length(last(/Pyora active send/query_lock_list2))3鎖數大于 0 且鎖清單文本長度大于 3該觸發(fā)器在 XML 中為全局觸發(fā)器YAML 中位于文件末尾 triggers 區(qū)AVERAGEQuery Lock list on {$DATABASE} not emptylength(last(/Pyora active send/query_lock_list2))3鎖清單非空AVERAGECant create items listfind(/Pyora active send/pyora-items-list[...],,regexp,OK)0條目清單中找不到OK新舊版本表達式語法的差異README 提醒需手動更新觸發(fā)器的由來對比三個版本的導出文件能直觀看到 Zabbix 觸發(fā)器語法的演進5.0 XML 使用 Zabbix 3.x 時代的舊式簡寫如{Pyora active send:asm_volume_size[{#ASMVOLUME}].last()}、{regexp(ORA)}1、{nodata(800)}1、{last()}80。5.4/6.0 YAML 已改寫為新式函數語法last(/Pyora active send/... )、find(/Pyora active send/check_active,,regexp,ORA)1、nodata(/Pyora active send/check_active,800s)1、length(last(...))。這就是作者在 Overview 中提示 you will most likely have to update the triggers manually 的原因模板從舊版遷移而來跨版本導入后舊式表達式在新版 Zabbix 中可能無法直接解析需要按下表對照改寫。README 的 Triggers 表中表達式仍保留硬編碼閾值 85、 80而 YAML/XML 中的觸發(fā)器原型已改用宏{$ASMHIGH}、{$HIGH}配置時建議統(tǒng)一以宏為準便于批量調整閾值。部署步驟導入、配置與驗證1. 選擇版本并導入按目標 Zabbix 版本選擇導入文件通過 Zabbix 前端Configuration → Templates → ImportZabbix 版本導入文件5.0Databases/Oracle/template_3.0_for_pyora/5.0/template_3.0_for_pyora.xml5.4Databases/Oracle/template_3.0_for_pyora/5.4/template_3.0_for_pyora.yaml6.0Databases/Oracle/template_3.0_for_pyora/6.0/template_3.0_for_pyora.yaml2. 配置宏在主機或模板上設置以下宏{$DATABASE}Oracle 實例名如ORCL{$ADDRESS}Oracle 實例地址發(fā)現規(guī)則與 items-list 鍵使用{$ZABBIXURL}/{$ZABBIXUSER}/{$ZABBIXPASSWORD}Zabbix API 三要素供pyora-items-list自檢使用閾值宏{$HIGH}默認 80、{$ASMHIGH}默認 85可按業(yè)務調整如啟用歸檔檢查還需{$ARCHIVE}3. 掛載主機并啟用需要的規(guī)則把模板鏈接到 Oracle 主機后按需啟用默認 DISABLED 的發(fā)現規(guī)則show_tablespaces、show_users與指標項enqueue、fra_use、freebufwaits、lastapplarclog、check_archive、user_status原型等。4. 驗證數據流確認 PyOra 腳本能連接 Oracle 并以只讀賬號取數確認腳本通過zabbix_sender推送的鍵名與模板 item 鍵一一對應觀察Zabbix items list項的值是否包含OK若觸發(fā)Cant create items list則說明 API 宏配置或腳本側條目生成存在問題檢查failedchecks是否為 0非 0 時觸發(fā)Zabbix sender failed checks count告警提示存在推送失敗的鍵。注意事項與適用前提版本適配本模板名為 3.0實際為適配 Zabbix 3.0 的修復版?zhèn)}庫以 5.0/5.4/6.0 導出格式提供。導入前請確認目標 Zabbix 版本5.0 版本使用 XML5.4/6.0 使用 YAML舊式觸發(fā)器表達式跨版本導入后可能需要手動改寫參見上文新舊語法對照。默認禁用項多條發(fā)現規(guī)則、指標與原型show_tablespaces、show_users、fra_use、enqueue、freebufwaits、lastapplarclog、check_archive、user_status默認 DISABLED需按監(jiān)控需求啟用query_lock的觸發(fā)器在 XML 中狀態(tài)亦為 DISABLED。宏完整性{$ADDRESS}、{$ARCHIVE}未出現在模板宏表中必須自行補充否則相關鍵無法解析。采集前提所有 trapper 指標依賴 PyOra 腳本主動推送若腳本未運行或數據庫賬號權限不足Zabbix 側只會呈現無數據不會主動報錯需結合nodata類觸發(fā)器與failedchecks綜合判斷。閾值合理性觸發(fā)器閾值表空間 80%、ASM 85%、FRA 90%、會話 250、無數據 800s 等均為模板默認值生產環(huán)境請結合實例規(guī)格與容量規(guī)劃調整并優(yōu)先通過宏{$HIGH}、{$ASMHIGH}管理避免直接改動硬編碼表達式。小結Pyora active send模板完整呈現了一套PyOra 主動推送 Zabbix trapper 接收 LLD 自動發(fā)現 預處理加工的 Oracle 監(jiān)控范式47 個常規(guī) trapper 指標覆蓋實例狀態(tài)、等待事件、事務日志、鎖與容量維度7 個 LLD 原型實現表空間、臨時表空間、ASM 卷與用戶的自動盤點而pyora-items-list與failedchecks則為整套鏈路提供了自我校驗能力。對于仍在維護 Zabbix 3.0 時代 PyOra 方案、或希望在新版 Zabbix 上復用該采集架構的團隊倉庫中 README 與三份導入文件是可直接落地的參考實現跨版本遷移時請重點核對觸發(fā)器表達式語法與默認禁用項即可快速復現這套 Oracle 監(jiān)控體系。贊分享【免費下載鏈接】community-templatesZabbix Community Templates repository項目地址https://gitcode.com/gh_mirrors/co/community-templates點擊查看免費下載相關推薦Zabbix「Windows by Zabbix agent active」模板實戰(zhàn)指南基于主動式 Agent 的 Windows 全棧監(jiān)控Zabbix「Windows by Zabbix agent active」模板實戰(zhàn)指南基于主動式 Agent 的 Windows 全棧監(jiān)控 導讀 本文以 Z指標監(jiān)控可觀測性告警運維使用 Zabbix 6.0 模板監(jiān)控 Oracle Linux 上的 Focco ERP115 個監(jiān)控項實戰(zhàn)解析使用 Zabbix 6.0 模板監(jiān)控 Oracle Linux 上的 Focco ERP115 個監(jiān)控項實戰(zhàn)解析 本文基于 Zabbix CommunityZabbix 8.0 官方模板解析使用 Zabbix agent active 監(jiān)控 Podman 容器與宿主機Zabbix 8.0 官方模板解析使用 Zabbix agent active 監(jiān)控 Podman 容器與宿主機 本指南以倉庫內 Podman by Zabb指標監(jiān)控可觀測性告警運維上一篇Operit DeepSeek Responses 思考模式工具延續(xù)修復commentary 推理文本的捕獲、持久化與重放下一篇antislop雙模式實戰(zhàn)During實時過濾 vs After事后審計如何為你的項目選對模式創(chuàng)作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考