一、目标
首先确定我们要实现的目标
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
(2)创建项目
(3)创建触发器
(4)添加模板进主机
(5)检查是否添加成功
(6)创建媒介
媒介:我们自定义的发送邮件的方式
(7)创建action
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、邮箱配置