GRP04 – 2017S01 - Nagios notificação via telegram

Опубликовано: 14 Март 2026
на канале: BlackMesa
4,673
75

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