Se meu Zabbix falasse

Thiago Diniz
monitoracaodeti
Published in
4 min readDec 12, 2019

A tão falada equipe NOC (Centro de Operações de Rede) existe hoje no setor de TI de diversas empresas (às vezes terceirizada), pois é cada vez mais nítido o impacto negativo nos serviços quando não há uma monitoração e atuação adequadas.

Mas nem sempre essas equipes possuem uma segmentação de foco entre melhorias/desenvolvimento e atuação/operação. E mesmo que esta segmentação exista, pode ocorrer um alerta muito crítico num momento em que todos os analistas estão ocupados em outras demandas, ocasionando atraso indesejado na atuação para restabelecimento do serviço afetado. Uma parede com monitores que apresentam informações e saúde dos serviços auxilia mas não garante uma atuação “instantânea”.

É aí que entra em cena o alarme sonoro. No início pode até parecer um recurso meio bobo, mas na verdade ajuda bastante no reconhecimento imediato de novos alertas. E que tal ir mais além? E se ao invés de um simples alarme sonoro os monitores falassem algum detalhe do novo alerta?

A ideia aqui é compartilhar esta experiência de monitores com informações providas por um Raspberry Pi falando para a equipe NOC os novos alertas críticos. O resultado foi muito interessante porque, além de auxiliar na operação do NOC, os alertas falados chamaram a atenção das outras equipes de TI próximas e acabaram “dedurando” em voz alta situações como reboot de servidores de produção sem uma manutenção/mudança progamada. Acabou aumentando o envolvimento das demais equipes com o mundo da monitoração.

Compartilho abaixo o link do repositório contendo os scripts utilizados (Shell Script e Python)

https://github.com/thiagomdiniz/zabbix-tts

O readme do repositório contém orientações detalhadas dos scripts e como utilizá-los. Basicamente a ideia é que o Raspberry Pi que fica nos monitores do NOC execute um script Python que disponibilizará um endpoint HTTP para receber o idioma e texto do alerta a ser falado. São dois scripts Python independentes, um utiliza a API do Google Translate e outro a API do IBM Watson. A API da IBM não é gratuita, mas permite criar uma conta e experimentar o recurso sem custo. Este recurso de conversão de texto para voz é chamado de TTS (Text to Speech).

Configuração do Zabbix para uso do TTS

Adicione o script “text2speech.sh” no diretório de scripts de alerta do seu Zabbix e dê permissão de execução. Caso não saiba o local, basta procurar o parâmetro “AlertScriptsPath” no arquivo de configuração do Zabbix Server “zabbix_server.conf”.

Depois crie a nova mídia conforme imagem abaixo. O parâmetro “{ALERT.SENDTO}” será o endereço do seu endpoint HTTP, no meu caso o Raspberry Pi (será cadastrado daqui a pouco na mídia do usuário). O parâmetro “{ALERT.SUBJECT}” será o assunto da ação que disparará o alerta e o texto que será transformado em voz. O terceiro parâmetro é o idioma da voz que será utilizada:

Crie um usuário sem acesso ao frontend e com permissão aos hosts conforme sua necessidade. Adicione ao usuário a mídia criada no passo anterior e coloque o endereço para acesso ao endpoint HTTP criado pelo script Python:

Crie a ação que fará uso da mídia criada. A ação fará a requisição ao script Python enviando o texto a ser transformado em voz. O texto que será enviado é o do campo subject/assunto (configure as condições da ação conforme sua necessidade):

Por fim, quando um alerta for gerado e se encaixar nas condições da ação, o Zabbix utilizará o script da mídia criada e o código Python tocará o áudio do texto.

--

--