将 Zabbix 数据拉入 csv 文件

Pulling Zabbix Data into csv file

似乎找不到正确的语法来获取我需要的请求。

此时我可以通过 API 连接到我的 Zabbix 服务器。我能够看到我需要的所有数据,这些数据由一个简单的 print() 函数确认。

但是,我对从变量中获取数据到csv文件的方法一头雾水。

from pyzabbix import ZabbiXAPI

        zapi = ZabbixAPI("example")
        zapi.login("example", "example")
    
    for hostInventory in zapi.host.get():
        print(hostInventory)

这会吐出大约 500 行的内容——显然是删除了敏感信息:

{'hostid': 'xxx', 'proxy_hostid': 'xxx', 'host': 'xxx', 'status': 'x', 'lastaccess': 'x', 'ipmi_authtype': 'x', 'ipmi_privilege': 'x', 'ipmi_username': 'x', 'ipmi_password': 'x', 'maintenanceid': 'x', 
'maintenance_status': 'x', 'maintenance_type': 'x', 'maintenance_from': 'x', 'name': 'x', 'flags': 'x', 'templateid': 'x', 'description': 'x', 'tls_connect': 'x', 'tls_accept': 'x', 'tls_issuer': 'x', 'tls_subject': 'x', 'proxy_address': 'x', 'auto_compress': 'x', 'custom_interfaces': 'x', 'uuid': 'x', 'inventory_mode': 'x'}

如果我需要提供任何进一步的信息,请告诉我。第一次发帖。

你必须学习标准模块 csv 或流行 pandas
(而且这个问题与Zabbix没有直接关系)。

有了pandas就简单多了。

import pandas as pd

data = list( zapi.host.get() )
df = pd.DataFrame(data)

df.to_csv('output.csv')

最终您可能不得不使用自己的代码来创建字典

data = []

for hostInventory in zapi.host.get():
    item = {"hostid": hostInventory.hostid, ...}
    data.append(item)