Zabbix 中获取所有主机 IP 和主机名的实例代码

2024-12-29 00:47:25   小编

Zabbix 中获取所有主机 IP 和主机名的实例代码

在 Zabbix 监控系统中,获取所有主机的 IP 和主机名是一项常见的需求。通过以下实例代码,您可以轻松实现这一功能。

我们需要了解 Zabbix 提供的 API 接口。Zabbix 的 API 允许我们与 Zabbix 服务器进行交互,获取所需的信息。

以下是使用 Python 语言编写的示例代码:

import requests
import json

# Zabbix API 的 URL
url = 'http://your_zabbix_server/zabbix/api_jsonrpc.php'

# 认证信息
auth = {
    "user": "your_username",
    "password": "your_password"
}

# 发送认证请求获取认证令牌
response = requests.post(url, data = json.dumps({
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": auth,
    "id": 1
}))

token = response.json()['result']

# 获取主机信息的请求
hosts_request = {
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": ["hostid", "host", "interfaces"],
        "selectInterfaces": ["ip"]
    },
    "auth": token,
    "id": 2
}

# 发送获取主机信息的请求
response = requests.post(url, data = json.dumps(hosts_request))

# 解析响应获取主机 IP 和主机名
hosts = response.json()['result']

for host in hosts:
    host_name = host['host']
    interfaces = host['interfaces']
    for interface in interfaces:
        if 'ip' in interface:
            host_ip = interface['ip']
            print(f"主机名: {host_name}, IP: {host_ip}")

在上述代码中,我们首先定义了 Zabbix API 的 URL 和认证信息。然后,通过发送认证请求获取认证令牌。接下来,使用 host.get 方法获取主机信息,并指定了要返回的字段,包括主机名和接口信息(包含 IP 地址)。最后,遍历返回的主机信息,打印出主机名和对应的 IP 地址。

请确保将代码中的 'http://your_zabbix_server' 替换为您实际的 Zabbix 服务器地址,'your_username''your_password' 替换为您的 Zabbix 用户名和密码。

通过这段实例代码,您可以快速、有效地从 Zabbix 中获取到所有主机的 IP 和主机名,为您的监控和管理工作提供便利。希望这段代码能够满足您在 Zabbix 监控中的需求,提升您的工作效率。

TAGS: Zabbix 主机信息获取 Zabbix 编程实例 主机信息提取 Zabbix 数据获取

欢迎使用万千站长工具!

Welcome to www.zzTool.com