Zabbix3.0.2が外部Pythonスクリプトを使用して電子メールアラームを実装する方法の詳細な説明

高洛峰
リリース: 2017-03-23 15:40:12
オリジナル
2029 人が閲覧しました

1. スクリプトが保存されているデフォルトのパスを見つけます (デフォルトのパスの下に置きました。別のパスに変更したい場合は、zabbix_server.conf 設定ファイルを変更します)

/usr/local/zabbix-server/share /zabbix/alertscripts script ストレージ パス

2. ディレクトリに新しい mail.py ファイルを作成します: スクリプト リファレンス:

cd /usr/local/zabbix/alertscripts

vim mail.py

#!/usr/bin /python

#coding:utf-8

#author: itnihao

#mail: itnihao@qq.com

#url:https://github.com/itnihao/zabbix-book /edit/master/06 -chapter/zabbix_sendmail_v2.py スクリプトを直接変更してコピーすると、形式の問題が発生します~

import smtplib

from email.mime.text import MIMEText

import os

import argparse

インポートログ

インポート日時

# QQ enterprise

#smtp_server = 'smtp.exmail.qq.com'

#smtp_port = 25

#smtp_user = 'itnihao_zabbix@itnihao.com'

#smtp_pass = '1234567890'

# 163 メール

# smtp_server = 'smtp.163.com'

#smtp_port = 25

#smtp_user = 'itnihao_zabbix@163.com'

#smtp_pass = '1234567890'

#QQ Mail

smt p_server ='smtp.qq.com '

smtp_port = 25

smtp_user ='itnihao_zabbix@qq.com'

smtp_pass ='1234567890'

def send_mail(mail_to,subject,内容):

msg = MIMEText( content,_subtype='plain', _charset='utf-8')

msg['Subject'] = unicode(subject,'UTF-8')

msg['From'] = smtp_user

msg['to'] = mail_to

グローバル sendstatus

グローバル送信者

try:

if smtp_port == 465:

smtp = smtplib.SMTP_SSL()

else:

= smtplib.SMTP( )

smtp.connect(smtp_server,smtp_port)

smtp.login(smtp_user,smtp_pass) smtp.sendmail(smtp_user,mail_to,msg.as_string()) smtp.close()

sendstatus = True

例外、e を除く; sendstatus でない場合:

content = senderr

os.path.isdir(logpath):

os.makedirs(logpath)

t=datetime.datetime.now()

昼間=t.strftime('%Y-% m-%d')

daylogfile=logpath+'/'+str(daytime)+'.log'

logging.basicConfig(filename=daylogfile,level=logging.DEBUG)

os.system('chown zabbix. zabbix {0}'.format(daylogfile))

logging.info('*'*130)

logging.debug(str(t)+' メール送信先: {0 },content は :n {1}' .format(mail_to,content))

if __name__ == "__main__":

parser = argparse.ArgumentParser(description='zabbix アラートのためにユーザーにメールを送信')

parser.add_argument('mail_to',action= "store", help='ユーザーに送信するメールのアドレス ')

parser.add_argument('subject',action="store", help='メールの件名')

parser.add_argument('content',action="store", help='メールの内容')

args = parser.parse_args()

mail_to=args .mail_to

subject=args.subject

content=args.content

send_mail(mail_to,subject,content)

logwrite(sendstatus,mail_to,content)

3、スクリプトの権限を変更します

# chown zabbix.zabbix mail.py

# chmod 775 mail .py

4、zabbix Web設定

設定でメディアタイプを選択し、メディアタイプを作成します

Zabbix3.0.2が外部Pythonスクリプトを使用して電子メールアラームを実装する方法の詳細な説明

次の情報を入力し、選択スクリプトを入力します。zabbix3.0 の場合は、次の 3 つのパラメータを入力する必要があります。

Zabbix3.0.2が外部Pythonスクリプトを使用して電子メールアラームを実装する方法の詳細な説明

管理者ユーザーでユーザーを作成するかアラームを設定します

Zabbix3.0.2が外部Pythonスクリプトを使用して電子メールアラームを実装する方法の詳細な説明

ここで追加されるのは、失敗後に通知されるメール、つまり受信者です。

Zabbix3.0.2が外部Pythonスクリプトを使用して電子メールアラームを実装する方法の詳細な説明

configuration-Action-createアクションで、電子メールアラームを実装するアクションを作成します

(私の写真は以下のテンプレートとは異なります。私が使用しているサーバーは中国エリアのすべてのメール タイトルが文字化けするため、この画像のタイトルを短くしました)

Action-EmailZabbix3.0.2が外部Pythonスクリプトを使用して電子メールアラームを実装する方法の詳細な説明

デフォルトの件名:

Fault {TRIGGER.STATUS}、サーバー: {HOSTNAME1 } 発生: { TRIGGER.NAME} 障害!

デフォルト メッセージ:

アラーム ホスト: {HOSTNAME1}

アラーム時刻: {EVENT.DATE} {EVENT.TIME}

アラーム レベル: {TRIGGER.SEVERITY}

アラームメッセージ: { TRIGGER.NAME}

アラーム項目:{TRIGGER.KEY1}

問題の詳細:{ITEM.NAME}:{ITEM.VALUE}

現在のステータス:{TRIGGER.STATUS}:{ITEM.VALUE1}

イベントID :{EVENT.ID}

詳細については、Montoring-Eventsをご覧ください。

回復の件名:

{TRIGGER.STATUS} の復元、サーバー: {HOSTNAME1}: {TRIGGER.NAME} が回復しました。

回復メッセージ:

アラーム ホスト: {HOSTNAME1}

アラーム時刻: {EVENT. DATE } {EVENT.TIME}

アラームレベル: {TRIGGER.SEVERITY}

アラーム情報: {TRIGGER.NAME}

アラーム項目: {TRIGGER.KEY1}

問題の詳細: {ITEM.NAME}: {ITEM . VALUE}

現在のステータス: {TRIGGER.STATUS}:{ITEM.VALUE1}

イベントID: {EVENT.ID}

アラームが復旧しました。ご安心ください。

ここでは、操作のタイプ、送信されるメッセージ、およびメッセージのスクリプトに注意する必要があります。正しいものを選択する必要があります。

Zabbix3.0.2が外部Pythonスクリプトを使用して電子メールアラームを実装する方法の詳細な説明

5. 電子メールを送信するために zabbix をテストします

エージェント クライアントを見つけて停止します。次に、アラームメールを見てください~Zabbix3.0.2が外部Pythonスクリプトを使用して電子メールアラームを実装する方法の詳細な説明

Kill 後、ここで正常に送信されたことがわかります~

注: Zabbix のアラームは通常 5 分に 1 回送信されます。たとえば、16:20 に停止した場合、障害メールは 16:25 に受信され、16:30 に処理されます。 16:35〜に復旧情報を受け取ることができます…

Zabbix3.0.2が外部Pythonスクリプトを使用して電子メールアラームを実装する方法の詳細な説明 6. まとめ

ここではubuntu 16.4システムを使用しています。後で、いくつかのライブラリファイルを送信するためにmailxを使用してみました。が見つからずインストールできませんでした。その後、電子メールの受信に失敗した後、別のシステムに切り替えました。最終的に、外部の Python スクリプトを使用してそれを実現することにしました~ · Ubuntu システムには、それに付属していないソフトウェアの依存関係が多数あります。独自の環境では、apt-get は使いにくく、126 メールボックスを使用する場合、クライアント認証コードは使用できません。Python スクリプトで QQ メールボックスにログインするのは、会社の企業だけです。メールボックス。しかし、zabbixは頻繁にメールを送信するので、多くのメールはゴミ箱に捨てられてしまいます…最終的には社内メールボックスのQQメールボックスに転送しました。 Zabbix3.0.2が外部Pythonスクリプトを使用して電子メールアラームを実装する方法の詳細な説明

Ubuntuは開発や学習には適していますが、サーバーとして使用するとまだ多くの問題があります。

正しい姿勢: centos+zabbix+企業メール フォローアップ記事を書く機会があれば、zabbix の WeChat で警察に電話してください。

以上がZabbix3.0.2が外部Pythonスクリプトを使用して電子メールアラームを実装する方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート