Nagios notificação via Telegram
Autor: Matheus dos Santos Souza
Bom nesse script você verá usar notificações do nagios via telegram, saindo um pouco do convencional email então mãos à obra
Passo 1 :
Bom nessa parte iremos criar um bot no telegram, esse bot no telegram será o cara que irá mandar as notificações para o telegram
Na aba de pesquisa digitamos BotFather selecionamos e digitamos nos chat /start.
Ele vai apresentar várias opções, digtamos /newbot.
Após o /newbot ele vai perguntar qual tipo de bot , digitamos então Nagios Telegram.
Feito isso você terá que colocar um nomo para o seu bot, sempre que nomear coloque _bot no final ;)
Pronto agora ele irá gerar uma API com um token, guarde e salve esse token muito bem iremos utilizar ele nos outros passos.
Exemplo: use this token to acccess the HTTP API: t316171352:AAEUVzHoLgGwTAoh00YnfBJ3zVVfy3Z7oP8
Agora podemos pesquisar o nosso bot pelo telegram basta digitarmos o nome dele, e no chat darmos um /start para que ele possa estar entrando em funcionanmento
Passo 2:
Nesse passo vamos criar um grupo no telegram e adicionarmos o nosso bot e o seu contato.
apos criarmos o grupo vamos no telegram web no endereço pegar o id do grupo, pois esse id vai ser necessario para que o nagiosmande as notificações
Clicamos no grupo e vemos o endereço http
Ex: https://web.telegram.org/#/im?p=g1623...
Guarde os ultimos números esses número são o id do grupo criado "162369144"
ou digitamos no terminal do linux o comando abaixo colocando seu token ele vai dar todos as informações de id de usuário e id do grupo
Passo 3:
Agora iremos baixar o plugin do telegram damos o comando abaixar para baixar
wget -O /usr/local/bin/telegram_nagios.py https://raw.githubusercontent.com/pom...
Mudamos as pemissões do plugin para que ele possa ser executado
chmod 755 /usr/local/bin/telegram_nagios.py
Para que o plugin possa funciona ele irá precisar do pip e o twx.botapi para isso digite
apt-get install python-pip
pip install twx.botapi
Passo 5:
Agora iremos adicionar os comandos no commands.cfg
Adicione a linha abaixo
commands to send host/service notifications
Usem o exemplo abaixo:
define command {
command_name notify-host-by-telegram
command_line /usr/local/bin/telegram_nagios.py --token 265061031:AAF5MjHcGKGnkNd9qxnOTNQcK6-9jAssy9U --object_type host --contact "-200521269" --notificationtype "$NOTIFICATIONTYPE$" --hoststate "$HOSTSTATE$" --hostname "$HOSTNAME$" --hostaddress "$HOSTADDRESS$" --output "$HOSTOUTPUT$"
}
define command {
command_name notify-service-by-telegram
command_line /usr/local/bin/telegram_nagios.py --token 265061031:AAF5MjHcGKGnkNd9qxnOTNQcK6-9jAssy9U --object_type service --contact "-200521269" --notificationtype "$NOTIFICATIONTYPE$" --servicestate "$SERVICESTATE$" --hostname "$HOSTNAME$" --servicedesc "$SERVICEDESC$" --output "$SERVICEOUTPUT$"
}
feito isso reiniciar o nosso nagios
service nagios restart
Passo 6:
Iremos criar um contato no contacts.cfg
define contactgroup{
contactgroup_name admins
alias Nagios Administrators
members telegramgrupochat
}
define contact {
contact_name telegramgrupochat
host_notification_options d,u,r
service_notification_options w,u,c,r,f,s
host_notification_period 24x7
service_notification_period 24x7
service_notification_commands notify-service-by-telegram
host_notification_commands notify-host-by-telegram
}
colocando os comandos notify-service-by-telegram e notify-host-by-telegram
OBS: configure o notification_interval em cada template de host ou service que você use coloquei no meu de 1, ou seja, 1 em 1 minuto ele irá mandar a notiicação
adicione o notification_interval 1 em cada serviço e host ;)
feito isso vamos agora simular uma mensagem para o nosso telegram
no diretório do telegram_nagios.py nosso plugin digitamos esse comando, basta inserir o token do seu bot e o id do grupo.
telegram_nagios.py --token 265061031:AAF5MjHcGKGnkNd9qxnOTNQcK6-9jAssy9U --object_type service --contact "-200521269" --servicestate "OK" --hostname "hostname.domain.tld" --servicedesc "load" --output "OK - load average: 0.02 0.01 0.01"
Agora só visulizar ;)
Bom agora vamos reiniciar a máquina pois as notificações demoram um pouco para entrar em funcionamento dependendo de máquina pra máquina
Podemos fazer um teste desligando um host ou desbilitando um serviço, lembresse que as configuranções de host e serviços deve conter o notification_interval, coloque um periodo para que nagios mande essas notificações automaticamente caso contrário você terá que fazer isso manualmente, creio eu que você ja tenha feito isso nas configurações dos hosts ;)
notifications_enabled 1