Daria Vilkova 為 Zabbix Meetup Online 所做的報告
我想向您介紹我們公司正在使用Zabbix開發的PostgreSQL和操作系統監控工具。
我們長期以來選擇Zabbix作為我們的監控工具,因為它是一個由活躍社區支持的開源平台,在俄羅斯非常受歡迎。
我們創建了一個主動代理 - Mamonsu,它提供了比當時允許的標準工具更靈活的監控,並確保收集指標並將其發送到 Zabbix Server。 在我們公司,Mamonsu用於審核。
馬蒙蘇
Mamonsu 是一個用於監控 PostgreSQL 和操作系統的主動代理(Zabbix Trapper)。 Mamonsu(用 Python 編寫)允許您在五分鐘內配置 PostgreSQL 和操作系統監控設置。
Mamonsu 還有其他工具:
- mamonsuune 是一個命令,用於編輯安裝 Mamonsu 代理的計算機的 PostgreSQL 配置文件中的設置。
- mamonsu report 是一個生成有關操作系統和 PostgreSQL 的答案的命令。
Mamonsu 安裝在 DBMS 服務器上,收集信息,將其組合成 JSON,然後將其發送到 Zabbix Server 進行可視化,其中應該有一個指標模板。
馬蒙蘇工作計劃
特點 Mamonsu
- 使用 PostgreSQL 高效工作。 與 PostgreSQL 的持久連接是 Mamonsu 的主要優點。 在這種情況下,最大連接數等於它連接的最大數據庫數。
- 可擴展性。 Mamonsu 是一個完全“插件”的代理,由於每個插件的固定結構和 Python 的相對簡單性,人們可以輕鬆學習如何編寫新的或編輯標準插件,即指標收集參數。
- 監控指標覆蓋面廣 對於 PotgreSQL,包括特定於擴展的指標。
- 快速啟動, 開箱即用的可用性.
- 上傳模板和配置文件,以及上傳到Zabbix Server。
- 跨平台,這對於我們使用各種Linux發行版(包括國內發行版)的客戶來說非常重要。
- BSD 條款許可證.
目前我們提供了很多插件,並且在每個下一個版本中我們嘗試添加新的東西。
- 14 個 PostgreSQL 插件,
- 8 個適用於 Linux 操作系統的插件,
- 4 個適用於 Windows 操作系統的插件。
Mamonsu 收集了 110 多個 PostgreSQL 和操作系統指標:
- 70 個 PostgreSQL 指標,
- 40 個操作系統 Linux 指標,
- 8 個操作系統 Windows 指標。
關鍵指標包括 DBMS 可用性、連接數、數據庫大小、檢查點、讀/寫速度、鎖、autovacuum 進程數和 WAL 生成速度。 可用指標的完整列表以及所有工具的詳細說明可在
GitHub 上可用指標的列表
5 分鐘內運行 Mamonsu
要使用Mamonsu設置對PostgreSQL和操作系統的監控,您可以通過以下5個簡單步驟在5分鐘內完成。
- 安裝Mamonsu。 Mamonsu 可以從源代碼構建或使用可用的軟件包。
$ git clone ... && cd mamonsu && python setup.py
build && python setup.py install
- 連接設置。 需要在agent.conf文件中設置PostgreSQL和Zabbix Server的連接參數。
/etc/mamonsu/agent.conf
- 將模板導出到 Zabbix Server.
$ mamonsu zabbix template export
/usr/share/mamonsu/example.xml
- 添加主機到 Zabbix Server。 導出的模板將自動連接到 Zabbix Server 上的新主機。
$ mamonsu zabbix host create mamonsu-demo
- Запуск.
$ service mamonsu start
Mamonsu發展方向
作為 Mamonsu 開發的一部分,我們計劃完善指標並創建新的插件,例如用於監控單個表大小的插件。 我們還計劃改進和創建額外的工具,並通過命令擴展自動調整功能 馬蒙蘇調.
PostgreSQL 監控模塊作為 Zabbix Agent 2 的一部分
使用快速且流行的驅動程序連接到 PostgreSQL
到目前為止,我們使用了兩個接口:Exporter(通過密鑰調用處理程序)和 Configurator Zabbix Agent 2(讀取並檢查配置文件中指定的服務器的連接參數)。
我們嘗試通過對指標進行分組並使用指標和指標組的處理程序(handler),以及使用 JSON 中的指標組作為因變量(依賴項)以及低級發現(發現規則)來優化 DBMS 的工作)。
主要特點
- 在檢查之間保持與 PostgreSQL 的持久連接;
- 支持靈活的輪詢間隔;
- 兼容 PostgreSQL 10 版本和 Zabbix Server 4.4 版本;
- 由於 Zabbix Agent 2 允許您創建多個會話,因此能夠同時連接和監控多個 PostgreSQL 實例。
PostgreSQL 連接參數級別
PostgreSQL 連接參數總共分為三個級別,即任務和設置:
- 全球的,
- 會議,
- 宏。
-
全局參數在代理級別設置,會話和宏參數定義數據庫連接參數。
-
PostgreSQL 的連接參數 - 會話在文件中設置 zabbix_agent2.conf.
PostgreSQL 連接選項 - 會話
- 關鍵字之後 會議 指定了唯一的會話名稱,該名稱必須在密鑰(模板)中指定。
- 參數 的URI и 用戶名 每個會話都需要。
- 如果未指定基本名稱,則使用所有 PostgreSQL 會話的默認公共基本名稱,該名稱也在配置文件中設置。
- PostgreSQL 的連接參數 - 宏在模板中的度量鍵中設置(類似於 Zabbix Agent 1 中使用的方法),即它們在模板中創建,然後指定為鍵中的參數。 在這種情況下,宏的順序是固定的,即,例如, 的URI 總是列在第一位。
PostgreSQL 連接參數 - 宏
PostgreSQL 監控模塊已經包含超過 95 個指標,使您可以覆蓋相當廣泛的 PostgreSQL 參數,包括:
- 連接數
- 數據庫大小,
- 歸檔 wal 文件,
- 檢查站,
- “臃腫”的表的數量,
- 複製狀態,
- 副本延遲。
如果沒有操作系統參數,PostgreSQL 指標就無法提供信息。 但 Zabbix Agent 2 已經知道如何收集操作系統參數,因此為了獲得完整的情況,我們只需將必要的模板連接到主機即可。
處理程序
處理程序是模塊的主要單元,在其中執行請求本身並允許您接收指標。
要獲得一個簡單的指標:
- 創建一個文件以獲取新指標:
zabbix/src/go/plugins/postgres/handler_uptime.go
- 我們連接包並指定指標的唯一鍵(keys):
- 我們使用請求創建一個處理程序(handler),即我們啟動一個包含結果的變量:
- 我們執行請求:
有必要檢查請求是否有錯誤,然後 Zabbix Agent 2 進程將獲取結果。
- 註冊新的度量密鑰:
註冊指標後,您可以使用新指標重建代理。
該模塊從 Zabbix 5.0 開始在網站上可用
謝謝你的關注!
有用的鏈接
來源: www.habr.com