Enviando mensagens para o Discord: mudanças entre as edições
Sem resumo de edição  | 
				Sem resumo de edição  | 
				||
| Linha 25: | Linha 25: | ||
== Script em Python para envio das notificações ==  | == Script em Python para envio das notificações ==  | ||
O script abaixo é bem simples   | 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.    | ||
#!/usr/bin/python3  |  #!/usr/bin/python3  | ||
# Script em python para envio de notificacoes para um canal do Discord via webhooks  |  # Script em python para envio de notificacoes para um canal do Discord via webhooks  | ||
# Sao passados 2 argumentos em linha de comando:  |  # Sao passados 2 argumentos em linha de comando:  | ||
#    <titulo da mensagem>  |  #    <titulo da mensagem>  | ||
#    <texto da mensagem>  |  #    <texto da mensagem>  | ||
# Exemplo: ./envia_notificacao_discord.py "ALERTA RJO-DC01-DNS-RECURSIVO01" "Falha no sistema de arquivos."  |  # 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  |  # Para funcionar eh necessario instalar: pip install discord discord-webhook  | ||
# Autor: Marcelo Gondim - gondim at gmail.com  |  # Autor: Marcelo Gondim - gondim at gmail.com  | ||
# Data: 21/05/2023  |  # Data: 21/05/2023  | ||
# Versao: 1.0  |  # Versao: 1.0  | ||
#  |  #  | ||
# envia_notificacao_discord.py is free software; you can redistribute it and/or modify  |  # 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  |  # it under the terms of the GNU General Public License as published by  | ||
# the Free Software Foundation; either version 2 of the License, or  |  # the Free Software Foundation; either version 2 of the License, or  | ||
# (at your option) any later version.  |  # (at your option) any later version.  | ||
#  |  #  | ||
# This program is distributed in the hope that it will be useful,  |  # This program is distributed in the hope that it will be useful,  | ||
# but WITHOUT ANY WARRANTY; without even the implied warranty of  |  # but WITHOUT ANY WARRANTY; without even the implied warranty of  | ||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  |  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  | ||
# GNU General Public License for more details.  |  # GNU General Public License for more details.  | ||
#  |  #  | ||
# You should have received a copy of the GNU General Public License  |  # You should have received a copy of the GNU General Public License  | ||
# along with this program; if not, write to the Free Software  |  # along with this program; if not, write to the Free Software  | ||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA  |  # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA  | ||
url_webhook = "https://discord.com/api/webhooks/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"  |  '''url_webhook = "<nowiki>https://discord.com/api/webhooks/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</nowiki>"'''  | ||
nome_bot = "Bot ISPUP!"  |  nome_bot = "Bot ISPUP!"  | ||
link_icone = "https://  |  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==  | |||
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."  | |||
[[Arquivo:Discord4.png|nenhum|commoldura]]  | |||
==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.  | |||
Essa documentação foi útil? Compartilhe, divulgue e ajude outras pessoas. Meus contatos podem ser vistos [[Sobre mim|aqui]].  | |||
[[Categoria:Dicas Técnicas]]  | |||
Edição das 17h41min de 21 de maio 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 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 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.
#!/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 = "https://discord.com/api/webhooks/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" nome_bot = "Bot ISPUP!" link_icone = "https://xxxxxx/xxxxx/bot.gif" 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
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.
Essa documentação foi útil? Compartilhe, divulgue e ajude outras pessoas. Meus contatos podem ser vistos aqui.