如何设置Zabbix使用Python脚本进行邮件告警?

2026-06-09 14:331阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1042个文字,预计阅读时间需要5分钟。

如何设置Zabbix使用Python脚本进行邮件告警?

1. 首先,您应该注册一个163邮箱,用于接收信息。注册时,请开启SMTP/POP3功能,并使用加密密码认证。

2.在Zabbix主机上,新建一个名为send.py的文件,并将以下代码复制粘贴到编辑器中:

python import smtplib from email.mime.text import MIMEText from email.header import Header

def send_email(subject, content, to_email, sender_email, password): # 邮件服务器设置 smtp_server=smtp.163.com smtp_port=465

# 创建SMTP对象 server=smtplib.SMTP_SSL(smtp_server, smtp_port) server.login(sender_email, password)

# 创建邮件对象 message=MIMEText(content, 'plain', 'utf-8') message['From']=Header(sender_email) message['To']=Header(to_email) message['Subject']=Header(subject)

# 发送邮件 server.sendmail(sender_email, [to_email], message.as_string()) server.quit()

if __name__==__main__: subject=Zabbix报警通知 content=这是一条Zabbix报警信息。 to_email=your_email@example.com sender_email=your_email@163.com password=your_password

如何设置Zabbix使用Python脚本进行邮件告警?

send_email(subject, content, to_email, sender_email, password) 请设置发送事件用户、密码等参数。

1.首先你应该注册一个163邮箱,用于发信,再注册时开启SMTP/POP3功能,使用加密密码认证.

2.在Zabbix主机上新建send.py文件,将以下代码复制编辑,设置发件用户、密码.

[root@localhost ~]# vim send.py

#!/usr/bin/python
#coding:utf-8
import smtplib
from email.mime.text import MIMEText
import sys
mail_host = 'smtp.163.com'
mail_user = 'smtpwho'
mail_pass = '密码'
mail_postfix = '163.com'
def send_mail(to_list,subject,content):
me = "Zabbix 监控告警通知"+"<"+mail_user+"@"+mail_postfix+">"
msg = MIMEText(content, 'plain', 'utf-8')
msg['Subject'] = subject
msg['From'] = me
msg['to'] = to_list

s = smtplib.SMTP()
s.connect(mail_host)
s.login(mail_user,mail_pass)
s.sendmail(me,to_list,msg.as_string())
s.close()

if __name__ == "__main__":
send_mail(sys.argv[1], sys.argv[2], sys.argv[3])

3.紧接着我们给脚本相应的权限测试是否能够发信成功,并拷贝到zabbix的默认脚本目中.

[root@localhost ~]# chmod +x send.py
[root@localhost ~]# python send.py 1181506874@qq.com zabbix checkok
[root@localhost ~]# echo $?
0
[root@localhost ~]# cp -a send.py /usr/lib/zabbix/alertscripts/
[root@localhost ~]# chmod 755 -R /usr/lib/zabbix/alertscripts/

4.登录Zabbix主机,查看配置zabbix_server.conf,找到AlertScriptsPath取消注释.

[root@localhost ~]# vim /etc/zabbix/zabbix_server.conf
[root@localhost ~]# vim /usr/local/zabbix/etc/zabbix_server.conf

### Option: AlertScriptsPath
# Full path to location of custom alert scripts.
# Default depends on compilation options.
# To see the default path run command "zabbix_server --help".
#
# Mandatory: no
# Default:
# AlertScriptsPath=${datadir}/zabbix/alertscripts

AlertScriptsPath=/usr/lib/zabbix/alertscripts #解除注释,找到配置项

5.点击图形界面,选择​​管理->报警媒介​​.

新增参数:{ALERT.SENDTO}{ALERT.SUBJECT}{ALERT.MESSAGE}分别依次加入,然后更新保存.

6.点击图形界面,选择​​配置->动作->创建动作​​,首先创建一个动作.

7.紧接着点击​​操作->配置​​一下故障报警消息格式.

标题改为:

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

信息改为:

告警主机:{HOSTNAME1}

告警地址:{HOST.IP}

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

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

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

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

事件 ID:{EVENT.ID}

8.当我们配置完成一个故障报警后,下面就继续配置一个恢复后的提示.

标题改为:

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

信息改为:

告警主机:{HOSTNAME1}

告警地址:{HOST.IP}

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

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

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

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

事件 ID:{EVENT.ID}

最终点击​​小add添加​​​选项,继续点击​​大ADD完成动作​​增加.

9.配置告警用户,点击​​管理->用户->Admin->报警媒介​​,修改以下内容.

10.强制关闭虚拟机,测试是否有邮件报警即可.

版权声明:本博客文章与代码均为学习时整理的笔记,文章 [均为原创] 作品,转载请 [添加出处] ,您添加出处是我创作的动力!





本文共计1042个文字,预计阅读时间需要5分钟。

如何设置Zabbix使用Python脚本进行邮件告警?

1. 首先,您应该注册一个163邮箱,用于接收信息。注册时,请开启SMTP/POP3功能,并使用加密密码认证。

2.在Zabbix主机上,新建一个名为send.py的文件,并将以下代码复制粘贴到编辑器中:

python import smtplib from email.mime.text import MIMEText from email.header import Header

def send_email(subject, content, to_email, sender_email, password): # 邮件服务器设置 smtp_server=smtp.163.com smtp_port=465

# 创建SMTP对象 server=smtplib.SMTP_SSL(smtp_server, smtp_port) server.login(sender_email, password)

# 创建邮件对象 message=MIMEText(content, 'plain', 'utf-8') message['From']=Header(sender_email) message['To']=Header(to_email) message['Subject']=Header(subject)

# 发送邮件 server.sendmail(sender_email, [to_email], message.as_string()) server.quit()

if __name__==__main__: subject=Zabbix报警通知 content=这是一条Zabbix报警信息。 to_email=your_email@example.com sender_email=your_email@163.com password=your_password

如何设置Zabbix使用Python脚本进行邮件告警?

send_email(subject, content, to_email, sender_email, password) 请设置发送事件用户、密码等参数。

1.首先你应该注册一个163邮箱,用于发信,再注册时开启SMTP/POP3功能,使用加密密码认证.

2.在Zabbix主机上新建send.py文件,将以下代码复制编辑,设置发件用户、密码.

[root@localhost ~]# vim send.py

#!/usr/bin/python
#coding:utf-8
import smtplib
from email.mime.text import MIMEText
import sys
mail_host = 'smtp.163.com'
mail_user = 'smtpwho'
mail_pass = '密码'
mail_postfix = '163.com'
def send_mail(to_list,subject,content):
me = "Zabbix 监控告警通知"+"<"+mail_user+"@"+mail_postfix+">"
msg = MIMEText(content, 'plain', 'utf-8')
msg['Subject'] = subject
msg['From'] = me
msg['to'] = to_list

s = smtplib.SMTP()
s.connect(mail_host)
s.login(mail_user,mail_pass)
s.sendmail(me,to_list,msg.as_string())
s.close()

if __name__ == "__main__":
send_mail(sys.argv[1], sys.argv[2], sys.argv[3])

3.紧接着我们给脚本相应的权限测试是否能够发信成功,并拷贝到zabbix的默认脚本目中.

[root@localhost ~]# chmod +x send.py
[root@localhost ~]# python send.py 1181506874@qq.com zabbix checkok
[root@localhost ~]# echo $?
0
[root@localhost ~]# cp -a send.py /usr/lib/zabbix/alertscripts/
[root@localhost ~]# chmod 755 -R /usr/lib/zabbix/alertscripts/

4.登录Zabbix主机,查看配置zabbix_server.conf,找到AlertScriptsPath取消注释.

[root@localhost ~]# vim /etc/zabbix/zabbix_server.conf
[root@localhost ~]# vim /usr/local/zabbix/etc/zabbix_server.conf

### Option: AlertScriptsPath
# Full path to location of custom alert scripts.
# Default depends on compilation options.
# To see the default path run command "zabbix_server --help".
#
# Mandatory: no
# Default:
# AlertScriptsPath=${datadir}/zabbix/alertscripts

AlertScriptsPath=/usr/lib/zabbix/alertscripts #解除注释,找到配置项

5.点击图形界面,选择​​管理->报警媒介​​.

新增参数:{ALERT.SENDTO}{ALERT.SUBJECT}{ALERT.MESSAGE}分别依次加入,然后更新保存.

6.点击图形界面,选择​​配置->动作->创建动作​​,首先创建一个动作.

7.紧接着点击​​操作->配置​​一下故障报警消息格式.

标题改为:

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

信息改为:

告警主机:{HOSTNAME1}

告警地址:{HOST.IP}

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

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

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

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

事件 ID:{EVENT.ID}

8.当我们配置完成一个故障报警后,下面就继续配置一个恢复后的提示.

标题改为:

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

信息改为:

告警主机:{HOSTNAME1}

告警地址:{HOST.IP}

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

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

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

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

事件 ID:{EVENT.ID}

最终点击​​小add添加​​​选项,继续点击​​大ADD完成动作​​增加.

9.配置告警用户,点击​​管理->用户->Admin->报警媒介​​,修改以下内容.

10.强制关闭虚拟机,测试是否有邮件报警即可.

版权声明:本博客文章与代码均为学习时整理的笔记,文章 [均为原创] 作品,转载请 [添加出处] ,您添加出处是我创作的动力!