Zabbix后续,邮件+企业微信监控

news/2024/11/28 7:31:42/

本文是上一篇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页面查看:

在这里插入图片描述
微信报警完成


http://www.ppmy.cn/news/249795.html

相关文章

腾创秒会达视频会议产品简介

系统支持B/S 、C/S架构&#xff0c;实现多终端设备接入。 开放直播网页部分代码&#xff0c;可进行直播界面/UI自定义和二次功能开发。 音视频多方互动数据共享等核心功能&#xff1a; 一个会议室只有一个固定主持人&#xff0c;参会者可以临时申请主持&#xff0c;在作为临时主…

[论文阅读](图像/视频质量评价系列)

文章目录 [2021] (QoMEX) Image Super-Resolution Quality Assessment:Structural Fidelity Versus Statistical Naturalness摘要引言2D QUALITY ASSESSMENT OF SISR IMAGESFUSING 2D ASSESSMENT FOR 1D PREDICTION结论 [2022] ERQA: Edge-Restoration Quality Assessment for …

Prometheus+SpringBoot应用监控全过程详解

1. Prometheus是什么 Prometheus是一个具有活跃生态系统的开源系统监控和告警工具包。一言以蔽之&#xff0c;它是一套开源监控解决方案。 Prometheus主要特性&#xff1a; 多维数据模型&#xff0c;其中包含由指标名称和键/值对标识的时间序列数据PromQL&#xff0c;一种灵…

基于MATLAB BP神经网络的数字图像识别

【摘要】 随着现代社会的发展&#xff0c;信息的形式和数量正在迅猛增长。其中很大一部分是图像&#xff0c;图像可以把事物生动的呈现在我们面前&#xff0c;让我们更直观地接受信息。同时&#xff0c;计算机已经作为一种人们普遍使用的工具为人们的生产生活服务。如今我们也可…

基于Flask制作一个简易版桌面监控软件

/* 最近在B站上刷到一个视频&#xff0c;讲的是up主自己在上网课时和父母老师斗智斗勇&#xff0c;一边上课&#xff0c;一遍玩电脑游戏。我突然就感觉对于某些家长来说&#xff0c;监控电脑也许是个硬需求。市面上已经有诸如向日葵等远程监控&#xff0c;可以实现手机查看电脑…

基于神经网络的智能诊断,基于神经网络的控制

机电系统智能控制的毕业论文可以写哪些部分&#xff1f; 基于联合仿真的机电液一体化系统优化设计方法研究&#xff0c;我的题目。并联机器人系统的仿真优化在搭建的仿真优化平台上对并联机器人进行联合仿真和集成优化研究。 通过仿真优化验证了机电液一体化系统近似模型和优…

腾创秒会达Webrtc视频语音系统,支持BS,CS架构操作灵活简单,免费测试满意再谈购买

1.1视频会议系统主界面 下图是两种会议模式下系统的主界面&#xff0c;上方四大功能显示区&#xff1a;电子白板、屏幕共享、手写展台和多媒体区&#xff1b;左侧栏是系统工具栏&#xff0c;包括了各种大大小小的功能和系统设置。两种模式下&#xff0c;白板模式&#xff1a;即…

神经网络burgers方程讲解,神经网络不收敛的表现

1、为什么Matlab训练神经网络用不了GPU 可以用gpu加速训练&#xff0c;可以通过增加useGPU字段:train(net,P,T,useGPU,yes);或先将数据集P,T通过函数PgpugpuArray(P);TgpugpuArray(T);转移到gpu内存中&#xff0c;再调用训练函数train(net,Pgpu,Tgpu)但是需要注意以下几点&…