Monitorar toda a sua infraestrutura é muito essencial, especialmente em infraestruturas de TI. Recentemente aprendi a criar e escrever scripts para monitoramento como este. Vou compartilhar com vocês como faço scripts de notificações por telegrama e e-mail. Este script envia uma notificação por telegrama e e-mail sempre que ocorre um problema na infraestrutura.
Zabbix é um software de código aberto que monitora vários parâmetros de uma rede e a saúde e integridade de servidores, máquinas virtuais, aplicativos, serviços, bancos de dados, sites, nuvem e muito mais. O Zabbix usa um mecanismo de notificação flexível que permite aos usuários configurar alertas baseados em e-mail para praticamente qualquer evento. Isto permite uma reação rápida aos problemas do servidor. O Zabbix oferece excelentes recursos de relatórios e visualização de dados com base nos dados armazenados. Isso torna o Zabbix ideal para planejamento de capacidade.
Faça login em seu proxy/servidor Zabbix via SSH e vá para o diretório "externalscripts".
cd /usr/lib/zabbix/externalscripts
Crie o script para o bot do Telegram. Configure seu bot de telegrama aqui.
sudo vim telegram-notif.sh
Cole o script abaixo
#!/bin/bash # Telegram Bot API Token BOT_TOKEN="YOUR_BOT_TOKEN" # Telegram Chat ID CHAT_ID="YOUR_TELEGRAM_CHAT_ID" # Message to be sent MESSAGE="$1" # Sends the telegram message curl -s -X POST "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" -d "chat_id=$CHAT_ID&text=$MESSAGE"
Salve seu script.
:wq
Converta-o em um arquivo executável
chmod x telegram-notif.sh
No mesmo diretório, crie um arquivo python.
sudo vim email-notif.py
Cole este código. Este código requer uma senha de aplicativo da sua conta do Gmail. Crie a senha do seu aplicativo aqui.
import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText import sys # Get the alert message from command-line arguments alert_message = sys.argv[1] # Email account credentials gmail_user = 'YOUR_EMAIL_ADDRESS' gmail_password = 'YOUR_APP_PASSWORD' # Use your App Password here # Create the message msg = MIMEMultipart() msg['From'] = gmail_user msg['To'] = 'YOUR_RECIPIENT_EMAIL_ADDRESS' # Recipient's email address msg['Subject'] = 'Alert Message Subject' # Subject of the email message = alert_message msg.attach(MIMEText(message, 'plain')) # Attempt to send the email try: server = smtplib.SMTP_SSL('smtp.gmail.com', 465) server.ehlo() server.login(gmail_user, gmail_password) server.send_message(msg) server.close() print('Email sent!') except Exception as e: print('Failed to send email:', e)
Não se esqueça de salvar e tornar este um arquivo executável
:wq
chmod x email-notif.py
Este script pode ser integrado no Zabbix para notificar problemas que precisam ser resolvidos o mais rápido possível.
Em alguns casos, executar um script python em um servidor requer permissões de root (sudo). Para permitir que o Zabbix execute o script python com sudo, você deve editar o arquivo visudo.
sudo visudo
Encontre a "especificação de privilégio do usuário" e cole esta linha de código abaixo dela.
zabbix ALL=(ALL) NOPASSWD: /usr/lib/zabbix/externalscripts/your_script.py
Então vai ficar assim
# User privilege specification root ALL=(ALL:ALL) ALL zabbix ALL=(ALL) NOPASSWD: /usr/bin/python3 zabbix ALL=(ALL) NOPASSWD: /usr/lib/zabbix/externalscripts/your_script.py
Obrigado pela leitura!
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3