【问题标题】:Importing python script to zabbix?将python脚本导入zabbix?
【发布时间】:2020-05-07 08:37:05
【问题描述】:

所以我制作了一个简单的 python 脚本来监控我的 postgres 中的数据库大小,但现在我想形成关于要监控的结果的图表。但是我找不到将这个脚本放入 WEB GUI 以在 zabbix/grafana 中使用的单一方法。我们在此基础上使用 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 文件夹,但我这样做了,现在我不知道如何访问它并添加到图表中。

【问题讨论】:

  • 好吧,我现在做了一个 crontab 作业将结果写入 txt 文件,我发现你可以使用“userparameter”将文件读入位于“/tmp/file.txt”中的 zabbix "并且我在 zabbix_agent.conf 中添加了一个参数,但是阅读手册我仍然无法理解您应该如何阅读该文件。 zabbix.com/documentation/3.0/manual/config/items/userparameters

标签: python grafana zabbix


【解决方案1】:

您正在处理多个数据库,并且您希望每个数据库的大小:您需要为您的目标主机实现Low Level Discovery

发现规则应生成如下 json:

{
    "data":  [
                 {
                     "{#DBNAME}":  "Database 1",
                     "{#SOMEOTHERPROPERTY}":  "XXX"
                 },
                 {
                     "{#DBNAME}":  "Database 2",
                     "{#SOMEOTHERPROPERTY}":  "YYY"
                 }
             ] }

然后您必须创建一个使用 {#DBNAME} 作为参考的项目原型,以查询数据库大小。

您可以使用 ODBC support 创建 LLD 和项目原型。

例如,您的OBDC discovery 应该是:

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 或通过定义图形原型来绘制它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-20
    • 2014-02-08
    • 2021-08-30
    • 2019-05-07
    相关资源
    最近更新 更多