一、目标

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

vim 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-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 = '123456789@qq.com'  #发邮件所用的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、邮箱配置

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

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐