監控整個基礎架構非常重要,特別是在 IT 基礎架構中。我最近學習創建和編寫這樣的監控腳本。我將向您分享我如何製作電報和電子郵件通知腳本。每當基礎設施出現問題時,此腳本都會發送電報和電子郵件通知。
Zabbix 是一款開源軟體,可監控網路的眾多參數以及伺服器、虛擬機器、應用程式、服務、資料庫、網站、雲端等的運作狀況和完整性。 Zabbix 使用靈活的通知機制,讓使用者為幾乎任何事件配置基於電子郵件的警報。這允許對伺服器問題做出快速反應。 Zabbix 基於儲存的資料提供出色的報告和資料視覺化功能。這使得 Zabbix 成為容量規劃的理想選擇。
透過 SSH 登入您的 Zabbix 代理程式/伺服器並前往「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 使用 sudo 運行 python 腳本,您必須編輯 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