部署环境:(Zabbix的版本为3.4.10)
Zabbix server:192.168.2.205 Centos 7
Zabbix agent:192.168.2.204 Centos 7
zabbix服务端和客户端的安装部署我就不讲了,可以参考我的另一篇博文https://blog.51cto.com/andyxu/2120362 ,这里我主要讲zabbix的三种报警方式。

一、邮件报警

邮件报警配置有两种方式,一种是web端配置一个可用的邮箱,一种是通过脚本发送报警邮件。
(1)在web端配置一个可用的外部邮箱,通过这个邮箱发送报警邮件。
第1步:添加报警媒介
管理-报警媒介类型-Email,按下图将你的邮箱配置填写上去,选项那里可不用更改。

第2步:用户配置
管理-用户-Admin,报警媒介那里点击“添加”,收件人那里填写你要接收报警的邮箱地址。

第3步:创建一个动作
配置-动作-创建动作,按下面图进行配置



点击“操作”,配置邮件内容和操作步骤等
以下是我自己定义的一个报警邮件内容,具体的参数含义可参考官网资料
服务器 {HOST.NAME} 发生 {TRIGGER.NAME} 故障!{TRIGGER.STATUS}
故障主机: {HOST.NAME}
故障时间: {EVENT.DATE} {EVENT.TIME}
故障信息: {TRIGGER.NAME}
故障级别: {TRIGGER.SEVERITY}
事件ID: {EVENT.ID}
{TRIGGER.URL}

点击“恢复操作”,配置主机恢复正常后发送的邮件内容和操作步骤等
故障恢复邮件内容:
服务器 {HOST.NAME} 发生 {TRIGGER.NAME} 已恢复!{TRIGGER.STATUS}
故障主机: {HOST.NAME}
恢复时间: {EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
故障信息: {TRIGGER.NAME}
故障级别: {TRIGGER.SEVERITY}
事件ID: {EVENT.ID}
{TRIGGER.URL}


确认操作可无需配置,至此就全部配置完成了,可以模拟个故障测试一下吧。
最终收到的报警邮件内容如下图

(2)通过脚本发送报警邮件

通过脚本发送报警邮件有两种方式:

1、使用linux系统的用户账号发送,例如zabbix的账号邮箱地址为zabbix@<主机名>.localdomain,很多外部邮箱会将其视为垃圾邮件。
2、配置一个外部邮箱地址,发送报警邮件。
由于linux系统的用户邮箱有可能会被视为垃圾邮件,所以我们这里使用一个外部邮箱发送报警。

第1步:如果安装有sendmail或者postfix,需要关闭

systemctl stop sendmail
systemctl disable sendmail
systemctl stop postfix
systemctl disable postfix

第2步:安装mailx工具,通过此工具来发送邮件
yum -y install mailx
第3步:修改/etc/mail.rc,添加一个外部的smtp服务器地址、账号密码等。

cp /etc/mail.rc /etc/mail.rc.bak
vim /etc/mail.rc
set from=xxxx@126.com
set smtp=smtp.126.com
set smtp-auth-user=xxxx@126.com
set smtp-auth-password=xxxxxxxx
set smtp-auth=login

第4步:通过命令发封邮件测试
echo "你好啊,测试啊" | mail -s "title" xxxx@126.com

能正常收到邮件即可
第5步:编写邮件发送脚本
确认一下zabbix_server.conf配置文件里以下目录是否已开启,如果没有请添加下面这行。
AlertScriptsPath=/data/zabbix/share/zabbix/alertscripts
注:不同安装方式的zabbix此目录的路径会有所不同,我是编译安装的,所以是这个路径,如果是yum安装的话,默认路径为AlertScriptsPath=/usr/lib/zabbix/alertscripts
vim /data/zabbix/share/zabbix/alertscripts/mail.sh

#!/bin/bash
echo "$3" | mail -s "$2" "$1"

更改脚本属主和赋予可执行权限

chown -R zabbix:zabbix /data/zabbix/share/zabbix/alertscripts
chown zabbix:zabbix /data/zabbix/share/zabbix/alertscripts/mail.sh
chmod +x /data/zabbix/share/zabbix/alertscripts/mail.sh

测试脚本是否能正常发送邮件
/data/zabbix/share/zabbix/alertscripts/mail.sh xuad@xxxxxxxxx.com xuad88 xlkllskdk5

邮件能正常收到,脚本没问题
第6步:添加报警媒介
管理-报警媒介类型-创建媒体类型
{ALERT.SENDTO} # 用户里定义的收件人地址
{ALERT.SUBJECT} # 邮件标题
{ALERT.MESSAGE} # 邮件内容

第7步:用户配置
管理-用户-Admin-报警媒介

第8步:创建动作
配置-动作-创建动作,此处前面已经讲过,这里就不再重复了,按下图配置



第9步:模拟故障测试
往192.168.2.204主机的/boot目录下写入一个700M垃圾文件,使其触发警告,发送报警邮件。
dd if=/dev/zero of=/boot/test bs=100M count=7

此时在仪表板页面我们看到邮件已发送成功

然后登陆邮箱收下邮件吧,邮件内容如下图

然后动作日志里应该能看到刚刚发送的报警邮件了,最后别忘记把700M的垃圾邮件删除。

二、企业微信报警

第1步:注册一个企业微信号
浏览器打开
https://work.weixin.qq.com/ , 点击企业注册。

注册成功后会看到企业信息页面,把企业ID先记录下来,后面发送报警脚本里需要配置。

第2步:创建一个部门,专供发送报警用,并添加需要接收报警的成员。
点击“通讯录”,再点击+号,选择“添加部门”。


把部门ID记录下来,后面配置web端用户报警媒介的收件人要用到。

给刚创建的部门添加成员,可以直接添加成员也可以微信邀请,可以先将管理员微信添加进来。这里可以点击“微信邀请”,用管理员微信扫描二维码添加。


第3步:新增一个第三方应用
企业应用-创建应用

可见范围那里选择刚才添加的那个部门

将AgentId和Secret记录下来,发送脚本里需要配置。

第4步:下载微信发送脚本

cd /tmp/
git clone https://github.com/loong576/Wechat-Alert-for-Zabbix.git
cp Wechat-Alert-for-Zabbix/wechat_alert.py /data/zabbix/share/zabbix/alertscripts/
chown zabbix:zabbix /data/zabbix/share/zabbix/alertscripts/wechat_alert.py
chmod +x /data/zabbix/share/zabbix/alertscripts/wechat_alert.py

没有git命令的话,可以用yum安装
yum -y install git
安装requests模块

yum -y install epel-release
yum -y install python-pip
pip install --upgrade pip
pip install requests

第5步:修改wechat_alert.py脚本
修改下面3行内容,就是前面记录的企业ID,AgentId和Secret。

    Corpid = "xxxxxxxxxxxxxxxxxx"  # 企业IDSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"Agentid = "xxxxxxx"


第6步:创建报警媒介类型
脚本参数这里只需要添加下面两个参数,收件人和报警内容
{ALERT.SENDTO}
{ALERT.MESSAGE}

第7步:新建用户群组,用于接收微信报警


第8步:新建一个接收微信报警的用户,并将其加入到刚刚创建的用户群组

添加用户报警媒介,将之前记录下来的部门ID填入收件人里。

第9步:创建报警动作



至此所有配置就都完成了,下面来测试一下吧。
第10步:报警测试
跟前面邮件测试一样,往zabbix server主机的/boot目录下写入一个700M的垃圾邮件,使其触发报警。
dd if=/dev/zero of=/boot/test bs=100M count=7
然后我们用手机打开企业微信,来看一下报警信息吧

查看微信报警信息有两种方式:1、在企业微信上查看;2、关注企业微信号,在微信上查看。
第11步:关注企业微信号,在微信上查看报警信息
先通过微信扫描通讯录里的二维码或者直接添加成员,将其加入到接收报警的部门里。

然后进入到连接微信-微工作台,下面有个邀请关注二维码,手机上打开微信扫描此二维码,然后输入自己的手机号通过验证即可。


以后就可以直接在微信上接收报警了,在下图中“监控报警”里面查看报警信息。

三、短信报警

第1步:创建发送短信脚本
由于我们公司是用的语音短信,不需要报警内容,所以脚本无需传任何参数,如果是用的文字短信,请自行修改脚本。其实无论是语音短信还是文字短信,脚本内容大体上是一样的,只是少了报警内容而已,少了往脚本里传个参数而已。
vim /data/zabbix/share/zabbix/alertscripts/sms.pl

#!/usr/bin/perl -w
use strict;
use LWP::Simple;
use URI::Escape;
use Encode;
my $content = 'xxxxxx';  # 语音短信内容编号
my $prdid = 'xxxxxxx';
my @mobile = ('138xxxxxxxx','186xxxxxxxx');  # 接收语音短信的手机号
my $log_control = 1; # a switch of log
my $username = 'xuad'; # your sms service username
my $password = '12345678'; # your sms service password
my $number = 0;
while($number < 2){my $result = get "http://<发送短信的URL地址>sname=$username&spwd=$password&scorpid=&sprdid=$prdid&sdst=$mobile[$number]&smsg=$content";if($log_control) {my $fh;open($fh, '>> /data/zabbix/logs/sms.log') or die "can't open log: $!";  # make sure have permissionprint $fh join(' ', time, encode('utf8',$result), "\n");close $fh;}$number = $number + 1;
}

更改脚本属主和赋予可执行权限

chown zabbix:zabbix /data/zabbix/share/zabbix/alertscripts/sms.pl
chmod +x /data/zabbix/share/zabbix/alertscripts/sms.pl

测试脚本是否正常

/data/zabbix/share/zabbix/alertscripts/sms.pl
cat /data/zabbix/logs/sms.log

日志里出现下图内容表示脚本OK

第2步:创建报警媒介类型
由于是语音短信报警,没有标题和内容,所以只需要传个收件人参数即可。我们公司语音短信内容是固定的,内容大致是“目前有服务器出现故障,请查收邮件或者查看微信”。

第2步:给用户添加报警媒介

第3步:创建报警动作


由于是短信报警,所以只发故障短信,不发恢复短信,所以无需配置恢复操作。
第4步:报警测试
跟之前测试一样,这里就不重复写了,只要能正常接收到报警短信即可。

转载于:https://blog.51cto.com/andyxu/2145196

zabbix三种常用报警方式:邮件、微信和短信报警相关推荐

  1. 13.zabbix学习笔记:zabbix监控之短信报警

    zabbix学习笔记:zabbix监控之短信报警 zabbix的报警方式有多种,除了常见的邮件报警外,特殊情况下还需要设置短信报警和微信报警等额外方式.本篇文章向大家介绍短信报警. 短信报警设置 短信 ...

  2. zabbix手机报警,zabbix短信报警

    zabbix手机和短信报警,实现原理和邮件报警一样 这里使用的api是nexmo的,https://www.nexmo.com/ 也并不是打广告,电话报警确实好用,附带用了他家的短信,需要的朋友的拿走 ...

  3. CentOS6.x设置邮件短信报警

    CentOS6.x设置邮件短信报警 1.把监控脚本先写出来 提取IP地址 [root@localhost ~]# ifconfig | grep "inet addr" #抓取ip ...

  4. nagios监控服务短信报警开发及部署细节

    网站监控的及时报警方式主要就是短信报警了:1)邮箱转短信报警. 2)微信,MSN,QQ转手机信息提醒. 3)短信网关报警(本文推荐) 4)短信猫报警. 5)飞信报警. 6)手机邮件客户端直接收邮件提示 ...

  5. nagios整合ganglia实现hadoop、Hbase监控及手机短信报警

    预计该博文篇幅较长,这里不再废话,对ganglia不太了解的去问谷老师,直接看环境: hadoop1.updb.com    192.168.0.101 hadoop2.updb.com    192 ...

  6. 推荐|脚本2分钟实现电话短信报警

    运维在日常工作中,会写很多脚本,但是脚本想支持电话短信报警却比较麻烦,要想让脚本支持电话.短信报警,一般要在电话短信运营商平台提交资料审核才可以,有些运营商平台还需要提交企业资质才可以,这就给运维带来 ...

  7. zwacs短信报警智能工业云监控系统

    zwacs短信报警智能工业云监控系统 --zwacs众为自动化 产品概述 随着物联网进化加速,工业设备智能监测的要求越来越高.如何更智能.更低成本实现远程监控是我们解决的首要问题.如:农业大棚监控.医 ...

  8. 猫猫学iOS(四十五)之常用的小功能比如打电话、打开网址、发邮件、发短信打开其他应用。...

    猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243?viewmode=contents 简介 iOS中的很多小功能都 ...

  9. [系统集成] RT(Request Tracker)执行自定义脚本及发送微信、短信的实现方法

    RT(Request Tracker)是一个基于 Perl 语言的开源状态跟踪和工作流系统,支持审批.权限管理等功能,中文化支持的也不错,可以作为企业的流程审批系统使用.可惜的是,该系统在国内使用的不 ...

  10. linux 查看非法用户登录,用短信报警来监控linux系统的非法登录用户

    用短信报警来监控linux系统的非法登录用户 为了保证linux系统的安全,我们可以写一段脚本来监控linux系统的用户登录情况,当登录IP地址不是我们指定的IP地址时则发出一条报警短信.这里我们间接 ...

最新文章

  1. 比特币现金(BCH)的百家争鸣时代
  2. Pandas.DataFrame转置
  3. Linux内核中影响tcp三次握手的一些协议配置
  4. 二项分布均值和方差的简单推导
  5. SAP CRM enterprise search change pointer注册场景之一 - 产品创建
  6. 【软件开发底层知识修炼】三 深入浅出处理器之三 内存管理与内存管理单元(MMU)
  7. Python爬虫教程:验证码的爬取和识别详解
  8. Sql Server参数化查询之where in和like实现之xml和DataTable传参
  9. oracle sqlplus ed,Uedit32与SQLPlus结合使用技巧-数据库专栏,ORACLE
  10. mini LED光学仿真
  11. 能解方程的计算机在线计算,解方程计算器在线计算
  12. ssm基于微信平台的牙科就诊信息管理系统的设计与实现 毕业设计源码211157
  13. 怎么写加密邮件,企业邮箱支持吗?【企业邮箱注册】
  14. 鼠标滑轮将物体放大缩小
  15. unity中计算不规则模型的体积与表面积—三角面片与四面体
  16. 欧文6 oracle aqua 测评,欧文6实战测评!详细说说
  17. 怎样通过flash模板安装Facebook专页
  18. 2018年哪些科技突破将带来新惊喜?
  19. 贴片电阻上的字符是如何表示电阻的?
  20. python大数据和java大数据的区别-从事大数据工程师 Java和Python哪个编程语言好

热门文章

  1. ROS入门——解决RLException: Unable to launch [xxx-2]
  2. 好用的谷歌浏览器插件
  3. Adobe reader update 无法将数值disableexceptionchainvaliddation写入键/sofeware...请验证您对该有足够
  4. win7系统安装网银助手时提示您尚未正确安装错误的两种解决方法图文教程
  5. 面试题:为什么说 Mybatis 是半自动ORM 映射工具?它与全自动的区别在哪里?
  6. 燕十八-PHP公益培训-学习
  7. git push/pull命令
  8. ansible常用模块
  9. rabbitmq:publisher confirms
  10. PDF怎么在线免费转换成WORD,亲测可用