インフラストラクチャ全体の監視は、特に IT インフラストラクチャにおいて非常に重要です。最近、このような監視用のスクリプトの作成と書き方を勉強しています。電報と電子メール通知スクリプトの作成方法を共有します。このスクリプトは、インフラストラクチャで問題が発生するたびに電報と電子メール通知を送信します。
Zabbix は、ネットワークの多数のパラメータと、サーバー、仮想マシン、アプリケーション、サービス、データベース、Web サイト、クラウドなどの健全性と整合性を監視するオープンソース ソフトウェアです。 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