对网段内的主机进行自动发现,自动加入主机组,自定加入templatepython
建立动做时,类型这里选择discoveryjson
而后将发现的主机加入host group和template:bash
动做针对的是discovery这个类型的:服务器
上面定义的发现的规则,而后定义发现后的动做:ui
操做作完以后,而后将agent端的zabbix-agent服务进行开启:3d
# systemctl start zabbix-agent
很少久就能够看见host:server
配置媒介:blog
上面三个脚本的参数必须带上:事件
{ALERT.SENDTO}:收件人ip
{ALERT.SUBJECT}:主题
{ALERT.MESSAGE}:告警正文
这里能够稍做修改
配置完以后出现以下:
将配置完的媒介与用户关联起来,能够建立新用户,能够选择已有用户,这里选择admin:
将媒介与之关联,并配置脚本的第一个参数:收件人
而后配置用户组:
选择zabbix administrators点进去配置permission:
待上面基础配置完成后,如今须要配置action:
因为是执行脚本因此是发送消息类型,关联到用户以及用户组
主题:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障! 邮件脚本的第二个参数
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
邮件正文:邮件脚本的第三个参数
配置完全部以上后,手动将一个zabbix-agent服务进行stop,而后进行reports下面的action log进行查看:
在上面的failed红字的感叹号能够看出action的动做是否成功,上面是因为没有指定user,因而修改:
这个邮件发送不成功看缘由是脚本没有权限,因而给脚本加上权限,并重启zabbix-server服务:
而后发现上面的一次已经触发action成功,能够在邮件发现已发送
因而简单的邮件告警发送成功
附上邮件告警代码:
[root@zabbix-server alertscripts]# cat /root/zabbix_python_demo/send_mail.py import smtplib from email.mime.text import MIMEText import sys from_mail = "json_hc@163.com" mail_passwd = "********" def send_mail(to_mail, subject, content): msg = MIMEText(content, 'plain', 'utf-8') msg['Subject'] = subject msg['From'] = from_mail msg['To'] = to_mail try: s = smtplib.SMTP() s.connect('smtp.163.com') s.login(from_mail, mail_passwd) s.sendmail(from_mail, to_mail, msg.as_string()) print("OK") except Exception as e: print(e) finally: s.quit() if __name__ == '__main__': send_mail(sys.argv[1], sys.argv[2], sys.argv[3])