一、目标

首先确定我们要实现的目标
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监控项自定义倍数 zabbix自定义监控脚本配置_自动化运维


修改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监控项自定义倍数 zabbix自定义监控脚本配置_自定义_02


zabbix监控项自定义倍数 zabbix自定义监控脚本配置_发邮件_03


(2)创建项目

zabbix监控项自定义倍数 zabbix自定义监控脚本配置_自定义_04


zabbix监控项自定义倍数 zabbix自定义监控脚本配置_linux_05


zabbix监控项自定义倍数 zabbix自定义监控脚本配置_linux_06


(3)创建触发器

zabbix监控项自定义倍数 zabbix自定义监控脚本配置_linux_07


zabbix监控项自定义倍数 zabbix自定义监控脚本配置_自定义_08


zabbix监控项自定义倍数 zabbix自定义监控脚本配置_自动化运维_09


zabbix监控项自定义倍数 zabbix自定义监控脚本配置_zabbix监控项自定义倍数_10


(4)添加模板进主机

zabbix监控项自定义倍数 zabbix自定义监控脚本配置_zabbix监控项自定义倍数_11


zabbix监控项自定义倍数 zabbix自定义监控脚本配置_自定义_12


zabbix监控项自定义倍数 zabbix自定义监控脚本配置_发邮件_13


(5)检查是否添加成功

zabbix监控项自定义倍数 zabbix自定义监控脚本配置_自动化运维_14


zabbix监控项自定义倍数 zabbix自定义监控脚本配置_发邮件_15


zabbix监控项自定义倍数 zabbix自定义监控脚本配置_自定义_16


(6)创建媒介

媒介:我们自定义的发送邮件的方式

zabbix监控项自定义倍数 zabbix自定义监控脚本配置_自定义_17


zabbix监控项自定义倍数 zabbix自定义监控脚本配置_自定义_18


(7)创建action

action:触发器触发后所需要执行的动作

zabbix监控项自定义倍数 zabbix自定义监控脚本配置_自动化运维_19


zabbix监控项自定义倍数 zabbix自定义监控脚本配置_linux_20


zabbix监控项自定义倍数 zabbix自定义监控脚本配置_自动化运维_21


zabbix监控项自定义倍数 zabbix自定义监控脚本配置_自动化运维_22


(8)相关方面更改媒介

zabbix监控项自定义倍数 zabbix自定义监控脚本配置_zabbix监控项自定义倍数_23


zabbix监控项自定义倍数 zabbix自定义监控脚本配置_自定义_24


zabbix监控项自定义倍数 zabbix自定义监控脚本配置_linux_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监控项自定义倍数 zabbix自定义监控脚本配置_发邮件_26

出现报警写状态是sent,则表示zabbix已经发送,那么检查ffff文件是否存在信息

zabbix监控项自定义倍数 zabbix自定义监控脚本配置_自动化运维_27


如信息如下则表示,传参成功。测试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、邮箱配置

zabbix监控项自定义倍数 zabbix自定义监控脚本配置_自定义_28


zabbix监控项自定义倍数 zabbix自定义监控脚本配置_zabbix监控项自定义倍数_29