"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Escrevendo um script de telegrama e notificações por e-mail para Zabbix

Escrevendo um script de telegrama e notificações por e-mail para Zabbix

Publicado em 2024-11-08
Navegar:872

Writing a Telegram and Email Notifications Script for Zabbix

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.

O que é Zabbix

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.

Script de notificação de telegrama

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

Script de notificação por e-mail

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!

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/kurtchan/writing-a-telegram-and-email-notifications-script-for-zabbix-5ddj?1 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

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