随笔 - 120  文章 - 0  评论 - 35  阅读 - 85万

zabbix配置自动发现,故障邮件告警

 

对网段内的主机进行自动发现,自动加入主机组,自定加入template

 

创建动作时,类型这里选择discovery

然后将发现的主机加入host group和template:

动作针对的是discovery这个类型的:

上面定义的发现的规则,然后定义发现后的动作:

操作做完之后,然后将agent端的zabbix-agent服务进行开启:

1
# systemctl start zabbix-agent

 不多久就可以看见host:

 配置媒介:

上面三个脚本的参数必须带上:

{ALERT.SENDTO}:收件人

{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成功,可以在邮件发现已发送

于是简单的邮件告警发送成功

 附上邮件告警代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[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])

 

posted on   wadeson  阅读(1078)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示