Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erklärung, wie Zabbix3.0.2 externe Python-Skripte verwendet, um E-Mail-Alarme zu implementieren

Detaillierte Erklärung, wie Zabbix3.0.2 externe Python-Skripte verwendet, um E-Mail-Alarme zu implementieren

高洛峰
高洛峰Original
2017-03-23 15:40:122022Durchsuche

1. Suchen Sie den Standardpfad, in dem das Skript gespeichert ist (ich habe ihn unter dem Standardpfad abgelegt. Wenn Sie zu einem anderen Pfad wechseln möchten, ändern Sie die Konfigurationsdatei zabbix_server.conf)

/usr/local /zabbix-server/ share/zabbix/alertscripts Skriptspeicherpfad

2. Erstellen Sie eine neue mail.py-Datei im Verzeichnis:

cd /usr/local/zabbix-server /share/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 Das Skript kann direkt nach unten geändert und kopiert werden. Es treten Formatprobleme auf~

import smtplib

from email.mime.text import MIMEText

import os

import argparse

Protokollierung importieren

Datum/Uhrzeit importieren

#QQ Enterprise

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

#smtp_port = 25

#smtp_user = 'itnihao_zabbix@itnihao.com'

#smtp_pass = '1234567890'

#163 Mail

#smtp_server = 'smtp.163.com'

#smtp_port = 25

#smtp_user = 'itnihao_zabbix@163.com'

#smtp_pass = '1234567890'

#QQ Mail

SMTP_SERVER = 'SMTP.QQ.com'

SMTP_PORT = 25

SMTP_USER ='ITNIHAO_ZABBIX@qq.com '

SMTP_PASS =' 1234567890 ' > def send_mail(mail_to,subject,content):

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

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

msg['From'] = smtp_user

msg['to'] = mail_to

global sendstatus

global senderr

try:

if smtp_port == 465:

smtp = smtplib.SMTP_SSL()

sonst:

smtp = 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()

print 'send ok'

sendstatus = True

außer Exception,e:

senderr=str(e)

print senderr

sendstatus = False

def logwrite(sendstatus,mail_to,content) :

logpath='/var/log/zabbix/alert'

wenn nicht sendstatus:

content = senderr

wenn nicht os.path. isdir(logpath):

os.makedirs(logpath)

t=datetime.datetime.now()

daytime=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)+' Mail senden an {0},Inhalt ist :n {1}'.format(mail_to,content))

if __name__ == "__main__":

parser = argparse .ArgumentParser(description='E-Mail an Benutzer für Zabbix-Benachrichtigung senden')

parser.add_argument('mail_to',action="store", help='Die Adresse der E-Mail, die an den Benutzer gesendet wird ' )

parser.add_argument('subject',action="store", help='Der Betreff der E-Mail')

Parser.add_argument('content',action=" store", help='Der Inhalt der E-Mail')

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, ändern Sie die Berechtigungen des Skripts

# chown zabbix.zabbix mail.py

# chmod 775 mail.py

4, Zabbix-Webkonfiguration

Wählen Sie den Medientyp aus in der Konfiguration und erstellen Sie einen Medientyp

Detaillierte Erklärung, wie Zabbix3.0.2 externe Python-Skripte verwendet, um E-Mail-Alarme zu implementieren

Geben Sie die folgenden Informationen ein, geben Sie ein Auswahlskript ein und zabbix3.0 benötigt die folgenden 3 Parameter.

Detaillierte Erklärung, wie Zabbix3.0.2 externe Python-Skripte verwendet, um E-Mail-Alarme zu implementieren

Erstellen Sie einen Benutzer oder stellen Sie einen Alarm im Admin-Benutzer ein

Detaillierte Erklärung, wie Zabbix3.0.2 externe Python-Skripte verwendet, um E-Mail-Alarme zu implementieren

Was hier hinzugefügt wird, folgt ein Fehler Die E-Mail-Adresse, an die die E-Mail benachrichtigt wird, ist der Empfänger.

Detaillierte Erklärung, wie Zabbix3.0.2 externe Python-Skripte verwendet, um E-Mail-Alarme zu implementieren

Erstellen Sie eine Aktion zum Implementieren eines E-Mail-Alarms in der Konfiguration – Aktion – Aktion erstellen

(Mein Bild unterscheidet sich von der unten angegebenen Vorlage, das stimmt Empfohlen Verwenden Sie eine Vorlage, da sich der von mir verwendete Server nicht in China befindet. Alle E-Mail-Titel werden daher verstümmelt. Daher habe ich den Titel in diesem Bild gekürzt.

Detaillierte Erklärung, wie Zabbix3.0.2 externe Python-Skripte verwendet, um E-Mail-Alarme zu implementieren

Name:

.

Aktions-E-Mail

Standardbetreff:

Fehler {TRIGGER.STATUS}, Server: {HOSTNAME1} aufgetreten: {TRIGGER.NAME}-Fehler!

Standardnachricht:

Alarm-Host: {HOSTNAME1}

Alarmzeit: {EVENT.DATE} {EVENT.TIME}

Alarmstufe: {TRIGGER.SEVERITY}

Alarminformationen: {TRIGGER.NAME}

Alarmelement: {TRIGGER.KEY1}

Problemdetails: {ITEM.NAME}:{ITEM.VALUE}

Aktueller Status: {TRIGGER.STATUS}:{ITEM.VALUE1}

Ereignis-ID: {EVENT.ID}

Bitte gehen Sie zu Montoring-Events, um die Details zu überprüfen.

Betreff der Wiederherstellung:

Wiederherstellung von {TRIGGER.STATUS}, Server: {HOSTNAME1}: {TRIGGER.NAME} wurde wiederhergestellt!

Wiederherstellungsnachricht:

Alarm-Host: {HOSTNAME1}

Alarmzeit: {EVENT.DATE} {EVENT.TIME}

Alarmstufe: {TRIGGER.SEVERITY}

Alarminformationen: { TRIGGER.NAME}

Alarmelement:{TRIGGER.KEY1}

Problemdetails:{ITEM.NAME}:{ITEM.VALUE}

Aktueller Status: {TRIGGER . STATUS}:{ITEM.VALUE1}

Ereignis-ID: {EVENT.ID}

Der Alarm wurde wiederhergestellt, bitte entspannen Sie sich.

Detaillierte Erklärung, wie Zabbix3.0.2 externe Python-Skripte verwendet, um E-Mail-Alarme zu implementieren

Hier sollten Sie auf die Art der Operation, den Versand der Nachricht und das Skript der Nachricht achten. Wählen Sie den richtigen aus.

Detaillierte Erklärung, wie Zabbix3.0.2 externe Python-Skripte verwendet, um E-Mail-Alarme zu implementieren

5. Testen Sie zabbix, um E-Mails zu senden.

Suchen Sie einen Agenten-Client und stoppen Sie ihn. Dann schauen Sie sich die Alarm-E-Mail an~

Nach dem Kill können Sie sehen, dass es erfolgreich durchgeführt wurde~

Hinweis: Der Alarm von Zabbix wird normalerweise alle 5 Minuten gesendet. Beispiel: Wenn es um 16:20 Uhr stoppt, erhalten Sie die Störungs-E-Mail um 16:25 Uhr und sie wird um 16:30 Uhr bearbeitet. Die Wiederherstellungsinformationen können um 16:35 Uhr empfangen werden Hier habe ich zuerst versucht, Mailx zum Senden zu verwenden, aber später konnten einige Bibliotheksdateien nicht installiert werden, und dann wechselte ich zu anderen Methoden und konnte keine E-Mails empfangen. Schließlich entschied ich mich, ein externes Python-Skript zu verwenden, um dies zu erreichen Das Ubuntu-System verfügt über viele Softwareabhängigkeiten, die nicht mit der eigenen Umgebung verbunden sind. Bei Verwendung des 126-Postfachs kann der Client-Autorisierungscode nicht im QQ-Postfach angemeldet werden Die letzte Möglichkeit ist das Firmenpostfach des Unternehmens. Da Zabbix jedoch häufig E-Mails sendet, werden viele davon in den Papierkorb geworfen ... Schließlich habe ich sie an das QQ-Postfach im Firmenpostfach weitergeleitet.

Ubuntu eignet sich gut zum Entwickeln und Lernen, aber es gibt immer noch viele Probleme, wenn es als Server verwendet wird.Detaillierte Erklärung, wie Zabbix3.0.2 externe Python-Skripte verwendet, um E-Mail-Alarme zu implementieren

Richtige Haltung: Centos+Zabbix+Firmen-E-Mail Wenn Sie die Möglichkeit haben, einen Folgeartikel zu schreiben, rufen wir die Polizei in WeChat in Zabbix.

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung, wie Zabbix3.0.2 externe Python-Skripte verwendet, um E-Mail-Alarme zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Zabbix-Python-Mail-SkriptcodeNächster Artikel:Zabbix-Python-Mail-Skriptcode