Enviando alerta do Zabbix via Gtalk

Este post tem o objetivo de demonstrar como criar um script para que o Zabbix possa enviar os alertas via Gtalk.

 

Instalação dos pre-requisitos

1 apt-get install python python-xmpp python-dnspython

Criação do script
Verificar o local de armazenamento dos script no arquivo de configuração do zabbix, o parâmetro a ser verificado é AlertScriptsPath. No meu caso está em /usr/lib/zabbix/alertscripts

Crie o arquivo, nomeado gtalk.py, com o conteúdo abaixo no local indicado. No meu caso em/usr/lib/zabbix/alertscripts/gtalk.py

1 #!/usr/bin/python -W ignore::DeprecationWarning
2 import sys, os, xmpp, getopt, syslog
3
4 def main(argv):
5     login="your_email@gmail.com"
6     pwd="xxxxxx"
7     _debug = 0
8
9     if len(sys.argv) < 3:
10         usage()
11         sys.exit(2)
12
13     #log dos parametros recebidos
14     #log(' '.join(sys.argv[1:]))
15
16     rcptto=None
17     subject=None
18     msg=None
19
20     rcptto=sys.argv[1]
21     subject=sys.argv[2]
22     msg=sys.argv[3]
23
24     if subject != None and msg == None:
25         msg = subject;
26         subject = None;
27
28     if rcptto == None or msg == None:
29         usage()
30         sys.exit(2)
31
32     log(msg)
33
34     print "Starting process..."
35
36     def presenceHandler(conn, presence):
37         if presence:
38             if presence.getType() == "subscribe":
39                 cl.PresenceManager.ApproveSubscriptionRequest(pres.From)
40
41     login=xmpp.protocol.JID(login)
42
43     if _debug == 1:
44         cl=xmpp.Client(login.getDomain())
45     else:
46         cl=xmpp.Client(login.getDomain(),debug=[])
47
48     print "Connecting..."
49     if cl.connect( server=('google.com',5222)  ) == "":
50             print "not connected"
51             sys.exit(0)
52
53     print "Authentication..."
54     if cl.auth(login.getNode(),pwd) == None:
55             print "authentication failed"
56             sys.exit(0)
57
58     # habilita que este cliente aceite automaticamente requisicao de contato
59     #cl.RegisterHandler('presence',presenceHandler)
60     #cl.sendInitPresence()
61
62     print "Add user "+rcptto
63     pres = xmpp.Presence(to=rcptto, typ='subscribe')
64     cl.send(pres)
65
66     print "Sending message to "+rcptto
67     cl.send(xmpp.protocol.Message(rcptto,msg,"chat"))
68     cl.disconnect()
69
70     print "Message Sent!"
71
72 def usage():
73     print "Usage:  {-d} [to] [subject] [body]"
74     print ""
75     print "Options:"
76     print "  [to]   destination of messages"
77     print "  [subject]  subect of message"
78     print "  [body] destination of messages"
79
80 def log(text):
81     syslog.syslog(syslog.LOG_ERR, text)
82
83 if __name__ == "__main__":
84     main(sys.argv[1:])

Altere as linhas abaixo (no script) para o e-mail e senha que serão a origem do Gtalk

1 login="your_email@gmail.com"
2 pwd="xxxxxx"

Defina as permições para este arquivo

1 chown -R zabbix:zabbix /usr/lib/zabbix/alertscripts/
2 chmod +x /usr/lib/zabbix/alertscripts/gtalk.py

Realize um teste de execução do script com o comando abaixo, apenas alterando seu e-mail.

1 sudo -u zabbix /usr/lib/zabbix/alertscripts/gtalk.py seu_email@gmail.com "Teste 001" "Mensagem de teste Gtalk"

Configurando o Zabbix para enviar os alertas através deste script

Vá em Administration > Media Types

001

Clique em Create Media e preencha os campos conforme demonstrado abaixo e clique em Save

002

Vá em Administration > Users, selecione o usuário que deseja receber o alerta através do Gtalk, clique emMedia e depois em Add

003

Preencha as informações, alterando o Type para Gtalk e o Send to para o e-mail do gmail que receberá via Gtalk e clique em Add.

004

Pronto, seu usuário será alertado via gtalk.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: