Explication détaillée de la façon dont Zabbix3.0.2 utilise des scripts Python externes pour implémenter des alarmes par courrier électronique

高洛峰
Libérer: 2017-03-23 15:40:12
original
2029 Les gens l'ont consulté

1. Recherchez le chemin par défaut où le script est stocké (je l'ai mis sous le chemin par défaut. Si vous souhaitez passer à un autre chemin, modifiez le fichier de configuration zabbix_server.conf)

/usr/local /zabbix-server/ share/zabbix/alertscripts chemin de stockage du script

2, créez un fichier mail.py dans le répertoire, référence du script :

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 Script peut être directement modifié et copié. Des problèmes de format se produiront ~

import smtplib

from email.mime.text import MIMEText

import os

import argparse

journalisation des importations

importation dateheure

#QQ entreprise

#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['Sujet'] = unicode(sujet,'UTF-8')

msg['De'] = smtp_user

msg['à'] = mail_to

global sendstatus

global senderr

essayez :

si smtp_port == 465 :

smtp = smtplib.SMTP_SSL()

else :

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

imprimer 'envoyer ok'

sendstatus = True

sauf exception, e :

senderr=str(e)

print senderr

sendstatus = False

def logwrite(sendstatus,mail_to,content) :

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

sinon sendstatus:

content = senderr

sinon 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 envoyé à {0}, le contenu est :n {1}'.format(mail_to,content))

if __name__ == "__main__":

parser = argparse. ArgumentParser(description='Envoyer un e-mail à l'utilisateur pour l'alerte Zabbix')

parser.add_argument('mail_to',action="store", help='L'adresse e-mail envoyée à l'utilisateur ')

parser.add_argument('subject',action="store", help='Le sujet de l'e-mail')

Parser.add_argument('content',action="store ", help='Le contenu de l'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, modifiez les autorisations de le script

# chown zabbix.zabbix mail.py

# chmod 775 mail.py

4, configuration web zabbix

sélectionnez le type de média dans la configuration et créer un type de média

Explication détaillée de la façon dont Zabbix3.0.2 utilise des scripts Python externes pour implémenter des alarmes par courrier électronique

Remplissez les informations suivantes, tapez le script de sélection et zabbix3.0 nécessite les 3 paramètres suivants.

Explication détaillée de la façon dont Zabbix3.0.2 utilise des scripts Python externes pour implémenter des alarmes par courrier électronique

Créer un utilisateur ou définir une alarme dans l'utilisateur administrateur

Explication détaillée de la façon dont Zabbix3.0.2 utilise des scripts Python externes pour implémenter des alarmes par courrier électronique

Ce qui est ajouté ici est après un échec L'email auquel l'email est notifié est le destinataire.

Explication détaillée de la façon dont Zabbix3.0.2 utilise des scripts Python externes pour implémenter des alarmes par courrier électronique

Créer une action pour mettre en œuvre une alarme email, dans la configuration-Action-créer une action

(Ma photo est différente du modèle donné ci-dessous, elle est recommandé Utilisez un modèle, car le serveur que j'utilise n'est pas en Chine, tous les titres des e-mails seront tronqués. J'ai donc raccourci le titre sur cette image)

Explication détaillée de la façon dont Zabbix3.0.2 utilise des scripts Python externes pour implémenter des alarmes par courrier électronique

Nom : .

Action-Email

Sujet par défaut :

Défaut {TRIGGER.STATUS}, serveur : {HOSTNAME1} s'est produit : défaut {TRIGGER.NAME} !

Message par défaut :

Hôte de l'alarme : {HOSTNAME1}

Heure de l'alarme : {EVENT.DATE} {EVENT.TIME}

Niveau d'alarme : {TRIGGER.SEVERITY}

Informations sur l'alarme : {TRIGGER.NAME}

Élément d'alarme : {TRIGGER.KEY1}

Détails du problème : {ITEM.NAME} :{ITEM.VALUE}

Statut actuel : {TRIGGER.STATUS} :{ITEM.VALUE1}

ID d'événement : {EVENT.ID}

Veuillez vous rendre sur Montoring-Events pour vérifier les détails.

Sujet de récupération :

Récupérer {TRIGGER.STATUS}, serveur : {HOSTNAME1} : {TRIGGER.NAME} a été récupéré !

Message de récupération :

Hôte de l'alarme : {HOSTNAME1>

Heure de l'alarme : {EVENT.DATE} {EVENT.TIME}

Niveau d'alarme : {TRIGGER.SEVERITY}

Informations sur l'alarme : { TRIGGER.NAME}

Élément d'alarme :{TRIGGER.KEY1}

Détails du problème :{ITEM.NAME} :{ITEM.VALUE}

État actuel : {TRIGGER .STATUS} : {ITEM.VALUE1}

ID d'événement : {EVENT.ID}

L'alarme a été restaurée, veuillez vous détendre.

Explication détaillée de la façon dont Zabbix3.0.2 utilise des scripts Python externes pour implémenter des alarmes par courrier électronique

Ici, vous devez faire attention au type d'opération, à l'envoi du message et au script du message. Sélectionnez le bon.

Explication détaillée de la façon dont Zabbix3.0.2 utilise des scripts Python externes pour implémenter des alarmes par courrier électronique

5. Testez Zabbix pour envoyer des e-mails

Trouvez un client agent et arrêtez-le. Ensuite, regardez l'e-mail d'alarme~

Après Kill, vous pouvez voir que cela s'est produit avec succès~

Remarque : l'alarme de Zabbix est généralement envoyée une fois toutes les 5 minutes. Par exemple : s'il s'arrête à 16h20, vous recevrez l'email de panne à 16h25 et il sera traité à 16h30. Les informations de récupération peuvent être reçues à 16h35~ …

Explication détaillée de la façon dont Zabbix3.0.2 utilise des scripts Python externes pour implémenter des alarmes par courrier électronique

Explication détaillée de la façon dont Zabbix3.0.2 utilise des scripts Python externes pour implémenter des alarmes par courrier électronique

6. Résumé

J'utilise Ubuntu 16.4 ici, j'ai d'abord essayé d'utiliser mailx pour envoyer, mais plus tard, certains fichiers de bibliothèque n'ont pas pu être installés, puis je suis passé à d'autres méthodes et je n'ai pas pu recevoir d'e-mails. Enfin, j'ai décidé d'utiliser un script python externe pour réaliser~· Le. Le système Ubuntu possède de nombreuses dépendances logicielles qui ne sont pas fournies avec son propre environnement. .apt-get n'est vraiment pas facile à utiliser lors de l'utilisation de la boîte aux lettres 126, le code d'autorisation du client ne peut pas être connecté dans le script python. être utilisé par vous-même. Le dernier choix est la boîte aux lettres d'entreprise de l'entreprise. Mais comme zabbix envoie fréquemment des emails, beaucoup d'entre eux sont jetés à la poubelle... Finalement, je les ai transférés vers la boîte aux lettres QQ dans la boîte aux lettres de l'entreprise.

Ubuntu convient parfaitement au développement et à l'apprentissage, mais de nombreux problèmes subsistent lorsqu'il est utilisé comme serveur.

Posture correcte : centos+zabbix+boîte mail d'entreprise Si vous avez la possibilité d'écrire un article de suivi, alarme wechat dans zabbix.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal