簡體   English   中英

將python腳本導入zabbix?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM