zabbix自定义监控发邮件

一、目标

首先确定我们要实现的目标
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

zabbix自定义监控发邮件_第1张图片
修改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

zabbix自定义监控发邮件_第2张图片
zabbix自定义监控发邮件_第3张图片


(2)创建项目

zabbix自定义监控发邮件_第4张图片
zabbix自定义监控发邮件_第5张图片
zabbix自定义监控发邮件_第6张图片


(3)创建触发器

zabbix自定义监控发邮件_第7张图片
zabbix自定义监控发邮件_第8张图片
zabbix自定义监控发邮件_第9张图片
zabbix自定义监控发邮件_第10张图片


(4)添加模板进主机

zabbix自定义监控发邮件_第11张图片
zabbix自定义监控发邮件_第12张图片
zabbix自定义监控发邮件_第13张图片


(5)检查是否添加成功

zabbix自定义监控发邮件_第14张图片
zabbix自定义监控发邮件_第15张图片
zabbix自定义监控发邮件_第16张图片


(6)创建媒介

媒介:我们自定义的发送邮件的方式
zabbix自定义监控发邮件_第17张图片
zabbix自定义监控发邮件_第18张图片


(7)创建action

action:触发器触发后所需要执行的动作
zabbix自定义监控发邮件_第19张图片
zabbix自定义监控发邮件_第20张图片
zabbix自定义监控发邮件_第21张图片
zabbix自定义监控发邮件_第22张图片


(8)相关方面更改媒介

zabbix自定义监控发邮件_第23张图片
zabbix自定义监控发邮件_第24张图片
zabbix自定义监控发邮件_第25张图片

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


三、编写脚本文件

1、zabbix脚本文件目录

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

2、sendmail.sh

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

cd /usr/local/share/zabbix/alertscripts

vim sendmail.sh

#在sendmail.sh中写入
echo $1 $2 $3 > /tmp/ffff #将传的3个参数写入到tmp目录下的ffff文件中

:wq #保存

chmod +x sendmail.sh #对文件进行授权

文件编写完毕后,进行测试,多开几个连接窗口,静待30s
zabbix自定义监控发邮件_第26张图片

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

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

#!/usr/bin/env python
# coding: utf-8
import smtplib
import sys
from email.mime.text import MIMEText
from email.header import Header
from email.Utils import COMMASPACE
receiver = sys.argv[1]
subject = sys.argv[2]
mailbody = sys.argv[3]
print receiver
print subject
print mailbody
smtpserver = 'smtp.qq.com'
username = '[email protected]'  #发邮件所用的qq
password = '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'] = username
msg['To'] = receiver
smtp = 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、邮箱配置

zabbix自定义监控发邮件_第27张图片
zabbix自定义监控发邮件_第28张图片

你可能感兴趣的:(Linux,zabbix)