Monitorear toda su infraestructura es muy esencial, especialmente en infraestructuras de TI. Recientemente aprendí a crear y escribir scripts para monitorear como este. Les compartiré cómo hago el script de notificaciones de telegramas y correo electrónico. Este script envía un telegrama y una notificación por correo electrónico cada vez que ocurre un problema en la infraestructura.
Zabbix es un software de código abierto que monitorea numerosos parámetros de una red y el estado e integridad de servidores, máquinas virtuales, aplicaciones, servicios, bases de datos, sitios web, la nube y más. Zabbix utiliza un mecanismo de notificación flexible que permite a los usuarios configurar alertas basadas en correo electrónico para prácticamente cualquier evento. Esto permite una reacción rápida ante problemas del servidor. Zabbix ofrece excelentes funciones de visualización de datos e informes basadas en los datos almacenados. Esto hace que Zabbix sea ideal para la planificación de capacidad.
Inicie sesión en su servidor/proxy Zabbix a través de SSH y vaya al directorio "externalscripts".
cd /usr/lib/zabbix/externalscripts
Crea el script para el bot de Telegram. Configura tu bot de Telegram aquí.
sudo vim telegram-notif.sh
Pegue el script a continuación
#!/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"
Guarda tu guión.
:wq
Convertirlo en un archivo ejecutable
chmod x telegram-notif.sh
En el mismo directorio, cree un archivo Python.
sudo vim email-notif.py
Pegue este código. Este código requiere una contraseña de aplicación de su cuenta de Gmail. Crea la contraseña de tu aplicación aquí.
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)
No olvides guardarlo y convertirlo en un archivo ejecutable
:wq
chmod x email-notif.py
Este script se puede integrar en Zabbix para notificar problemas que deben abordarse lo más rápido posible.
En algunos casos, ejecutar un script de Python en un servidor requiere permisos de root (sudo). Para permitir que Zabbix ejecute el script de Python con sudo, debe editar el visudo.
sudo visudo
Busque la "Especificación de privilegios de usuario" y pegue esta línea de código debajo.
zabbix ALL=(ALL) NOPASSWD: /usr/lib/zabbix/externalscripts/your_script.py
Entonces se verá así
# 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
¡Gracias por leer!
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3