「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Zabbix 用の電報および電子メール通知スクリプトの作成

Zabbix 用の電報および電子メール通知スクリプトの作成

2024 年 11 月 8 日に公開
ブラウズ:361

Writing a Telegram and Email Notifications Script for Zabbix

インフラストラクチャ全体の監視は、特に IT インフラストラクチャにおいて非常に重要です。最近、このような監視用のスクリプトの作成と書き方を勉強しています。電報と電子メール通知スクリプトの作成方法を共有します。このスクリプトは、インフラストラクチャで問題が発生するたびに電報と電子メール通知を送信します。

Zabbix とは

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

読んでいただきありがとうございます!

リリースステートメント この記事は次の場所に転載されています: https://dev.to/kurtchan/writing-a-telegram-and-email-notifications-script-for-zabbix-5ddj?1 侵害がある場合は、[email protected] までご連絡ください。それを削除するには
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3