本文是上一篇zabbix安装配置的后续,主要介绍配合通讯工具实时监控

使用公网邮箱发送邮件

邮件系统简要介绍:
电子邮件系统包括两个组件:MUA(Mail User Agent,邮件用户代理)和MTA(Mail Transport Agent,邮件传送代理 postfix)MUA是邮件系统为用户提供的可以读写邮件的界面;而MTA是运行在底层,能够处理邮件的收发工作的程序。

mail和mailx即为负责查看、编写邮件和向MTA发送邮件的MUA。mailx是mail的功能加强版。

1.注册163邮箱
2.登陆网页邮箱设置客户端授权密码


server服务器端:

安装MUA软件:mailx

[root@zabbix-server ~]#  yum install mailx -y
[root@zabbix-server ~]# mailx -V
12.5 7/5/10
注:使用新的方式--利用公网邮件服务器发送报警,需要关闭postfix服务
[root@zabbix-server ~]# systemctl stop postfix

配置公网邮箱信息:

[root@zabbix-server ~]# vim /etc/mail.rc  ---在最后添加如下:
 set from=12345678@163.com(邮箱地址) set smtp=smtp.163.com(smtp服务器) set smtp-auth-user=12345678@163.com(用户名) set smtp-auth-password=qf123456(这里是邮箱的授权密码) set smtp-auth=login

使用mailx发邮件的方式:

方式1:echo "正文内容" | mailx -s "邮件标题" 收件箱Email
方式2:mailx -s "邮件标题" 收件箱Email,回车按CTRL+D发送
参数:
-v :显示发送的详细信息

手动发送邮件测试:

[root@zabbix-server ~]# mailx -v -s 'hello' 'zhangsan@163.com'

手写邮件内容 (回车,然后ctrl+d正常结束)

[root@zabbix-server ~]# mailx -v -s 'hello' 'zhangsan@163.com'
nihao
EOT
Resolving host smtp.163.com . . . done.
Connecting to 123.126.97.2:smtp . . . connected.
220 163.com Anti-spam GT for Coremail System (163com[20141201])
>>> EHLO zabbix-server
250-mail
250-PIPELINING
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-coremail 1Uxr2xKj7kG0xkI17xGrU7I0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2UFeF38eUCa0xDrUUUUj
250-STARTTLS
250 8BITMIME
>>> AUTH LOGIN
334 dXNlcm5hbWU6
>>> bHd4MTgzNjYwMTkzNTZAMTYzLmNvbQ==
334 UGFzc3dvcmQ6
>>> bHd4MTgzNjYwMTkzNTY=
235 Authentication successful
>>> MAIL FROM:<lwx18366019356@163.com>
250 Mail OK
>>> RCPT TO:<lwx18366019356@163.com>
250 Mail OK
>>> DATA
354 End data with <CR><LF>.<CR><LF>
>>> .
250 Mail OK queued as smtp2,GtxpCgDXkqTEFERdskSAAA--.825S2 1564742867
>>> QUIT
221 Bye

手动使用mailx发送邮件测试结果:


zabbix添加邮件报警功能:

配置 zabbix 的邮件报警功能需要以下三个角色的参与。

1、 示警媒体(Media)
2、 触发器(Triggers)
3、 动作(Action)
示警媒体:指的是 zabbix 采用何种方式进行报警,目前 Zabbix 支持的示警媒体包括邮件、Jabber、短信。jabber是linux下一种即时通讯工具。
触发器:指的是当监控对象达到某个条件或条件集合的时候,触发 Zabbix 产生事件。
动作:指的是 Zabbix 产生对应事件后,它通过示警媒体发送报警。接下来,我们配置一个邮件报警功能的范例。效果是当redis端口挂掉则触发报警,管理员将会收到一封 Zabbix 发出的报警邮件。

示警媒体的配置:

 首先需要配置 Zabbix 的邮件功能。点击 管理->报警媒介类型->创建媒体类型

1.然后在页面中填入你的报警媒介类型信息,例如下图所示:

注:脚本名称任意,存放于/usr/lib/zabbix/alertscripts (生产上的测试服放这:/usr/local/zabbix/share/zabbix/alertscripts)
名称:sendmail                   //名称任意
类型:脚本
脚本名称:sendmail.sh
脚本参数:                          //一定要写,否则可能发送不成功{ALERT.SENDTO}              //照填,收件人变量{ALERT.SUBJECT}             //照填,邮件主题变量,变量值来源于‘动作’中的‘默认接收人’{ALERT.MESSAGE}           //照填,邮件正文变量,变量值来源于‘动作’中的‘默认信息’配置完成后,不要忘记点击存档,保存你的配置。


2.修改zabbix服务端配置文件&编写脚本:指定脚本的存储路径:

[root@zabbix-server ~]# vim /etc/zabbix/zabbix_server.conf

 AlertScriptsPath=/usr/lib/zabbix/alertscripts

编写邮件脚本:

[root@zabbix-server ~]# cd /usr/lib/zabbix/alertscripts/
[root@zabbix-server alertscripts]# vim sendmail.sh
#!/bin/sh
#export.UTF-8
echo "$3" | sed s/'\r'//g | mailx -s "$2" $1
$1:接受者的邮箱地址:sendto
$2:邮件的主题:subject
$3:邮件内容:message

修改权限:

[root@zabbix-server alertscripts]# chmod u+x sendmail.sh && chown zabbix.zabbix sendmail.sh

修改admin用户的报警媒介:


用户默认是没有设置报警媒介的,设置后就可以接收报警消息了。

接下来,设置接受报警用户的电子邮件

点击:管理->报警媒介类型->Admin->报警媒介->添加


触发器的配置:

 接下来,点击配置->主机->none1->触发器->创建触发器
我们给 none1 这台主机增加一个触发器。点击 none1 这一行中的“触发器”,然后再点击创建触发器。

如下:

名称:填入触发器的名字
表达式:用于配置触发器的触发条件,点击添加按钮有条件选项。  ----键值


再点击项目右侧的选择,选择我们之前配置过的监控项“redis status”,并设置触发的阀值
Zabbix 会自动生成表达式。接下来根据情况选择事件的严重性。配置完毕后,点击存档保存。


动作的配置:
点击:配置->动作->事件源下拉菜单中选择触发器->创建动作

名称:
redis-port

默认信息:邮件的主题
主机: {HOST.NAME1}
时间: {EVENT.DATE} {EVENT.TIME}
级别: {TRIGGER.SEVERITY}
触发: {TRIGGER.NAME}
详情: {ITEM.NAME1}:{ITEM.KEY1}:{ITEM.VALUE1}
状态: {TRIGGER.STATUS}
项目:{TRIGGER.KEY1}
事件ID:{EVENT.ID}

恢复邮件:

恢复主题:服务器:【{HOSTNAME1}】故障已恢复。故障原因:{TRIGGER.NAME} 恢复信息:恢复邮件的正文。当故障恢复正常后也发邮件通知一下


点击:操作->编辑:


发送间隔:60秒,步骤:发送10次发送到:admin用户,仅使用:邮件报警方式发送

需要特别解释一下的是“步骤”部分的配置。所谓步骤是指报警可以有多个步骤,做不同的报警。例如,自从 1 到 3,就是指报警的步骤有三个。步骤持续时间就是一定时间后如果监控人员仍未响应报警就进入下一个报警步骤。
例如,发邮件给你报警,如果60 秒后你没响应,那就发 jabber 信息提醒你。如果 60 秒后还没响应,那就发短信给你。要是还没响应,就没有然后了。你可以形象的把它理解为 Zabbix 的一哭二闹三上吊。
到此,一个邮件报警功能就配置完毕了。如果你想立即看到结果,可以修改触发器的条件,将redis的服务停止掉。你马上就会收到 Zabbix 发来的报警邮件了


微信报警

配置监控页面,在none1的机器上面安装nginx服务,通过监控80端口获得微信报警:

[root@zabbix-agent-none1 ~]# yum install -y nginx
[root@zabbix-agent-none1 ~]# systemctl start nginx

开始配置zabibx页面:

配置监控项用于监控web服务

回到监控端的web界面配置监控项

点击配置–>主机–>none1–>监控项–>创建监控项


接下来我们要把键值中的host改成被监控端主机IP,path改成我们要监控的网站index.html,port改成端口号80,

修改成服务器的具体信息


创建触发器,配置–>主机—>none1—>触发器—>创建触发器



修改N的值,使他产生报警,这个地方需要等待一段时间


开始部署微信

企业微信
1.下载企业微信
2.创建企业
3.创建企业应用

登录电脑版企业微信

注册企业微信:


点击进入管理后台


将上面的4个值复制下来一会要用到
部门ID:1
企业ID:ww71d562e7070abb71
AgentID:1000002
Secret:2LirWuqIEyqpEBS7cZpwXZLMRZAJB4E1CK9rWYgyeuM

上面好了之后可以配置监控脚本了

python监控脚本:

有4个地方需要修改,找到他们修改成之前获取的信息

self.__corpid = '公司的corpid'
self.__secret = '应用的secret'
'toparty':2, //部门id
'agentid':"1000002", //应用id
[root@zabbix-server ~]# cd /usr/lib/zabbix/alertscripts/
[root@zabbix-server alertscripts]# vim wechat.py
[root@zabbix-server alertscripts]# cat wechat.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-import urllib,urllib2,json
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )class WeChat(object):__token_id = ''# init attributedef __init__(self,url):self.__url = url.rstrip('/')self.__corpid = 'ww71d562e7070abb71'   ------需要修改成你自己的self.__secret = '2LirWuqIEyqpEBS7cZpwXZLMRZAJB4E1CK9rWYgyeuM'   -----需要修改成你自己的# Get TokenIDdef authID(self):params = {'corpid':self.__corpid, 'corpsecret':self.__secret}data = urllib.urlencode(params)content = self.getToken(data)try:self.__token_id = content['access_token']# print content['access_token']except KeyError:raise KeyError# Establish a connectiondef getToken(self,data,url_prefix='/'):url = self.__url + url_prefix + 'gettoken?'try:response = urllib2.Request(url + data)except KeyError:raise KeyErrorresult = urllib2.urlopen(response)content = json.loads(result.read())return content# Get sendmessage urldef postData(self,data,url_prefix='/'):url = self.__url + url_prefix + 'message/send?access_token=%s' % self.__token_idrequest = urllib2.Request(url,data)try:result = urllib2.urlopen(request)except urllib2.HTTPError as e:if hasattr(e,'reason'):print 'reason',e.reasonelif hasattr(e,'code'):print 'code',e.codereturn 0else:content = json.loads(result.read())result.close()return content# send messagedef sendMessage(self,touser,message):self.authID()data = json.dumps({'touser':touser,'toparty':2,    --------需要修改成你自己的'msgtype':"text",'agentid':"1000002",   -------需要修改成你自己的'text':{'content':message},'safe':"0"},ensure_ascii=False)response = self.postData(data)print responseif __name__ == '__main__':a = WeChat('https://qyapi.weixin.qq.com/cgi-bin')a.sendMessage(sys.argv[1],sys.argv[3]) [root@zabbix-server alertscripts]# chown zabbix.zabbix wechat.py
[root@zabbix-server alertscripts]# chmod 777 wechat.py
测试:如果正常会收到如下信息:                        添加的用户  标题 内容
[root@zabbix-server alertscripts]# ./wechat.py wangxiaoxuan test test {u'invaliduser': u'', u'errcode': 0, u'errmsg': u'ok'}
{u'invalidparty': u'2', u'invaliduser': u'', u'errcode': 0, u'errmsg': u'ok'}

在zabbix-server的Dashboard(仪表盘)里进行一系列的操作

创建报警媒介,在媒介里选择脚本,参数{ALERT.SENDTO}{ALERT.SUBJECT}{ALERT.MESSAGE}

点击管理—>报警媒介类型–>创建报警媒介类型


点击管理—>用户—>admin—报警媒介



点击配置–>动作—>事件源选择触发器–>创建动作

报警信息
主机: {HOST.NAME1}
时间: {EVENT.DATE} {EVENT.TIME}
级别: {TRIGGER.SEVERITY}
触发: {TRIGGER.NAME}
详情: {ITEM.NAME1}:{ITEM.KEY1}:{ITEM.VALUE1}
状态: {TRIGGER.STATUS}
项目:{TRIGGER.KEY1}
事件ID:{EVENT.ID}


以上部署完毕后,修改我们触发器的N值,让他产生报警,是我们的企业微信收到报警,收到的报警如图:


登录zabbix页面查看:


微信报警完成

Zabbix后续,邮件+企业微信监控相关推荐

  1. linux上配置zabbix并设置企业微信,机器人以及自主告警

    linux上配置zabbix并设置企业微信,机器人以及自主告警 配置lamp 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 linux上配置zabbix并设置企业微信,机 ...

  2. 企业微信监控服务器数据接入,如何在alertmanager报警中添加企业微信监控报警

    如何在alertmanager报警中添加企业微信监控报警 发布时间:2020-06-17 15:19:06 来源:亿速云 阅读:535 作者:元一 栏目:云计算 Prometheus机器:172.27 ...

  3. zabbix配置邮件和微信部署

    在所要监控的主机上进行配置 zabbix_agent2配置文件如下 [root@node1 ~]# vim /etc/zabbix/zabbix_agent2.conf 任意为其添加一个自定义监控项- ...

  4. 使用 Prometheus 实现邮件/企业微信告警

    一.安装 AlterManager 如果没有安装 Prometheus 以及监控客户端的话,可以看博主前面的文章:Prometheus(普罗米修斯)监控系统 [root@k8s-master01 ~] ...

  5. prometheus+grafana监控以及企业微信告警

    prometheus+grafana监控以及企业微信告警(单机二进制部署) 一.下载部署包,更改其中两个包名称,放到/data下 1.安装包以及解压步骤 grafana-enterprise-8.4. ...

  6. zabbix 配置企业微信告警群机器人告警

    一.企业微信端配置 1.创建微信群机器人 在需要接收告警信息的企业微信群上右键(注意群里成员至少要3人以上),选择"添加群机器人",设置机器人名称,系统自动生成此机器人的webho ...

  7. 企业微信群机器人是什么?企微机器人如何自动发消息?

    经常有很多用户会问我们,企业微信群机器人是什么,有什么用,有什么限制?企业微信群机器人提供的是一个webhook消息,如何可以通过这个来自动发消息呢?之前写过一些关于企业微信群机器人如何发消息的教程, ...

  8. 如果企业微信不用了怎么解绑手机?

    当员工离职或是企业要更换移动办公软件时,希望能够解绑企业微信的手机号,那么该如何操作呢? 前言 虽然市面上有很多移动办公软件,但自从腾讯推出企业微信这款移动办公软件后,不少用户被它专有的客户运营功能所 ...

  9. 企业微信如何设置个性化欢迎语?

    我们需要企业微信添加客户好友的时候,能显示个性化的欢迎语,这样更有针对性,那么如何设置呢? 为什么需要个性化欢迎语? 现在越来越多的企业都通过企业微信联系客户,管理水平较高的企业,期待添加客户的时候, ...

最新文章

  1. FPGA(4)晶振与计数器 -- 实现定时器(led定时闪烁、蜂鸣器频率控制(单响)、蜂鸣器报警(频带控制,多响))
  2. WIN10运行软件,窗口不显示(移动到屏幕外无法复原)的解决办法 Label:Win10解决方案
  3. 利用API实现窗体淡入淡出特效
  4. 【GAN优化】长文综述解读如何定量评价生成对抗网络(GAN)
  5. CodeForces - 1252D Find String in a Grid(AC自动机)
  6. 低功耗/远距离lora模块:物联网智能家居、抄表多领域应用SX1262芯片方案
  7. oracle之set运算符和练习
  8. ios App开发的基本流程
  9. 分布式红锁的waitTime的设计原理
  10. VB6各类源码开源 - 开源研究系列文章
  11. python 中文乱码问题深入分析
  12. WindRiver WorkBench创建、编译vxWorks APP工程
  13. python修改pdf内容_python3.6调整字体Python处理pdf文件库 - PyPDF2详解
  14. commemorate 浩子's last day
  15. 【计算机毕业设计】295演唱会购票系统的设计与实现
  16. 给新程序员的10条建议
  17. 游戏浅谈1-传奇,跑跑卡丁车
  18. 我们用ESP32-Wrover-Kit做自平衡小车犯过的坑
  19. CSDN的Markdown编辑器中等比例缩放图片的方法
  20. 肯德基门店 csv

热门文章

  1. CCG合约交易:2022 年第三季度最值得关注的 NFT 项目
  2. 死磕数据库系列(二十):MySQL 数据库 DDL、DML、DQL、DCL 语言理论与实践(sql 8.0 版)...
  3. 习题 8.2 输入3个字符串,按由小到大的顺序输出。(指针法)
  4. 写给40岁的女人:现在的你,成熟、端庄、优雅,刚刚好
  5. 基于PID的树莓派控制二自由度舵机人脸追踪云台设计
  6. 苹果企业开发者账号申请步骤
  7. HTML5新特性 day_05(8.11)上传头像、webSocket
  8. 自动化测试工具该怎样选择?
  9. 路由器的基本工作原理概述
  10. 通过JS生成蜂巢背景图(六边形背景图)