centos7之zabbix邮件报警(短信报警)
前言
前面我们介绍了zabbix的基本linux和window及SNMP流量的简单监控,我们知道作为运维人员,需要7x24小时待命,但是我们不可能时时刻刻都坐在电脑旁边查看监控上的各个主机状态,所以我们需要配置一个邮件报警,也是邮件报警。
准备工作:
centos7.4
zabbix添加linux和windows监控主机,且工作状态正常。
Zabbix服务端
首先你得安装发送邮件的工具mailx
yum -y install mailx
1、配置mail,这个配置文件应该放到/etc/下面,安装完成后它会有个默认的mail.rc文件,备份它后新建一个相同名字的文件,把下面的内容写入就行。
注意:
1、这里新开通的126邮箱,除了需要开通SMTP服务外,还需要开通授权码登录,这里写的不再是登录密码,而是授权码。
2、可能是因为126邮箱的问题,这里确认申请成功后,在别的电脑上尝试登录是否正常。
3、发送邮箱smtp服务器地址,新开的邮箱地址是smtp.126.com。
如果测试中报535错误,请仔细检查以上三条注意事项。
set bsdcompat
set from=发送邮箱账号(这里必须写全了,别忘了@后面)
set smtp=smtp.163.com #发送邮箱smtp服务器地址(必须开启smtp服务)
set smtp-auth-user=发送邮箱账号(这里只需要写全拼就行。不需要@后面字符)
set smtp-auth-password=发送邮箱账号的密码
set smtp-auth=login #登录
2、测试(我这里是去163邮箱申请账户,开启smtp服务,发送给我的个人邮箱)
echo "test" | mail -s 'test linux' 接收邮件的邮箱地址

2、编写邮件发送脚本sendmail.sh(内容如下下)
#cd /usr/local/zabbix/share/zabbix/alertscripts/
#chown zabbix.zabbix /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh
#chmod 755 /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh
cat sendmail.sh
#!/bin/bash
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/sendmail.log 2>&1

3、配置zabbix_server.conf文件,让zabbix执行sendmail这个可执行文件
vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
4、再次测试
#su zabbix
#/usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh 接收邮件的邮箱地址 "test linux" "test"

注意:
切换到zabbix账户测试报警邮件很重要,这里如果提示以下错误,除了要给/tmp/sendmail.log这个文件执行权限外,还需要给属主属组的权限。这里通过不了,后面也是白瞎。
[zabbix@localhost root]$ /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh leihaidong@gaosiedu.com "test zabbix No1" "test"
/usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh: line 4: /tmp/sendmail.log: Permission denied
Zabbix的web端配置
1、管理 ---- 报警媒介类型 ----- 创建媒介类型。

2、创建媒体类型
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

3、管理 ---- 用户 ----- 选择admin用户。(自己创建一个用户也可以),这里你要是选择admin的话,你所有的机器只有有故障就会报警,很烦的,因为有些机器是不用邮件报警的话,就尴尬了,所以我这里不选择admin,我这里是新建一个单独的用户组。

如何实现部分邮件报警呢,首先我们需要创建一个用户群组。

我这里提前创建了一个管理员的组,把管理员加到这个组。

这里需要我们把邮件报警的组都加到这个组里面,被加到这个组里的组,才会报警。

下面我们配置管理员这个用户的邮件报警。

管理员的配置。

我这里是已经创建好的报警媒介。

具体内容如下。

我们看一下会报警的群组。

4、上面我们创建了用户和组,也创建了回报警的哪些群组。下面我们来看看,具体的报警和恢复后的邮件内容配置方法。下面这条是我已经创建好的报警。

我们来看看他的具体写法。首先是名称,添加条件,只需要在触发器名称后面的空白框键入is unreachable for 5 minutes,然后点击添加就行。
。。。。。。。。。。。。。。。。。。。###########################。。。。。。。。。。。。。。。。。。。。。。。。。。
注意,注意,注意:
这个is .....是什么意思呢?就是说只要报警里面出现这几个字母,就会发邮件报警,这里有个坑,就是我icmp邮件报警,因为默认loss是警告,所以它不会显示在仪表盘里面,所以我们需要看图形,这样很麻烦,所以我们需要将icmpping loss这个触发器改成一般严重,这样就会出现在仪表盘里面了,但是,但是,但是,它还是不短信报警,那怎么办呢?我们ping监控一个地址的时候,报警出现在仪表盘里面的话,会提示你Ping loss is too high on这句话,这个时候,我们要将这句话加到动作里面。意思是只要仪表盘里面报这句英文的时候,就会触发邮件(短信)报警。

同理,以后你想让出现哪个报警项,邮件报警的话,就在这里把那个报警信息加到这里就行。
。。。。。。。。。。。。。。。。。。。###########################。。。。。。。。。。。。。。。。。。。。。。。。。。

下面才是最关键的配置,持续时间我们改成60秒,也就是说1分钟报警一次,至于让它一直60秒间隔报警的话,这里可以把步骤改成1-0,0代表如果故障不恢复,就一直报下去。
默认接收人 故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
告警主机IP地址:{HOST.CONN}
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}


上面我们只是配置了出现故障时候报警的主题,信息等消息,下面我们看当故障恢复后发给我们的邮件。
默认接收人 恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
告警主机IP地址:{HOST.CONN}
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

报警邮件

恢复邮件:

注意:
1、我们上面说的邮件报警,但是需要短信报警的话,就简单了,我们申请一个移动139邮箱,然后接收报警邮件地址写成移动139邮箱,这样的话有报警手机也能收到短信。
2、只有状态时一般严重(含),才会在仪表盘里面显示为橘黄色,一般情况下短信报警设置报警级别为一般严重(含)。
3、fping需要支持报警级别需要将icmpping loss状态更改为一般严重。
参考地址:https://www.cnblogs.com/zoulongbin/p/6420239.html
方案二
注意:
如果你想用某个邮箱给你的邮箱发邮件的话,上面这么搞太费经,比如本文将的用126给我们的139和个人邮箱发报警短信,没问题。如果你想用不想用126或者163(smtp服务器的邮件账户)给你发邮件的话,可以考虑下面的方法。
1、你不用如上面说的替换原来/etc/mail.rc文件,默认就行。
2、你不用像第一步那样创建一个"创建媒介类型",直接修改自带的Email这个媒介就行,剩下的方法一样。
3、需要注意的是你需要给报警这件事儿,创建一个用户组合用户,让它对哪些主机群组有权限,都是在用户群组里面设置。
centos7之zabbix邮件报警(短信报警)的更多相关文章
- zabbix学习笔记:zabbix监控之短信报警
zabbix学习笔记:zabbix监控之短信报警 zabbix的报警方式有多种,除了常见的邮件报警外,特殊情况下还需要设置短信报警和微信报警等额外方式.本篇文章向大家介绍短信报警. 短信报警设置 短信 ...
- server宕机监控、检測、报警程序(139绑定手机短信报警)monitor_down.sh
宕机监控报警程序 一. 需求来源 宕机对运维人员来说,最痛苦了.怎样检測一台server是否还在正常执行,假设该server宕机,怎样在第一时间监測到并通知一线运维人员进行维护,最大化降低损失. ...
- zabbix 短信报警
使用的短信平台是云片网,接口请看官网短信接口API文档,有示例 进入server服务器存放脚本的文件夹,默认路径是 [root@test zabbix]# cat zabbix_server.conf ...
- Zabbix 短信报警示例
Zabbix 短信报警 示例: 注意zabbix 脚本文件默认放置目录是 alertscripts (zabbix 动作调用脚本目录) # 编辑 zabbix_server.conf # AlertS ...
- zabbix3配置短信报警
需求:在zabbix服务器配置短信报警,当服务出现故障达到预警级别是通过发送短信的形式告诉运维人员,以便及时处理. 一.zabbix服务器端配置短信脚本 我的短信脚本放置位置为 /etc/zabbix ...
- CactiEZ 中文版V10.1安装使用以及139邮箱短信报警设置
说明:CactiEZ中文版V10.1是基于CentOS 6.0系统,整合Cacti等相关软件,重新编译而成的一个操作系统! 说明:CactiEZ中文版V10.1是基于CentOS 6.0系统,整合 ...
- Grafana 短信报警
一.分析 需求 Grafana支持短信渠道报警 要求 使用开发提供的短信API接口 请求url: http://192.168.1.1:8088/alerting/sendSms?mobile=手机号 ...
- Grafana短信报警实现
1.阿里云短信服务API2.Jenkins-plugin:Generic Webhook Trigger Plugin 阿里云 下载阿里云短信服务SDK 创建短信服务ACCESS_KEY_ID Gra ...
- mysubmail 短信报警
https://www.mysubmail.com/chs/documents/developer/YPWD84 文本文档 官网:www.mysubmail.com 操作流程:快速接入短信 AP ...
随机推荐
- JavaScript类型相关常用操作
JS数组,字符串,json互相转换 JS数组转字符串 使用数组自带的join方法可以把数组转化为字符串: let arr = [1,2,'uu']; let str = arr.join(','); ...
- c#中如何使用到模糊查询
c#中如何使用到模糊查询,先举个最简单实用的例子,可在vs控制台应用程序中输出: 定义实体类: public class Student { public int ...
- Android 跳转权限设置界面的终极方案
转载请标明出处,维权必究:https://www.cnblogs.com/tangZH/p/10338377.html 有时候APP需要获取某些权限,要让用户手动打开,那么问题来了,若是直接提醒用户出 ...
- 数据库:MySQL实战;左链接;查询WordPress数据库中的文章内容
在1年前,我用学生价租了一个阿里云服务器(是真的便宜啊),自己在CentOS系统上用命令行搭了个WordPress的环境,开始了为期一个月使用自建博客的历程. 事实证明,博客在类似博客园这样的平台上写 ...
- ConchAPI | 更智能的API监控,提升团队效率
“昨天调好的API,怎么又挂了,竟然没有人发现?” “喂喂喂,你的API挂了,无法调用成功?哪里出问题了?” “这段时间的API数量越来越多了,有谁能好好理清下?” 现在服务端技术越来越讲究微服务化, ...
- 小程序开发基础-view视图容器
view 视图容器. // wxml <view class="section"> <view class="section__title"& ...
- 第五篇Scrum冲刺博客
一.Daily Scrum Meeting照片 二.每个人的工作 成员 ItemID 已完成工作 明天计划完成的工作 遇到的困难 张鸿 o1 整合界面至游戏中 将其他剩余功能进行整合 游戏状态的切换 ...
- git pull以及git pull --rebase
git pull的作用是将远程库中的更改代码合并到当前分支中,默认为:git fetch + git merge git fetch 的作用就相当于是从远程库中获取最新版本到本地分支,不会自动进行gi ...
- 解释型语言VS编译型语言
前言 计算机不能直接理解除机器语言以外的语言,所以只有把程序员编写的程序翻译成机器语言,计算机才能够执行程序. 将其他语言翻译成机器语言的工具,被称之为:编译器. 编译器的翻译方式有两种:编译和解释. ...
- linux系统mysql-5.7 修改字符集
起因:我在网上看修改mysql字符的文章时,都说配置/etc/mysql/my.cnf文件 然而我打开我上述的my.cnf文件时,发现里面的内容跟别人的不一样,我就觉得这个肯定不是正确的文件 经过我在 ...