zabbix的自动发现、自定义添加监控项目、配置邮件告警

1、zabbix的自动发现
这里的自动发现,所显示出来的是规则的上自动了现

然后 可以对其内容进行相关的配制,如时间或周期

注意:对于单个主机的规则,可以自行添加或删除, 但对于已经添加好了的规则,若需要修改那么,就只有到模板里面进行相关设置。

 

2、自定义添加监控项目,监控项目都是针对于客户机而言的,一般都是对客户机进行配制

先在客户机创建一个脚本加入以下内容:mkdir /etc/zabbix/sh; vim /etc/zabbix/sh/estab.sh

#!/bin/bash
##获取80端口并发连接数
netstat -ant |grep ':80 ' |grep -c ESTABLISHED
改变权限:chmod 755 /etc/zabbix/sh/estab.sh
然后再编辑配制文件:vim /etc/zabbix/zabbix_agentd.conf
改成如下:

PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=47.**.***.***
ServerActive=47.**.***.***
Hostname=os72
Include=/etc/zabbix/zabbix_agentd.d/*.conf
UnsafeUserParameters=1
UserParameter=nginx.estab.count[*],/etc/zabbix/sh/estab.sh

 

然后再重启zabbix-agent服务:systemctl restart zabbix-agent.service

然后,再测试自定义的脚本是否有效:zabbix_get -s **.***.***.*** -p 10050 -k 'nginx.estab.count'

zabbix_get -s IP -p 10050 -k 'name.sh'

最后,就到zabbix服务器上进行相关配制 

然后再新建一个监控项:

 

添加完成后,再到图形界面,配制一个图形:

监控项配制好了,还可以创建触发器:

 



流程:监控项,在客户端自定义要获取某个服务的是一个值,然后给权限,最后在服务端,进行相关的监控项的配制。

 

3、配置邮件告警

 

 邮箱配制以163邮箱为例进入邮箱进行相关设置:


 

然后访问监控服务器页面,进行脚本及参数的配制:


 

然后,就去服务器创建发邮箱的脚本(即客户机出问题了,由服务器发邮件报警):


然后编辑脚本:vim /etc/zabbix/sh/mail.py  

加入:

#!/usr/bin/env python
#-*- coding: UTF-8 -*-
import os,sys
reload(sys)
sys.setdefaultencoding('utf8')
import getopt
import smtplib
from email.MIMEText import MIMEText
from email.MIMEMultipart import MIMEMultipart
from subprocess import *
def sendqqmail(username,password,mailfrom,mailto,subject,content):
gserver = 'smtp.163.com'
gport = 25
try:
msg = MIMEText(unicode(content).encode('utf-8'))
msg['from'] = mailfrom
msg['to'] = mailto
msg['Reply-To'] = mailfrom
msg['Subject'] = subject

#啊里云用 smtp = smtplib.SMTP_SSL(gserver,465)

#其它的就用正常的

smtp = smtplib.SMTP(gserver,25)
smtp.set_debuglevel(0)
smtp.ehlo()
smtp.login(username,password)
smtp.sendmail(mailfrom, mailto, msg.as_string())
smtp.close()
except Exception,err:
print "Send mail failed. Error: %s" % err
def main():
to=sys.argv[1]
subject=sys.argv[2]
content=sys.argv[3]
sendqqmail('mail_name@163.com','password','mail_name@163.com',to,subject,content)
if __name__ == "__main__":
main()


注意阿里云的服务器不支持:smtplib.SMTP(smtp_server, 25),

若用阿里云的服务器,这里改成:smtp = smtplib.SMTP_SSL(gserver,465)


 

 

然后再测试:python mail.py to_email_name@qq.com "this is a test"  "use python script  to send e-mail"


 

再到服务器zabbix页面进行配制创建用户(即出现问题了报警信息发给谁):


 

最后再配制权限: 这里所配制的权限都是针对于组而言的,所以配制的都是用户组


 

后再进行查看:


 

 这时,整个配制有了:
在服务器页面上设置了报警的媒介(可以有N个) 、然后在服务器上设置了对应的脚本、再然后又在服务器页面上设置了用哪个报警媒介脚本,

并且设置了用户及权限(即出现问题后通知谁)。 但最后还差的就是一个动作(即一个问题的评判标准,在什么情况下执行脚本发邮件)
动作配制:

 

操作配制:

 

恢复操作也同样的设置:

最后就进行测试:
我们添加一个用户看一下:

 

查看:

再查看邮件:

 最后,对这于这几个操作的个人理解:

到此zabbix邮件报警配制完成。

小总结:
1、先配制报警媒介
2、根据报警媒体,设置相应的脚本
3、设置脚本执行后,配制报告给予对象 (通知用户)
4、设置执行脚本的前提条件(即 要执行该脚本需要在什么条件下)
5、根据不同的执行条件,进行不同的动作(如 发邮件、重启等等)

posted @ 2018-07-10 23:53  牛粪也香  阅读(338)  评论(0编辑  收藏  举报