Rumah pembangunan bahagian belakang Tutorial Python 详解Zabbix3.0.2使用外部python脚本实现邮件报警方法

详解Zabbix3.0.2使用外部python脚本实现邮件报警方法

Mar 23, 2017 pm 03:40 PM
skrip python

1,找到默认存放脚本的路径(我是在默认路径下面放着,如果想换别的路径,修改zabbix_server.conf配置文件)

/usr/local/zabbix-server/share/zabbix/alertscripts 脚本存放路径

2,在目录新建一个mail.py的文件,脚本参考:

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   脚本直接down修改下复制会出现格式问题~

import smtplib

from email.mime.text import MIMEText

import os

import argparse

import logging

import datetime

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

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

        print 'send ok'

        sendstatus = True

    except Exception,e:

        senderr=str(e)

        print senderr

        sendstatus = False

def logwrite(sendstatus,mail_to,content):

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

    if not sendstatus:

        content = senderr

    if not 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 send to {0},content is :\n {1}'.format(mail_to,content))

if __name__ == "__main__":

    parser = argparse.ArgumentParser(description='Send mail to user for zabbix alerting')

    parser.add_argument('mail_to',action="store", help='The address of the E-mail that send to user ')

    parser.add_argument('subject',action="store", help='The subject of the E-mail')

    parser.add_argument('content',action="store", help='The content of the 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,修改脚本的权限

# chown   zabbix.zabbix mail.py

# chmod  775 mail.py

4,zabbix web配置

在配置媒介类型选择,创建一个媒介类型

详解Zabbix3.0.2使用外部python脚本实现邮件报警方法

填写下面信息,类型选择脚本,需要填写zabbix3.0需要下面3个参数。

详解Zabbix3.0.2使用外部python脚本实现邮件报警方法

创建用户或者在admin用户里设置报警

详解Zabbix3.0.2使用外部python脚本实现邮件报警方法

此处添加的是出现故障后邮件通知到的邮件,也就是收件人。

详解Zabbix3.0.2使用外部python脚本实现邮件报警方法

创建一个action,实现邮件报警,在配置-Action-create action里

(处我图片和下面给的模板不一样,建议使用模板,因为我使用的服务器不在中国区域,所有邮件标题会乱码.. 所以此图我把标题改短了。)

详解Zabbix3.0.2使用外部python脚本实现邮件报警方法

Name:

Action-Email

Default subject:

故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

Default message:

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

请至Montoring-Events中查看详细情况。

Recovery subject:

恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!

Recovery message:

告警主机:{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脚本实现邮件报警方法

此处要注意操作类型,发送消息,还有消息的脚本。都要选对.

详解Zabbix3.0.2使用外部python脚本实现邮件报警方法

5,测试zabbix发送邮件

找一个agent客户端,停掉。然后看报警邮件~

Kill掉之后,可以在发送这里看到已经发生成功~ 

注意:zabbix的报警一般是5分钟发一次。比如:16:20停止的,16:25才会收到故障邮件,16:30处理了。16:35可以收到恢复信息~ … 

详解Zabbix3.0.2使用外部python脚本实现邮件报警方法

详解Zabbix3.0.2使用外部python脚本实现邮件报警方法

6.总结

    我此处使用的ubuntu 16.4的系统,开始尝用mailx发,后来少一些库文件无法安装,后来切换其他办法都已收不到邮件最后才选定用外部python脚本来实现~·ubuntu系统有很多软件的依赖环境不自带.apt-get实在用的不顺手,使用126邮箱出现客户端授权码无法无法在python脚本中登陆.QQ邮箱只能发生给自己. 最后选的是公司的企业邮箱。但是由于zabbix会频繁的发送邮件很多也被丢进垃圾箱… 最后在企业邮箱做的转发到QQ邮箱。

Ubuntu用开发和学习没问题,但是用作服务器问题还不少.

正确的姿势: centos+zabbix+企业邮箱 后续如果有机会写下篇zabbix中微信报警。

Atas ialah kandungan terperinci 详解Zabbix3.0.2使用外部python脚本实现邮件报警方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Adakah anda tahu beberapa sebab mengapa tugas berjadual crontab tidak dilaksanakan? Adakah anda tahu beberapa sebab mengapa tugas berjadual crontab tidak dilaksanakan? Mar 09, 2024 am 09:49 AM

Ringkasan beberapa sebab mengapa tugas berjadual crontab tidak dilaksanakan Masa kemas kini: 9 Januari 2019 09:34:57 Penulis: Harapan di medan ini terutamanya meringkaskan dan memperkenalkan kepada anda beberapa sebab mengapa tugas berjadual crontab tidak dilaksanakan setiap orang Penyelesaian diberikan untuk setiap pencetus yang mungkin, yang mempunyai rujukan dan nilai pembelajaran tertentu untuk rakan sekerja yang menghadapi masalah ini. Pelajar yang memerlukan boleh mengikuti editor untuk belajar bersama-sama: Saya telah menghadapi beberapa masalah di tempat kerja yang dijadualkan tugas tidak dilaksanakan Kemudian, apabila saya mencari di Internet, saya mendapati bahawa Internet terutamanya menyebut lima insentif ini: 1. Perkhidmatan crontab bukan fungsi kernel Linux, tetapi bergantung pada cron.

Skrip Python untuk mencipta jenaka rawak menggunakan pyjokes Skrip Python untuk mencipta jenaka rawak menggunakan pyjokes Sep 13, 2023 pm 08:25 PM

Adakah anda ingin menambah sedikit jenaka pada skrip atau aplikasi Python anda? Sama ada anda sedang membina chatbot, membangunkan alat baris arahan atau hanya ingin menghiburkan diri anda dengan jenaka rawak, perpustakaan pyjokes boleh membantu. Dengan pyjokes anda boleh dengan mudah menjana jenaka dalam pelbagai kategori dan menyesuaikannya mengikut keinginan anda. Dalam catatan blog ini, kami akan meneroka cara membuat jenaka rawak dalam Python menggunakan perpustakaan pyjokes. Kami akan merangkumi proses pemasangan, menjana kategori jenaka yang berbeza, menyesuaikan jenaka, memaparkannya dalam aplikasi konsol atau halaman web dan mengendalikan sebarang kemungkinan ralat yang mungkin berlaku. Pasang pyjokes Sebelum kita mula menggunakan pyjokes untuk mencipta jenaka rawak, kita perlukan

Skrip Python menyegarkan hamparan Excel secara automatik Skrip Python menyegarkan hamparan Excel secara automatik Sep 09, 2023 pm 06:21 PM

Python dan Excel ialah dua alat berkuasa yang apabila digabungkan boleh membuka dunia automasi. Python mempunyai perpustakaan serba boleh dan sintaks mesra pengguna yang membolehkan kami menulis skrip untuk melaksanakan pelbagai tugas dengan cekap. Excel, sebaliknya, ialah program hamparan yang digunakan secara meluas yang menyediakan antara muka biasa untuk analisis dan manipulasi data. Dalam tutorial ini, kami akan meneroka cara memanfaatkan Python untuk mengautomasikan proses menyegarkan hamparan Excel, menjimatkan masa dan usaha kami. Adakah anda mendapati diri anda menghabiskan masa yang berharga untuk menyegarkan hamparan Excel anda secara manual dengan data yang dikemas kini? Ini adalah tugas yang berulang dan memakan masa yang benar-benar boleh membunuh produktiviti. Dalam artikel ini kami akan membimbing anda menggunakan Py

Tutorial Lanjutan PyCharm: Gunakan PyInstaller untuk membungkus kod ke dalam format EXE Tutorial Lanjutan PyCharm: Gunakan PyInstaller untuk membungkus kod ke dalam format EXE Feb 20, 2024 am 09:34 AM

PyCharm ialah persekitaran pembangunan bersepadu Python yang berkuasa yang menyediakan pelbagai fungsi dan alatan untuk membantu pembangun meningkatkan kecekapan. Antaranya, PyInstaller ialah alat yang biasa digunakan yang boleh membungkus kod Python ke dalam fail boleh laku (format EXE) untuk memudahkan berjalan pada mesin tanpa persekitaran Python. Dalam artikel ini, kami akan memperkenalkan cara menggunakan PyInstaller dalam PyCharm untuk membungkus kod Python ke dalam format EXE, dan menyediakan khusus

Skrip Python untuk memantau perubahan tapak web Skrip Python untuk memantau perubahan tapak web Aug 29, 2023 pm 12:25 PM

Dalam era digital hari ini, mengetahui perubahan terkini pada tapak web anda adalah penting untuk pelbagai tujuan, seperti menjejak kemas kini pada tapak web pesaing anda, memantau ketersediaan produk atau sentiasa dimaklumkan tentang maklumat penting. Semakan tapak web anda secara manual untuk perubahan boleh memakan masa dan tidak cekap. Di sinilah automasi dimainkan. Dalam catatan blog ini, kami akan meneroka cara membuat skrip Python untuk memantau perubahan tapak web. Dengan memanfaatkan kuasa Python dan beberapa perpustakaan berguna, kami boleh mengautomasikan proses mendapatkan semula kandungan tapak web, membandingkannya dengan versi sebelumnya dan memberitahu kami tentang sebarang perubahan. Ini membolehkan kami kekal proaktif dan bertindak balas segera terhadap kemas kini atau pengubahsuaian pada tapak yang kami pantau. Menyediakan persekitaran Sebelum kita mula menulis skrip untuk memantau perubahan tapak web, kita perlu menyediakan P

Meneroka Orange3: Membuka dunia baharu perlombongan data dan pembelajaran mesin! Meneroka Orange3: Membuka dunia baharu perlombongan data dan pembelajaran mesin! Mar 04, 2024 pm 08:16 PM

Orange3 ialah alat visualisasi data sumber terbuka dan pembelajaran mesin yang berkuasa Ia mempunyai pemprosesan data yang kaya, analisis dan fungsi pemodelan, menyediakan pengguna dengan penyelesaian perlombongan data dan pembelajaran mesin yang mudah dan pantas. Artikel ini akan memperkenalkan secara ringkas fungsi asas dan penggunaan Orange3, dan menggabungkannya dengan senario aplikasi sebenar dan kes kod Python untuk membantu pembaca menguasai kemahiran penggunaan Orange3 dengan lebih baik. Fungsi asas Orange3 termasuk pemuatan data, prapemprosesan data, pemilihan ciri, penubuhan dan penilaian model, dsb. Pengguna boleh menggunakan antara muka intuitif untuk menyeret dan melepaskan komponen untuk membina proses data dengan mudah. Pada masa yang sama, pemprosesan data dan tugas pemodelan yang lebih kompleks juga boleh diselesaikan melalui skrip Python. Di bawah ini kita akan melalui praktikal

Bagaimana untuk membaca data excel dalam pycharm Bagaimana untuk membaca data excel dalam pycharm Apr 03, 2024 pm 08:42 PM

Bagaimana untuk membaca data Excel menggunakan PyCharm? Langkah-langkahnya adalah seperti berikut: pasang perpustakaan openpyxl, muatkan buku kerja Excel dalam lembaran kerja;

Bagaimana untuk mengulangi rentetan dalam python_python mengulangi tutorial rentetan Bagaimana untuk mengulangi rentetan dalam python_python mengulangi tutorial rentetan Apr 02, 2024 pm 03:58 PM

1. Mula-mula buka pycharm dan masukkan halaman utama pycharm. 2. Kemudian buat skrip python baru, klik kanan - klik baru - klik pythonfile. 3. Masukkan rentetan, kod: s="-". 4. Kemudian anda perlu mengulang simbol dalam rentetan sebanyak 20 kali, kod: s1=s*20 5. Masukkan kod output cetakan, kod: print(s1). 6. Akhir sekali jalankan skrip dan anda akan melihat nilai pulangan kami di bahagian bawah: - diulang 20 kali.

See all articles