Contexto
Uma das primeiras dificuldades ao tentar automatizar a implantação do Zabbix, é que ao configurar o auto-discovery, você percebe que o equipamento é cadastrado com seu endereço ip, e não existe uma forma pronta de fazer com que o nome seja populado a partir de algum outro campo. O caminho mais óbvio é a utilização de dados do inventário para tal tarefa.
Tendo este cenário em vista, resolvi desenvolver um script para automatizar esta tarefa. O script pode ser obtido neste repositório
updateNamesFromInventory
Descrição
O script copia o nome que está no inventário para o nome do equipamento. Caso exista uma atualização no inventário, o nome também é atualizado. Para evitar a criação de nomes duplicados, nestes casos é adicionado o endereço de ip antes do nome. Em alguns casos, é desejável que este equipamento fique desabilitado, para evitar que um mesmo equipamento seja monitorado múltiplas vezes através de cada um de seus endereços, como pode ocorrer em roteadores e firewalls. Você pode então, configurar uma lista de grupos para quais os hosts devem ser desabilitados. O comportamento padrão, é manter o equipamento habilitado.
Toda interação com a base do Zabbix é feita através da API PyZabbix
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
Configuração
Os seguintes parâmetros estão no início do arquivo de script updateNamesFromInventory.py. Configure o usuário do Zabbix que terá acesso via API. Certifique-se de que o usuário possui direitos suficientes para alterar os hosts:
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")
Os ids dos grupos de hosts nos quais os hosts devem ser desabilitados se o nome for repetido:
disableIfDuplicatedGroups=[8,9]
Utilização
./updateNamesFromInventory.py
Este script não possui parâmetros externos.
Para referência de performance, para renomear uma base com aproximadamente 3 mil equipamentos, o script leva pouco mais de um minuto. Ele pode ser executado múltiplas vezes para manter a base atualizada.
Nenhum comentário:
Postar um comentário