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
Remplissez les informations suivantes, tapez le script de sélection et zabbix3.0 nécessite les 3 paramètres suivants.
Créer un utilisateur ou définir une alarme dans l'utilisateur administrateur
Ce qui est ajouté ici est après un échec L'email auquel l'email est notifié est le destinataire.
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)
Nom : .
Action-EmailSujet 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.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!