Logo

dev-resources.site

for different kinds of informations.

Script de Exportação de Hosts do Zabbix para CSV

Published at
1/12/2024
Categories
zabbix
python
hosts
csv
Author
aldeiacloud
Categories
4 categories in total
zabbix
open
python
open
hosts
open
csv
open
Author
11 person written this
aldeiacloud
open
Script de Exportação de Hosts do Zabbix para CSV

Introdução:

Este script em Python se conecta à API do Zabbix, para obter informações valiosas sobre hosts e templates. Através de chamadas à API, o script realiza o login, recupera dados sobre os hosts, incluindo seus grupos e templates associados, e organiza essas informações em um arquivo CSV.

Autenticação: Utiliza as credenciais do Zabbix (usuário e senha) para autenticar-se na API.

Obtenção de Dados: Faz chamadas à API para extrair detalhes sobre hosts, incluindo seus grupos e templates associados.

Organização e Armazenamento: Estrutura os dados em um formato legível e armazena-os em um arquivo CSV.



Passo 1. Salve esse script para exportação dos dados em python:

import requests
import json
import csv

# Configurações da API do Zabbix
url = 'https://zabbix.dominio.com.br/api_jsonrpc.php'
headers = {'Content-Type': 'application/json'}

# Credenciais de autenticação
usuario = 'seu_user'
senha = 'sua_senha'

# Função para fazer uma chamada à API do Zabbix
def zabbix_api_request(method, params, auth_token=None):
    data = {
        'jsonrpc': '2.0',
        'method': method,
        'params': params,
        'auth': auth_token,
        'id': 1
    }
    response = requests.post(url, data=json.dumps(data), headers=headers)
    result = response.json()

    if 'error' in result:
        raise Exception(f'Erro na chamada à API do Zabbix: {result["error"]["data"]}')

    return result.get('result', None)

# Função para fazer login na API do Zabbix e obter o token de acesso
def zabbix_login(usuario, senha):
    method = 'user.login'
    params = {'user': usuario, 'password': senha}
    response = zabbix_api_request(method, params)
    return response

# Função para obter informações de hosts por grupo, incluindo templates
def obter_hosts_com_templates(auth_token):
    method = 'host.get'
    params = {
        'output': ['host', 'name', 'groups'],
        'selectGroups': 'extend',
        'selectInterfaces': ['ip'],
        'selectParentTemplates': ['templateid', 'name']
    }

    response = zabbix_api_request(method, params, auth_token)

    if response is None:
        raise Exception('Nenhuma resposta válida da chamada à API para obter hosts.')

    hosts_com_templates = {}

    for host in response:
        for group in host.get('groups', []):
            grupo_nome = group.get('name', 'Sem Grupo')
            if grupo_nome not in hosts_com_templates:
                hosts_com_templates[grupo_nome] = []
            templates = [template['name'] for template in host.get('parentTemplates', [])]
            hosts_com_templates[grupo_nome].append({
                'hostname': host.get('host', ''),
                'ip': host['interfaces'][0]['ip'] if host.get('interfaces') else '',
                'templates': templates
            })

    return hosts_com_templates

# Função para escrever as informações em um arquivo CSV
def escrever_csv(info_hosts_com_templates):
    with open('info_hosts_templates.csv', mode='w', newline='') as arquivo_csv:
        writer = csv.writer(arquivo_csv)
        writer.writerow(['Grupo', 'Hostname', 'IP', 'Templates'])

        for grupo, hosts in info_hosts_com_templates.items():
            for host in hosts:
                writer.writerow([grupo, host['hostname'], host['ip'], ', '.join(host['templates'])])

# Faz login e obtém o token de autenticação
token_autenticacao = zabbix_login(usuario, senha)

# Obtém informações de hosts por grupo, incluindo templates
info_hosts_com_templates = obter_hosts_com_templates(token_autenticacao)

# Escreve as informações em um arquivo CSV
escrever_csv(info_hosts_com_templates)
Enter fullscreen mode Exit fullscreen mode



Passo 2. Para funcionamento, precisaremos do python instalado e a biblioteca requests:

No linux:

# Instalar o Python3
sudo apt update
sudo apt install python3
# Instalar o pip3 (gerenciador de pacotes do Python)
sudo apt install python3-pip
# Instalar a biblioteca requests
pip3 install requests
Enter fullscreen mode Exit fullscreen mode

No Windows:

  • Instale o Python no repo: https://www.python.org/
  • Certifique-se de marcar a opção "Add Python to PATH" durante a instalação.
# Atualizar o pip
python -m pip install --upgrade pip
# Instalar a biblioteca requests
pip install requests
Enter fullscreen mode Exit fullscreen mode



Passo 3. Execute o script para gerar o relatório em .csv:

  • python3 script.py
  • Pronto, o arquivo gerado chamado info_hosts_templates.csv será dessa forma:

Image description

zabbix Article's
30 articles in total
Favicon
Ubuntu Üzerine SQLite3 kullanılarak Zabbix Proxy Kurulumu, Yapılandırması ve Verilerin Proxy üzerinden Server'da Gösterilmesi
Favicon
Zabbix Üzerinden ODBC Kullanarak PostgreSQL'e Sorgu Atılması ve İzlenmesi
Favicon
Patroni'ye Özel Zabbix Template'ı Oluşturma
Favicon
Zabbix ile REST API Üzerinden Patroni Sağlık Durumunun İzlenebilmesi
Favicon
Patroni Nedir?
Favicon
Zabbix - A powerful and open-source monitoring tool : Day 47 of 50 days DevOps Tools Series
Favicon
Zabbix "Calculated Item" İşlemi
Favicon
Zabbix ile Prometheus Metrik Formatında Kafka İzleme
Favicon
Obter Http Status Code de uma lista de Function Apps do Azure e enviar para o Zabbix
Favicon
Script de Exportação de Hosts do Zabbix para CSV
Favicon
Instalando Zabbix Server com MySQL, Grafana e Traefik em Docker
Favicon
Instalar Zabbix Agent no Sistema Operacional Windows via Script Batch
Favicon
Zabbix Server Kurulumu
Favicon
Do zero ao completo Desastre
Favicon
Zabbix 6.x Agent ile Custom Script Itemları Oluşturma
Favicon
How to overcome data silos in open source server monitoring
Favicon
Pardus 21.x sunucu üzerine Zabbix 6.0 kurulumu
Favicon
Zabbix Proxy and Low Disk Space
Favicon
Tayfa ve Miço ile Zabbix Agent Dağıtımı
Favicon
Zabbix Mail Bildirimleri
Favicon
Server monitoring with Zabbix
Favicon
Monitoring VMware on zabbix
Favicon
OpenNMS On the Horizon – November 8th, 2021
Favicon
OpenNMS On the Horizon – November 1st, 2021
Favicon
Rocky Linux
Favicon
Monitoramento de 1 segundo? Temos !
Favicon
Comandos no Shell do Windows
Favicon
Otimizando seu banco !
Favicon
Saltos duplos
Favicon
Ubuntu 18.04 Üzerinde Zabbix Server Kurulumu

Featured ones: