参考样例:http://www.roncoo.com/course/view/fb3050a5b34b42f39ccad83ebebc89c1
一、软件版本
操作系统:CentOS-6.5-x86_64
zabbix版本:3.0.3
二、zabbix执行告警动作流程:
Item ---》触发器--》动作--》(邮件还是命令)--》媒介(脚本还是第三方)-->发送邮件
监控第一步骤,我们从最底层开始-->先添加媒介(因为没有邮件服务器,所以我们选择脚本):
三、添加脚本、测试是否能够发送邮件:
1、修改zabbx_server.conf文件,指定脚本路径,没有则添加:
AlertScriptsPath=/usr/local/zabbix/alertscripts
2、在/usr/local/zabbix/alertscripts下创建发送邮件脚本:
[root@BJ-monitor-h-01 alertscripts]# cat zabbix_sendmail.py
#!/usr/bin/python
#coding:utf-8
import smtplib
from email.mime.text import MIMEText
import sys
#邮箱服务器地址
mail_host = 'smtp.163.com'
#邮箱用户名
mail_user = 'xxx'
#邮箱密码
mail_pass = 'xxxx'
mail_postfix = '163.com'
def send_mail(to_list,subject,content):
me = mail_user+"
msg = MIMEText(content)
msg['Subject'] = subject
msg['From'] = me
msg['to'] = to_list
try:
s = smtplib.SMTP()
s.connect(mail_host)
s.login(mail_user,mail_pass)
s.sendmail(me,to_list,msg.as_string())
s.close()
return True
except Exception,e:
print str(e)
return False
if __name__ == "__main__":
send_mail(sys.argv[1], sys.argv[2], sys.argv[3])
3、测试看脚本是否能够发送成功邮件:
python zabbix_sendmail.py '942729042@qq.com' 'TEST' 'TEST FOR MALL'
不出意外应该是能够收到邮件的:
四、添加媒介类型:
1、添加脚本为媒介类型:
管理--》示警媒介--》新建示警媒介:
备注:
名称:python_sendmail (名称可以随意指定,后期调用)
类型:脚本
脚本名称:zabbix_sendmail.py
添加脚本参数(在3.0版本之前默认传值不用添加):
{ALERT.SENDTO} ####发送地址
{ALERT.SUBJECT} ###主题
{ALERT.MESSAGE} ###发送内容
五、添加用户操作命令,发送给谁,什么时间发送:
1、步骤:
管理--》用户--》admin-->报警示警媒介--》创建示警媒介:
2、添加用户操作:
备注:
类型选择添加的示警媒介名称,
收件人表示要发送到哪个地方:
启用时间:表示可以发送邮件的时间段。
六:添加要执行的动作:
1、步骤:
配置--》动作--》添加触发器动作:
2、动作选择项:
定义动作名称、使用默认选项,然后勾选恢复通知和已启用。
条件选择默认即可
操作主要定义发送步骤,选择发送用户和发送脚本:
操作步骤定义(时间假如我定义为60s):然后操作不走选择1-2说明前面120两次发送的告警都会发送到zabbix这个用户,要是再添加一个用户发送邮件到不同的人,步骤可以选择3-4,这样就实现了告警升级。
3、操作图:
4、备注:操作类型:可以是发送命令或者邮件。例如操作命令可以在监控服务的适合发送一条restart命令重启服务(LogRemoteCommands=1要agent开启这个)。
总结:到此一个简单的告警邮件已经完成,大家可以做一下扩展测试。
关注公众号: