Мониторинг всей вашей инфраструктуры очень важен, особенно в ИТ-инфраструктурах. Недавно я научился создавать и писать сценарии для такого мониторинга. Я поделюсь с вами тем, как я создаю скрипт уведомлений для Telegram и электронной почты. Этот скрипт отправляет телеграмму и уведомление по электронной почте всякий раз, когда возникает проблема в инфраструктуре.
Zabbix — это программное обеспечение с открытым исходным кодом, которое отслеживает многочисленные параметры сети, а также состояние и целостность серверов, виртуальных машин, приложений, сервисов, баз данных, веб-сайтов, облака и многого другого. Zabbix использует гибкий механизм уведомлений, который позволяет пользователям настраивать оповещения по электронной почте практически для любого события. Это позволяет быстро реагировать на проблемы сервера. Zabbix предлагает отличные функции отчетности и визуализации данных на основе сохраненных данных. Это делает Zabbix идеальным для планирования мощности.
Войдите на свой прокси/сервер 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
Спасибо, что прочитали!
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3