设为首页 收藏本站
查看: 2128|回复: 0

[经验分享] Zabbix 短信与邮件报警

[复制链接]

尚未签到

发表于 2018-1-1 11:34:17 | 显示全部楼层 |阅读模式
  zabbix报警的方式一般可以有短信、邮件、微信等方式.

一、zabbix邮件报警
  配置邮件报警的步大致的步骤是:


  • 配置外部邮箱、然后准备一个可以发邮件的脚本,可以是bash、python、php等
  • 创建一个报警媒介类型   ( 相当于建立一个发送 报警的通道 )
  • 针对用户选择创建好的报警媒介
  • 配置动作 ( 触发器、操作条件)
  1、配置外部邮箱、准备发邮件的脚本
  首先你要有一个外部邮箱用来报警邮件,我这里是163的,然后一定要开启授权,这样才能连到163的邮件服务器。登陆mail.163.com, 设置 ---》 常规设置 ---》 客户端授权码 ,按照相关步骤操作就行.

  在zabbix-server服务器上配置邮件客户端,这样就能连到163的邮件服务器
  

# yum install mail dos2unix -y  

  vim /etc/mail.rc                                            # 在最近后面添加如下
  

set from=xxxxxxxxx@163.com        # 发件人邮箱  
set smtp
=smtp.163.com             # 发件人smtp服务器  
set smtp
-auth-user=xxxxxx         # 发件人(用户)  
set smtp
-auth-password=xxxxx      # 密码  
set smtp
-auth=login               # 认证登陆  
set ssl
-verify=ignore             # 忽略ssl验证  

  准备发邮件的脚本,要放到zabbix_server.conf中的AlertScriptsPath路径下面并且有执行的权限, 我这里是/usr/lib/zabbix/alertscripts,也可以根据你的需求自己定义
  

# cd /usr/lib/zabbix/alertscripts  

  编写报警邮件脚本(vim zabbix-sendmail.sh)如下:
  

#!/bin/bash  

  
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
  
MAIL_FILE="/tmp/zabbix_mail_file"         #  注意此文件需要对启动zabbix-server的用户有写入的权限
  
sendto=$1
  
subject=$2
  

  
echo "$3" > $MAIL_FILE
  
dos2unix -k $MAIL_FILE
  

  
mail -s "$subject" "$sendto" < $MAIL_FILE
  

  添加执行权限,否则发不了邮件
  

# chown zabbix.zabbix zabbix_sendmail.sh  
#
chmod u+x zabbix_sendmail.sh   

  测试邮件脚本是否可用发送邮件,如果可以才能进行下一步配置
  

./zabbix_sendmail.sh 你的邮箱 主题 我的内容  

  2、创建报警媒介类型
  管理 ===》 报警媒介类型  ===》 创建媒体类型

  3、用户选择创建好的媒体介质类型
  管理 ==》 用户  ==》 报警媒介,在手机人中指定邮箱,多个以逗号隔开。这里有个建议是可以填qq邮箱,这样间接的可以在微信里看到报警的邮件

  4、配置动作
  配置  == 》 动作  ==》 创建动作



  配置完成后,模拟一个agent断开告警,然后在动作日志里面查看有没有相关的动作

  再看下能不能收到邮件


二、zabbix短信报警
  短信报警和邮件报警差不多


  • 首先要有短信网关,准备一个可以发送短信的脚本,什么语言的都可以
  • 创建一个报警媒介类型   ( 相当于建立一个发送 报警的通道 )
  • 针对用户选择创建好的报警媒介
  • 配置动作 ( 触发器、操作条件)
  发送短信的脚本如下,其它的邮件报警一样
  

#!/usr/bin/env python3  
#
coding:utf-8  

  
"""
  
调用短信网关接口发短信
  
"""
  

  
import sys
  

  
try:
  import requests
  
except ImportError:
  sys.exit("Error: requests library must be installed: pip install requests.")
  

  

  
def send_msg(mobile, message):
  """
  发送短信功能
  parmas: mobile  对方手机号
  parmas: message 短信内容
  return: json
  """
  message = message.encode('gb2312')
  payload = {
  'UserID': 'xxxxxx',
  'Account': 'xxxxxx',
  'Password': 'xxxxxx',
  'Content': message,
  'Phones': mobile
  }
  

  try:
  r = requests.get(
  'http://www.lanz.net.cn/LANZGateway/DirectSendSMSs.asp', params=payload
  )
  message = r.text
  return {'code': 200, 'message': message}
  except Exception as err:
  message = err
  return {'code': 404, 'message': message}
  if __name__ == '__main__':
  filename = sys.argv[0]
  argvs = sys.argv[1:]
  mobile = argvs[0]
  message = '【zabbix告警】\n' +  argvs[2]
  send_msg(mobile=mobile, message=message)
  

  模拟测试,看有没有收到短信

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-430497-1-1.html 上篇帖子: zabbix监控java进程 下篇帖子: zabbix配置邮件告警
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表