zabbix自定义监控发邮件

来源:互联网 发布:java代码解析json数据 编辑:程序博客网 时间:2024/06/09 15:17

一、目标

首先确定我们要实现的目标
1、自定义zabbix监控
(1)自定义一个监控,监控用户登录数
(2)在linux系统中获取登录的用户数然后传值给zabbix
(3)zabbix先定义一个模板,然后在模板中创建items以及triggers,再创建Media types
(4)将创建的items添加进我们的主机中去。
(5)最后进行测试,如果警报则表示自定义监控创建成功
(6)编写发送邮件脚本,最后进行测试收到邮件则成功。
这个实在已经安装好了zabbix的基础上进行操作的,如果还有没有安装好zabbix请参照
zabbix的安装和配置

二、创建自定义监控

1、将登录数传参给zabbix

vim  /usr/local/etc/zabbix_agentd.conf  #编辑zabbix_agentd.conf

这里写图片描述
修改UserParameter=login-user,who |wc -l

who |wc -l  #获取当前连接的用户数

然后,重启zabbix_agentd服务

killall zabbix_agentd  #干掉所有zabbix_agentd的进程/usr/local/sbin/zabbix_agentd  #启动zabbix_agentd的进程

2、zabbix创建自定义监控


(1)创建templates

添加templates
创建templates


(2)创建项目

点击items
创建items
items内容填写


(3)创建触发器

进入trigger
创建trigger
trigger中填写的内容
add中的内容填写


(4)添加模板进主机

模板添加进主机
这里写图片描述
这里写图片描述


(5)检查是否添加成功

这里写图片描述
这里写图片描述
这里写图片描述


(6)创建媒介

媒介:我们自定义的发送邮件的方式
这里写图片描述
这里写图片描述


(7)创建action

action:触发器触发后所需要执行的动作
actions按钮界面
这里写图片描述
action界面配置
这里写图片描述


(8)相关方面更改媒介

这里写图片描述
这里写图片描述
这里写图片描述

至此,我们的监控创建完成,后来编写媒介中所用到的文件,上图我们媒介中使用的脚本文件为我们测试文件,此处我也会列出,正式发邮件,我们使用python来进行发邮件的功能,最后我们需要将媒介配置中sendmail.sh改为sendmail.py


三、编写脚本文件

1、zabbix脚本文件目录

在zabbix中所执行的脚本文件都存放于/usr/local/share/zabbix/alertscripts,至此我们需将我们创建的脚本文件放于此目录

2、sendmail.sh

此脚本我们用于测试在接收到报警后,linux是否有接收到参数

cd /usr/local/share/zabbix/alertscriptsvim sendmail.sh#在sendmail.sh中写入echo $1 $2 $3 > /tmp/ffff #将传的3个参数写入到tmp目录下的ffff文件中:wq #保存chmod +x sendmail.sh #对文件进行授权

文件编写完毕后,进行测试,多开几个连接窗口,静待30s
这里写图片描述

出现报警写状态是sent,则表示zabbix已经发送,那么检查ffff文件是否存在信息
这里写图片描述
如信息如下则表示,传参成功。测试ok

3、编写发邮件脚本sendmail.py

#!/usr/bin/env python# coding: utf-8import smtplibimport sysfrom email.mime.text import MIMETextfrom email.header import Headerfrom email.Utils import COMMASPACEreceiver = sys.argv[1]subject = sys.argv[2]mailbody = sys.argv[3]print receiverprint subjectprint mailbodysmtpserver = 'smtp.qq.com'username = '123456789@qq.com'  #发邮件所用的qqpassword = 'zrfypvowkysqdafh' #这所使用的密码在下方有解释sender = username#msg = MIMEText(sys.argv[3],'html','utf-8')msg= MIMEText(sys.argv[3],"html","utf-8")msg['Subject'] = Header(subject, "utf-8")msg['From'] = usernamemsg['To'] = receiversmtp = smtplib.SMTP()smtp.connect(smtpserver)smtp.starttls()smtp.login(username,password)smtp.sendmail(msg['From'], msg['To'],msg.as_string())smtp.quit()

此处使用了python的发邮件的模块,编写完成后保存在/usr/local/share/zabbix/alertscripts目录下以及将zabbix中媒介中的sendmail.sh修改为sendmail.py,再试运行即完成。

4、邮箱配置

这里写图片描述
这里写图片描述

原创粉丝点击