-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathmain.py
85 lines (72 loc) · 2.38 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#! /usr/bin/python3
import readCsv
import zabbix
import threading
"""
[tipo de login]
1 = usuario e senha
2 = api token
"""
tipo_de_login = 1
file_csv = 'hosts.csv'
criar_grupo = "N"
grupos = "4"
associar_template = "S"
templates = []
# Logar no zabbix
AUTHTOKEN = zabbix.login(tipo_de_login)
# Ler arquivo csv
hosts = readCsv.getHosts(file_csv)
# Criar grupo ?
while criar_grupo == "":
criar_grupo = (input('\nCriar novo grupo? S | N: ').upper())
# Criar grupo
if criar_grupo == 'S':
while grupos == "":
nome_grupo = (input('Qual o nome do novo grupo?: '))
res = zabbix.criarGrupo(AUTHTOKEN, nome_grupo)
if 'error' in res:
print(f'\nErro: {res["error"]["data"]}\n')
else:
grupos = res['result']['groupids'][0]
print(f'\nO grupo "{nome_grupo}" com ID "{grupos}" foi criado\n')
# Listar Grupos existentes
if criar_grupo == 'N':
while grupos == "":
grupos = zabbix.getGroups(AUTHTOKEN)
if 'error' in grupos:
print(f'\nFalha ao listar os grupos. Saindo...\n')
exit()
else:
for grupo in grupos['result']:
print(f'{grupo["groupid"]} => {grupo["name"]}')
grupos = input('\nInsira o ID do Grupo: ')
print(f'\nGrupo: {grupos}\n')
# Associar a template existente?
while associar_template == "":
associar_template = (input('\nAssociar a um template existente? S | N : ').upper())
# Se associar a um template, SIM
if associar_template == 'S':
res = zabbix.getTemplates(AUTHTOKEN)
for i in res['result']:
print(f'{i["templateid"]} => {i["name"]}')
while templates == []:
x = str(input(
'\nInsira o ID do Template. \nSe for escolher mais de um, separe por virgula: '))
if ',' in x:
xs = x.split(',')
for i in xs:
templates.append({'templateid': i})
else:
templates.append({'templateid': x})
print('\n', templates)
# Se associar a um template, NAO
if associar_template == 'N':
templates = []
# Criar hosts
for host in hosts:
threading.Thread(target=zabbix.criarHosts, args=(
AUTHTOKEN, host['nome'], host['dns'], host['tipo'], host['porta'], templates, grupos)).start()
# zabbix.criarHosts(AUTHTOKEN, host['nome'], host['dns'], host['tipo'], host['porta'], templates, grupos)
# Deslogar
zabbix.logout(AUTHTOKEN, tipo_de_login)