封云亭 发表于 2019-1-18 12:01:36

zabbix系列之邮件告警(三)

  设置邮件告警有两种方式:

  1)、通过Linux自带的mail发送告警邮件
  2)、通过第三方邮箱发送(如QQ邮箱、163邮箱等)告警邮件
  1、修改 zabbx_server.conf 文件,指定脚本路径,没有则添加
# vim /usr/local/zabbix/etc/zabbix_server.conf
AlertScriptsPath=/usr/local/zabbix/alertscripts  2、在/usr/local/zabbix/alertscripts 下创建发送邮件脚本
  (1)、通过Linux自带的mail发送邮件的脚本
# cat mailx.sh
#!/bin/bash
#to=$1
#subject=$2
#Dbody=$3
#export.UTF-8
echo "$3" | sed s/'\r'//g | mail -s "$2" $1  (2)、通过第三方邮箱(QQ邮箱)发送邮件的脚本
# cat e-mail.py
#!/usr/bin/python
#coding: utf-8
import smtplib
import sys
from email.mime.text import MIMEText
_user = "QQ邮箱"
_pwd= "QQ邮箱中POP3/SMTP的服务密码"
_to   = "发送到哪个邮箱"
def send_mail(to,subject,contain):
    msg = MIMEText(contain)
    msg["Subject"] = subject
    msg["From"]    = _user
    msg["To"]      = to
    try:
      s = smtplib.SMTP_SSL("smtp.qq.com", 465)
      s.login(_user, _pwd)
      s.sendmail(_user, to, msg.as_string())
      s.quit()
      with open('/tmp/zabbix.log', 'w') as f:
            f.write("%s\n%s\n%s\n"%(to,subject,contain))
#      print "Success!"
    except smtplib.SMTPException,e:
      print "Falied,%s"%e
if __name__ == "__main__":
    send_mail(sys.argv, sys.argv, sys.argv)  注:

  记得给脚本执行权限和重启zabbix相关服务,同时还要先测试一下脚本是否能够成功发送邮件(这里就不做测试了)。
  

  3、在zabbix页面配置(注:)
  (1)、创建报警媒介,如图1所示
  http://s1.运维网.com/images/20171224/1514099974320419.png
                                                图1
  注:
  
  名称:zabbix_mail (名称可以随意指定,后期调用)
  类型:脚本
  脚本名称:e-mail.py
  添加脚本参数(在 3.0 版本之前默认传值不用添加):
     {ALERT.SENDTO}####发送地址
     {ALERT.SUBJECT}###主题
     {ALERT.MESSAGE}###发送内容
  ##这里只配置第三方邮箱发送邮件,使用Linux自带的mail也是一样的配置
  
(2)、添加用户操作命令,什么时候发送邮件,发送给谁,如图2所示
http://s1.运维网.com/images/20171224/1514100223446555.png
                                                      图2
  注:类型选择刚刚创建的报警媒介的名称
  

  (3)、创建动作操作,如图3和图4所示,配置恢复操作,如图5所示
  http://s1.运维网.com/images/20171224/1514100372876533.png
                                                     图3
  http://s1.运维网.com/images/20171224/1514100565524707.png
                                                     图4
  http://s1.运维网.com/images/20171224/1514100818207645.png
                                                     图5
  注:默认信息里的主机和ip地址是自己添加的,因为如果某台被监控的服务器出现问题了,默认发送的告警信息是没有主机名和ip地址的,需要我们自己登陆到zabbix监控页面查看究竟是哪台服务器出现问题。
  

  (4)、创建触发器,如图6所示
  这里以被监控的主机centos2为例,如果主机centos2的登陆用户数超过3个就发送邮件告警
  http://s1.运维网.com/images/20171224/1514101132543674.png
图6
  

  (5)、创建图形,如图7所示

  http://s1.运维网.com/images/20171224/1514101271217817.png
                                                                        图7
  

  (6)、查看监控页面,如图8所示
  http://s1.运维网.com/images/20171224/1514101322561752.png
                     图8
  

  (7)、测试,当用户登录数大于设定值时,会发送告警邮件
  查看用户登录数,如图9所示
http://s1.运维网.com/images/20171224/1514101551406713.png
图9
  查看动作日志,如图10所示
  http://s1.运维网.com/images/20171224/1514101971810235.png
                                                                                图10
  

  查看邮件,如图11所示
  http://s1.运维网.com/images/20171224/1514102069320929.png
                              图11
  

  (8)、当用户登陆数减少到设定的值以下时,会发送恢复通知
  查看监控页面,如图12所示
  http://s1.运维网.com/images/20171224/1514102249318136.png
图12
  注:由于之前忘了重启zabbix相关服务,导致一开始邮件发送失败,试了好几次才发现,所以
  

  查看动作日志,如图13所示
  http://s1.运维网.com/images/20171224/1514102428370966.png
图13
  查看邮件,如图14所示
  http://s1.运维网.com/images/20171224/1514102490613499.png
                                          图14
  至此,zabbix邮件告警就配置完成了。
  

  




页: [1]
查看完整版本: zabbix系列之邮件告警(三)