Zabbix 3.0 生产案例 [五]

摘要

报警是运维工作中常见的问题,今天我们主要介绍zabbix的邮件报警以及短信报警。

zabbix

时间:2016年9月29日
笔者QQ:381493251
博客地址:www.abcdocker.com
微信公众号:abcdocker
Abcdocker交流群:454666672
如果遇到什么问题可以进群询问,我们是一个乐于帮助的集体!

  上面我们说到了监控TCP和Nginx状态,但是光是监控是没有任何作用的。监控完我们不知道跟没监控没啥区别,下面我们进行`监控项的讲解

 

1.触发器

  首先我们给Nginx添加触发器
1.选择Configuration--->Hosts
2.找到我们相对应的主机进入
3.选择主机中的Triggers--->添加(Create trigger)
1.png-109.2kB

我们设置一个事件
2.png-163.6kB

3.png-72.4kB

我们选择Insert,然后选择Add即可
4.查看报警状态
 因为我们设置的级别大于1就报警,默认Nginx是0,随便访问以下就是1.所以肯定就会报警。报警邮件可以根据我们前面 [Zabbix 3.0 部署监控 [三]]文章进行设置
 报警邮件如下:
5.png-218.5kB

我们可以查看这个事件的相关过程
4.png-214.1kB

以上就是我们添加的一个触发器报警步骤

1 (1).png-100.5kB

 Zabbix默认触发器的预值比较低,我们需要调大。这个在面试过程中会被问到

我们进行修改默认模板
路径下图:
2.png-33.3kB

1.png-159.9kB

3.png-333.3kB

我们可以看到默认是大于300进行报警,我们点进去修改即可
4.png-102.4kB

  根据实际情况进行修改,我们设置600即可。同时触发器支持多个条件进行报警,如or all等,只需要在上面的值后面继续添加即可。
  我们修改完之后
  1.png-137.9kB

  还有一个有警告显示磁盘不够,因为是虚拟机我们不予理会,我们可以查看到恢复之后的邮件

 

2.脚本发送邮件

提示: Zabbix邮件报警是3.0才有的,以前不支持用户名密码。所以早期都是使用脚本进行发送邮件报警。
 由于时间关系我们就不进行写了请下载发送邮件的python脚本:
链接:http://pan.baidu.com/s/1gfkGrgZ 密码:6bsh

脚本注释:

 
  1. Python脚本中三个相关的参数
  2. receiver = sys.argv[1]
  3. #收件人地址
  4. subject = sys.argv[2]
  5. #发送邮件的主题
  6. mailbody = sys.argv[3]
  7. #发送邮件的内容
  8. smtpserver ='smtp.exmail.qq.com'
  9. #邮件服务器地址,本脚本使用的是企业邮箱
  10. username ='username'
  11. #用户名
  12. password ='password'
  13. #密码
  14. sender = username
  15. #发送人名称

我们如果要写一个发送邮件的脚本,需要支持个参数
1、收件人
2、标题
3、内容

 

 

自定义告警脚本

 我们也可以使用shell写一个最简单的
脚本存放路径:我们可以在配置文件中查看

 
  1. [root@linux-node1 web]# vim /etc/zabbix/zabbix_server.conf
  2. AlertScriptsPath=/usr/lib/zabbix/alertscripts

提示: 这行配置文件定义了邮件脚本的存放路径,因为它默认会从usr/lib/zabbix/alertscripts查找邮件脚本

 
  1. [root@linux-node1 web]# vim /usr/lib/zabbix/alertscripts/sms.sh
  2. #!/bin/bash
  3. ALTER_TO=$1
  4. ALTER_TITLE=$2
  5. ALTER_BODY=$3
  6. echo $ALTER_TO >>/tmp/sls.log
  7. echo $ALTER_TITLE >>/tmp/sms.log
  8. echo $ALTER_BODY >>/tmp/sms.log

我们可以写完之后进行检测,如果这里有信息说明已经调用这个脚本。 如果我们有短信通道将里面的内容换一下即可,短信通道都是有售后的

 
  1. 修改权限
  2. [root@linux-node1 web]# chmod +x /usr/lib/zabbix/alertscripts/sms.sh
  3. [root@linux-node1 web]# ll /usr/lib/zabbix/alertscripts/sms.sh
  4. -rwxr-xr-x 1 root root 152Oct820:26/usr/lib/zabbix/alertscripts/sms.sh

  我们写的脚本是短信报警,首先你需要有一个短信通道,我们可以使用阿里云大鱼,本次我们使用文件追加的形式来模拟.
  

 

Zabbix页面设置

1.png-90.4kB

点击右上角创建报警介质
5.png-73.4kB

点击最下面的Add
4.png-70.3kB

5.png-71.3kB

6.png-120.4kB

提示:先点击小的Update在点最下面的Update
我们还需要修改报警媒介
7.png-96kB

找到相对应的用户,点击。
8.png-61.1kB

1.png-89.7kB

  接下来就需要我们触发报警了
3.png-230.6kB

上面我们设置的连接数是大于1,所以我们多刷新几次就可以了
4.png-248.3kB

这里显示发送完成,我们去日志进行查看
2.png-46.9kB

 
  1. 13122323232为发送的手机号
  2. PROBLEM为主题信息NginxActive监控项
  3. Original........:为故障信息,2代表连接数是2

提示: 因为中国的短信收费是70个字符2毛,字母也算是。所以我们发送邮件的报警信息就需要简介明了一点

 

优化图如下:

1.png-118.5kB

修改后如下:
2.png-77.4kB

  设置完成之后最好数一下,不要超过70个字符
3.png-226.8kB

http://www.alidayu.com/
有兴趣的同学可以自己了解一下阿里大鱼,可以提供短信通道、语音、验证码等业务。
1.png-80.7kB

短信通道比较出名的几款产品:
  亿美软通 阿里大鱼 腾讯云也有

 

微信报警

  短信报警和邮件报警已经说过了,我们简单的说一下微信报警
4.png-42.1kB

  因为在很早之前就说过,个人服务号和订阅号不支持直接跟订阅用户进行沟通。如果是企业号可以直接获取到一个类似key,拿着这个key直接curl就可以了发了。 具体内容可以进行百度或者谷哥搜索。

扩展: 除了以上三种报警,还有钉钉报警以前还有QQ报警飞信报警,但是现在已经不开源了
提示: 上面那三行最好不要删除,在生产环境中追加到一个文件中。记录发送邮件的信息


本集完! 

posted @ 2018-01-17 19:47  北方客888  阅读(113)  评论(0)    收藏  举报