«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Написание скрипта уведомлений Telegram и электронной почты для Zabbix

Написание скрипта уведомлений Telegram и электронной почты для Zabbix

Опубликовано 8 ноября 2024 г.
Просматривать:166

Writing a Telegram and Email Notifications Script for Zabbix

Мониторинг всей вашей инфраструктуры очень важен, особенно в ИТ-инфраструктурах. Недавно я научился создавать и писать сценарии для такого мониторинга. Я поделюсь с вами тем, как я создаю скрипт уведомлений для Telegram и электронной почты. Этот скрипт отправляет телеграмму и уведомление по электронной почте всякий раз, когда возникает проблема в инфраструктуре.

Что такое Zabbix

Zabbix — это программное обеспечение с открытым исходным кодом, которое отслеживает многочисленные параметры сети, а также состояние и целостность серверов, виртуальных машин, приложений, сервисов, баз данных, веб-сайтов, облака и многого другого. Zabbix использует гибкий механизм уведомлений, который позволяет пользователям настраивать оповещения по электронной почте практически для любого события. Это позволяет быстро реагировать на проблемы сервера. Zabbix предлагает отличные функции отчетности и визуализации данных на основе сохраненных данных. Это делает Zabbix идеальным для планирования мощности.

Скрипт уведомления Telegram

Войдите на свой прокси/сервер Zabbix через SSH и перейдите в каталог «externalscripts».

cd /usr/lib/zabbix/externalscripts

Создайте скрипт для Telegram-бота. Настройте своего телеграм-бота здесь.

sudo vim telegram-notif.sh

Вставьте скрипт ниже

#!/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"

Сохраните сценарий.

:wq

Преобразовать в исполняемый файл

chmod  x telegram-notif.sh

Скрипт уведомления по электронной почте

В том же каталоге создайте файл Python.

sudo vim email-notif.py

Вставьте этот код. Для этого кода требуется пароль приложения от вашей учетной записи Gmail. Создайте пароль приложения здесь.

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)

Не забудьте сохранить и сделать это исполняемым файлом

:wq
chmod  x email-notif.py

Этот скрипт можно интегрировать в Zabbix, чтобы как можно быстрее уведомлять о проблемах, которые необходимо решить.

В некоторых случаях для запуска скрипта Python на сервере требуются права root (sudo). Чтобы Zabbix мог запускать скрипт Python с помощью sudo, вы должны отредактировать файл visudo.

sudo visudo

Найдите «Спецификацию привилегий пользователя» и вставьте под нее эту строку кода.

zabbix  ALL=(ALL) NOPASSWD: /usr/lib/zabbix/externalscripts/your_script.py

Итак, это будет выглядеть так

# 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

Спасибо, что прочитали!

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/kurtchan/writing-a-telegram-and-email-notifications-script-for-zabbix-5ddj?1 Если есть какие-либо нарушения, пожалуйста, свяжитесь с [email protected] удалить его
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3