domingo, 24 de setembro de 2017

Descobrindo portas não utilizadas em switches

Contexto


Quando você se depara com um switch lotado de cabos, e vê que precisa comprar um novo, pode se perguntar se todos aqueles pontos realmente estão em uso. A idéia de desenvolver um script para identificar quais portas estão sem uso a mais de um determinado tempo surgiu para resolver esta situação.

O script percorre todos os switches de um determinado grupo do Zabbix, gerando um html para cada um, informando quais portas estão sem uso.

A interação com a base de dados é realizada através da ferramenta PyZabbix, e com os switches é feita através do protocolo SNMP.

Instalação

Em um sistema baseado em Debian:

    apt-get install python-setuptools python-dev build-essential
    easy_install pip
    pip install --upgrade virtualenv
    pip install pyzabbix
    pip install pysnmp-apps
    pip install pysnmp==4.3.0
    yum install python-devel pysnmp-mibs

O script pode ser obtido no github upTimePort.py

Configuração

Os seguintes parâmetros estão no início do arquivo de script upTimePort.py. Configure o usuário do zabbix que irá executar o script. Certifique-se de que o usuário possui direitos para acessar o grupo de equipamentos de switches:

    user = "Admin"

A senha para este usuário:

    secret = "zabbix"

A URL para a Api do Zabbix:

    zapi = ZabbixAPI("http://127.0.0.1/zabbix")

A comunidade SNMP para acessar os switches:

    community = "public"

O ID para o grupo de hosts de switches:

    switchGroupID="8"

O caminho para o script de relatório:

reportScript = "/root/scripts/upTimePort/report.py"

O diretório de saída do relatório:

outputDirectory = "/var/www/html/reports/upTimePort"

Você pode configurar por quanto tempo uma porta deve ficar sem uso para que ela seja apresentada no relatório:

#seconds * 100
target=259200000

Utilização

     ./upTimePort.py

Este script não precisa de parâmetros.


Nenhum comentário:

Postar um comentário