前言

  前面我们介绍了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邮件报警(短信报警)的更多相关文章

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

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

  2. server宕机监控、检測、报警程序(139绑定手机短信报警)monitor_down.sh

    宕机监控报警程序 一.   需求来源 宕机对运维人员来说,最痛苦了.怎样检測一台server是否还在正常执行,假设该server宕机,怎样在第一时间监測到并通知一线运维人员进行维护,最大化降低损失. ...

  3. zabbix 短信报警

    使用的短信平台是云片网,接口请看官网短信接口API文档,有示例 进入server服务器存放脚本的文件夹,默认路径是 [root@test zabbix]# cat zabbix_server.conf ...

  4. Zabbix 短信报警示例

    Zabbix 短信报警 示例: 注意zabbix 脚本文件默认放置目录是 alertscripts (zabbix 动作调用脚本目录) # 编辑 zabbix_server.conf # AlertS ...

  5. zabbix3配置短信报警

    需求:在zabbix服务器配置短信报警,当服务出现故障达到预警级别是通过发送短信的形式告诉运维人员,以便及时处理. 一.zabbix服务器端配置短信脚本 我的短信脚本放置位置为 /etc/zabbix ...

  6. CactiEZ 中文版V10.1安装使用以及139邮箱短信报警设置

    说明:CactiEZ中文版V10.1是基于CentOS 6.0系统,整合Cacti等相关软件,重新编译而成的一个操作系统!   说明:CactiEZ中文版V10.1是基于CentOS 6.0系统,整合 ...

  7. Grafana 短信报警

    一.分析 需求 Grafana支持短信渠道报警 要求 使用开发提供的短信API接口 请求url: http://192.168.1.1:8088/alerting/sendSms?mobile=手机号 ...

  8. Grafana短信报警实现

    1.阿里云短信服务API2.Jenkins-plugin:Generic Webhook Trigger Plugin 阿里云 下载阿里云短信服务SDK 创建短信服务ACCESS_KEY_ID Gra ...

  9. mysubmail 短信报警

    https://www.mysubmail.com/chs/documents/developer/YPWD84   文本文档  官网:www.mysubmail.com 操作流程:快速接入短信 AP ...

随机推荐

  1. Kubernetes的污点和容忍(上篇)

    背景 搭建了一个k8s(Kubernetes)的事件监听服务,监听事件之后对数据做处理.有天报了一个问题经调查是新版本的k8s集群添加会把unschedule等信息通过污点的方式反映.而这些污点是只有 ...

  2. msql分区

    确认mysql服务器是否支持分区表: show plugins; 如果能看到partition则表示能分区. HASH分区的特点: 根据MOD(分区键,分区数)的值把数据行存储到表的不同分区中 数据可 ...

  3. 记一次按需加载和npm模块发布实践

    按需加载 在使用 lodash 的时候我们可以使用这样的代码 //一 import {omit} from "lodash"; //二 import l from "lo ...

  4. 【带着canvas去流浪】 (3)绘制饼图

    目录 一. 任务说明 二. 重点提示 三. 示例代码 四. hover高亮的实现思路 示例代码托管在:http://www.github.com/dashnowords/blogs 博客园地址:< ...

  5. Spring Boot Security 详解

    简介 Spring Security,这是一种基于 Spring AOP 和 Servlet 过滤器的安全框架.它提供全面的安全性解决方案,同时在 Web 请求级和方法调用级处理身份确认和授权. 工作 ...

  6. [Java] 为什么字符串比较不能用两个等号(==)

    Java中,使用"=="比较字符串时,判断的是两个字符串是否存放在相同的位置.如果两个字符串存放在相同的位置,那么它们就是相同的,使用"=="比较的结果也就是T ...

  7. vue+element-ui实现行数可控的表格输入

    element的table中使用 <template slot-scope="scope"> </template> 包裹想要插入的input,或者sele ...

  8. 转int啥啥啥的

    1.String转int类型的话.需要用Double.valueof("这写String类型的数据").intValue(); 2.保留小数点: float scale = (fl ...

  9. 测者的测试技术手册:Junit单元测试遇见的一个枚举类型的坑(枚举类型详解)

    Enum的简介 枚举类型很早就在计算机语言中存在了,主要被用来将一组相似的值包含进一种类型中,这种类型的名称被定义成独一无二的类型描述符,这就是枚举类型. 在java语言中,枚举类型是一个完整功能的类 ...

  10. 测者的测试技术手册:测试应该关注java.util.List.subList的坑

    java中有一个返回子列表的方法: public list<E> subList(int fromIndex, int toIndex){       subListRangeCheck( ...