[英]Importing python script to zabbix?
所以我制作了一個簡單的 python 腳本來監視我的 postgres 中的數據庫大小,但現在我想形成關於要監視的結果的圖表。 但是,我找不到將此腳本放入要在 zabbix/grafana 中使用的 WEB GUI 的單一方法。 我們在此基礎上使用 zabbix 和 grafana,因為 grafana 看起來更好。
# pip install psycopg2-binary
import psycopg2
connection = psycopg2.connect(user = "postgres", password = "password", host = "server", port =
"5432", database = "postgres")
cursor = connection.cursor()
cursor.execute("SELECT datname FROM pg_database WHERE datistemplate = false")
records = cursor.fetchall()
for record in records:
cursor.execute("SELECT pg_size_pretty( pg_database_size('{}'))".format(record[0]))
row = cursor.fetchone()
print("DB:{} Size:{}".format(record[0], row[0]))
我整個上午都在谷歌上搜索,但找不到任何相關信息。 我發現它應該添加到 /zabbix/externalscripts 文件夾,但我這樣做了,現在我不知道如何訪問它並添加到圖表中。
您正在處理多個數據庫,並且每個數據庫都需要大小:您需要為目標主機實施低級發現。
發現規則應生成如下 json:
{
"data": [
{
"{#DBNAME}": "Database 1",
"{#SOMEOTHERPROPERTY}": "XXX"
},
{
"{#DBNAME}": "Database 2",
"{#SOMEOTHERPROPERTY}": "YYY"
}
] }
然后你必須創建一個使用 {#DBNAME} 作為參考的項目原型,以查詢數據庫大小。
您可以使用ODBC 支持創建 LLD 和項目原型。
例如,您的OBDC 發現應該是:
Key = db.odbc.discovery[get_databases,{HOST.NAME}]
Params = SELECT datname FROM pg_database WHERE datistemplate = false
以及您的項目原型:
Key = db.odbc.select[Used size on {#datname},{HOST.NAME}]
Params = SELECT pg_size_pretty( pg_database_size('{#datname}'))
完成此設置后,每個數據庫都會有一個項目(並且會動態發現新數據庫):您可以使用最新數據、Grafana 或通過定義圖形原型來繪制它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.