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. Ici, vous devez faire attention au type d'opération, à l'envoi du message et au script du message. Sélectionnez le bon. 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~ … 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!