Enviando mensagens para o Discord: mudanças entre as edições

De ISPUP!
Ir para navegação Ir para pesquisar
Sem resumo de edição
Sem resumo de edição
 
(Uma revisão intermediária pelo mesmo usuário não está sendo mostrada)
Linha 28: Linha 28:


== Script em Python para envio das notificações ==
== Script em Python para envio das notificações ==
O script abaixo é bem simples: você precisa colar a URL do '''webhook''' que você copiou, na variável '''url_webhook''' e além dessa variável temos '''nome_bot''' e '''link_icone''' para exibirmos o '''nome do bot''' e o '''ícone do bot'''. O script pode ser rodado em linha de comando e '''passando apenas 2 parâmetros''': '''o título da notificação''' e a '''mensagem da notificação''' que você quer enviar.  
O script é bem simples: você precisa colar a URL do '''webhook''' que você copiou, na variável '''url_webhook''' e além dessa variável temos '''nome_bot''' e '''link_icone''' para exibirmos o '''nome do bot''' e o '''ícone do bot'''. O script pode ser rodado em linha de comando e '''passando apenas 2 parâmetros''': '''o título da notificação''' e a '''mensagem da notificação''' que você quer enviar. O script pode ser baixado do Github: https://github.com/gondimcodes/envia_notificacao_discord
#!/usr/bin/python3
# Script em python para envio de notificacoes para um canal do Discord via webhooks
# Sao passados 2 argumentos em linha de comando:
#    <titulo da mensagem>
#    <texto da mensagem>
# Exemplo: ./envia_notificacao_discord.py "ALERTA RJO-DC01-DNS-RECURSIVO01" "Falha no sistema de arquivos."
# Para funcionar eh necessario instalar: pip install discord discord-webhook
# Autor: Marcelo Gondim - gondim at gmail.com
# Data: 21/05/2023
# Versao: 1.0
#
# envia_notificacao_discord.py is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
'''url_webhook = "<nowiki>https://discord.com/api/webhooks/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</nowiki>"'''
'''nome_bot = "Bot ISPUP!"'''
'''link_icone = "<nowiki>https://xxxxxx/xxxxx/bot.gif</nowiki>"'''
import sys
title = sys.argv[1]
msg = sys.argv[2]
from discord_webhook import DiscordWebhook, DiscordEmbed
webhook = DiscordWebhook(url='%s' %(url_webhook))
embed = DiscordEmbed(title='%s' %(title), description='%s' %(msg), color='03b2f8')
embed.set_author(name='%s' %(nome_bot), icon_url='%s' %(link_icone))
webhook.add_embed(embed)
response = webhook.execute(embed)
 
==Testando nosso script==
==Testando nosso script==
Abaixo vamos executar o nosso script em python e verificar se chega a mensagem no nosso canal de texto, lá no '''Discord'''.
Abaixo vamos executar o nosso script em python e verificar se chega a mensagem no nosso canal de texto, lá no '''Discord'''.

Edição atual tal como às 16h38min de 29 de junho de 2023

Introdução

Esse pequeno artigo servirá para nos ajudar a enviar mensagens para um canal de texto do Discord. Mas para qual finalidade? Algumas empresas utilizam o Discord para trabalho no dia a dia, criando seus canais para diversas discussões e nesse momento podemos ter um canal de alertas para que nossos servidores GNU/Linux possam enviar algum alerta específico, para nos avisar de que algo está errado. A velocidade de comunicação pode nos salvar de muitos problemas evitando que algo se torne mais grave.

Por isso resolvi fazer esse doc bem simples para mostrar como é fácil e deixar registrado aqui como fonte de consulta futura.

Preparando o ambiente

Usaremos como de costume nosso bom Debian GNU/Linux mas você pode adaptar essa documentação para o seu ambiente. Nesse momento instalaremos o python3-pip e dependências:

# apt install python3-pip
# pip install requests discord discord-webhook

Configurando o canal no Discord

Nesse momento assumirei que você já tem seu servidor e sabe como criar um canal. Vamos supor que você tenha o canal de texto #alertas já criado e vamos usá-lo para receber nossas notificações dos servidores.

Você vai clicar na engrenagem do canal de texto, que nesse exemplo, é o #alertas para iniciarmos a configuração.

Na sequência você vai clicar em Integrações conforme acima.

1) Vamos usar um webhook para nos permitir enviar mensagens para o nosso canal de texto.

2) Aqui daremos um nome para ele.

3) Selecionamos o canal de texto para onde serão enviadas as nossas notificações. Nesse caso já estará selecionado nosso canal #alertas.

4) Clique ali para copiar a URL que usaremos em nosso script em Python, para enviar as notificações. Não esqueça de salvar esse webhook que acabamos de alterar.

Script em Python para envio das notificações

O script é bem simples: você precisa colar a URL do webhook que você copiou, na variável url_webhook e além dessa variável temos nome_bot e link_icone para exibirmos o nome do bot e o ícone do bot. O script pode ser rodado em linha de comando e passando apenas 2 parâmetros: o título da notificação e a mensagem da notificação que você quer enviar. O script pode ser baixado do Github: https://github.com/gondimcodes/envia_notificacao_discord

Testando nosso script

Abaixo vamos executar o nosso script em python e verificar se chega a mensagem no nosso canal de texto, lá no Discord.

# chmod +x envia_notificacao_discord.py
# ./envia_notificacao_discord.py "ALERTA RJO-DC01-DNS-RECURSIVO01" "Falha no sistema de arquivos."

Finalizando

Um artigo bem simples mas que pode ser útil em monitoramento de sistemas e onde você pode integrar com diversas soluções para disparar alertas para um servidor seu no Discord.

Como referência da função que usei: https://pypi.org/project/discord-webhook/

Essa documentação foi útil? Compartilhe, divulgue e ajude outras pessoas. Meus contatos podem ser vistos aqui.