【Zabbix】中小型企业Zabbix监控实战之告警大全

转载声明:本文转载自「数睿技术」

前言

本篇文章介绍目前常用的告警方式,以及对功能实现做讲解。本篇文章中出现的代码片段可以回复"监控脚本"获取完整代码。

** **0x01 E-Mail****

邮件告警方式

邮件告警方式是Zabbix最常见的告警方式,是每个初学者必须掌握的告警方式。在这,笔者分享邮件告警方式花样玩法——附带数据图

▲ 效果展示图

image

▲ 功能实现思路

zabbix告警传入item.ky参数,利用item.key获取当前的性能图 。最后构建邮件文本内容加入性能图片。

▲ 性能图

通过分析性能图有以下发现:

<pre style="margin: 0px; padding: 0px; border-radius: 8px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; max-width: 100%; box-sizing: border-box !important; word-wrap: break-word !important;">

http://127.0.0.1/zabbix/chart.php?period=864000&
stime=20180317191110&itemids%5B0%5D=25464& \
type=0&updateProfile=1&profileIdx=web.item.graph&
profileIdx2=25464&width=1778&sid=37a0a2403c5192c8&
screenid=&curtime=1490613155473

period # zabbix数据时间范围
stime # 开始时间
itemids[0] # item.key
type # 图表类型
profiledx # 项类型
width # 图表宽度
sid # 用户sid

</pre>

必须的参数有:

<pre style="margin: 0px; padding: 0px; border-radius: 8px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; max-width: 100%; box-sizing: border-box !important; word-wrap: break-word !important;">

"period" : "3600" # 一小时内的性能图
"itemids[0]" : itemID # item的id
"type" : "0" # 图表类型
"profileIdx" : "web.item.graph" # 项
"width" : "700" # 宽度

</pre>

仔细观察这些参数,发现变化的只有item id 其他都是可以不变的,而item.ky是在告警的时候可以直接传入的。

▲ Actions

告警动作里的配置:

<pre style="margin: 0px; padding: 0px; border-radius: 8px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; max-width: 100%; box-sizing: border-box !important; word-wrap: break-word !important;">

HOST.HOST1:{HOST.HOST1}|HOST.IP1:{HOST.IP1}|EVENT.DATE:{EVENT.DATE}|
EVENT.TIME:{EVENT.TIME}|TRIGGER.SEVERITY:{TRIGGER.SEVERITY}|
TRIGGER.NAME:{TRIGGER.NAME}|ITEM.KEY1:{ITEM.KEY1}|ITEM.NAME1:{ITEM.NAME1}|
ITEM.VALUE1:{ITEM.VALUE1}|ITEM.ID:{ITEM.ID}|TRIGGER.STATUS:{TRIGGER.STATUS}

</pre>

▲ 指定item.key获取性能图功能实现

代码片段展示

<pre style="margin: 0px; padding: 0px; border-radius: 8px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; max-width: 100%; box-sizing: border-box !important; word-wrap: break-word !important;">

import requests
myRequests = requests.Session()
def GetGraph(itemID,pName=None):

try:
"""
获取性能图,首先需要登录
通过分析,可以直接Post/Get方式登录
"""
loginUrl = "http://%s/zabbix/index.php" % HOST
loginHeaders={
"Host":HOST,
"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8",
}

   # 构建登录所需的信息
   playLoad = {            
   "name":USER,            
   "password":PASSWD,            
   "autologin":"1",            
   "enter":"Sign in",
   }

   # 请求登录 
   res = myRequests.post(loginUrl,headers=loginHeaders,data=playLoad)
   """
   登入状态后,在POST数据中加入itemid
   """
   testUrl = "http://%s/zabbix/chart.php" % HOST
   testUrlplayLoad = {            
       "period" :"3600",            
       "itemids[0]" : itemID,            
       "type" : "0",            
       "profileIdx" : "web.item.graph",            
       "width" : "700",
   }
   testGraph = myRequests.get(url=testUrl,params=testUrlplayLoad)

   # 返回图片源码,直接保存到本地
   IMAGEPATH = os.path.join('/tmp', pName)
   f = open(IMAGEPATH,'wb')
   f.write(testGraph.content)
   f.close()        
   return pName    

except Exception as e:
print e
return False

finally:
myRequests.close()

</pre>

****0x02 Phone Call****

电话告警方式

现在有许多语音通知接口厂商,所以想要实现电话告警,骚一贼!(so easy)。很多小伙伴没有部署有几个原因:

Q : 增加成本/费用

A : 有这个想法,首先你得先了解接口厂商收费标准。正常请求没有接听是不需要收费的,也就是说:收到电话时掐掉电话是不需要收费的。

笔者接口厂商十块钱余额用了一年,这十块钱还是新用户注册送的...hahahaha. 这种做法显然对厂商十分不利,但是我有不接听的理由:1) 政策限制,由于政策限制,现在无法长语音转文本,通常是很有限字数,给的信息十分有限。2) 转换慢, 我们请求的时候是需要先把文本转换成语音,接着再拨打电话将这段语音推送出去的。现在文本转语音已经有限制,需要审核通过才能发送。即使有厂商不用审核,这转换过程也是非常慢的。 3) 收到响声就已经处于备战状态。当你收到这个电话号码打来时,意味着你已经拿起手机,知道有故障。那这个时候,你完全可以看邮件/微信上面显示的告警内容。

Q : 大半夜收到电话

A : 电话告警只限最紧急的故障,平常一些普通级别的告警不建议使用电话通知方式,频繁收到紧急严重的故障问题,那你考虑的不应该是告警了,而是这套系统本身。故障是客观存在的,遇到故障一味更改告警阈值或告警方式,却忽略最根本的问题,有问题在,才会有告警,不解决问题,这告警一直在。再者就是一个对工作态度的问题了。

▲ 功能实现思路

根据严重级别分类触发电话告警脚本,回复"监控脚本"获取脚本。

****0x03 SMS****

短信告警方式

短信告警同样采用接口厂商提供的API接口,收取费用标准一般是3-5分钱/次。适用于中等到严重级别的告警。

▲ 功能实现思路

根据严重级别分类触发短信告警脚本,回复"监控脚本"获取脚本。

▲ 效果展示图

image

****0x04 Wechat****

微信公众号告警方式

微信告警方式也作为常用的告警方式,需要申请微信公众号。

▲ 功能实现思路:

根据严重级别分类触发微信告警脚本,回复"监控脚本"获取脚本。

▲ 效果展示图

image

** **0x05 Other****

其他告警方式

一些其他的有趣告警,例如:QQ 、微信号、RTX、钉钉等告警方式都需要通过自己写脚本去请求接口完成,这里不做演示。QQ/微信都是通过分析网页版去模拟请求,RTX与钉钉有自己的接口。

▲ Github上相关的项目

<pre style="margin: 0px; padding: 0px; border-radius: 8px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; max-width: 100%; box-sizing: border-box !important; word-wrap: break-word !important;">

QQ https://github.com/pandolia/qqbot
Wechat https://github.com/liuwons/wxBot
RTX https://github.com/rainfiel/rtx
...

</pre>

▲ 效果展示图

RTX

image

总结

………………………………

各种告警方式对比:

image

文中如若出现错误,欢迎各位指出。

若有更好的解决方案,也非常期待能够与您交流!

image
image

*声明:推送内容及图片来源于网络,部分内容会有所改动,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

image
image

广告时间

image

“北京神州光大”需求大量IT运维人才,学员实训合格后即可直接在本公司或伙伴公司直接入职。实习期即可赚取高薪。

提示

”神州光大为零基础或想提示技术的童鞋打造了一款全岗化运维培训课程!“运维实训”火爆来袭!只要你想学习,任何人轻松入行!轻松赚取高薪

运维工程实训营火热来袭!,IT运维技术干货,行业发展,前景动态等等。

实训营培养详情

课程内容

一、计算机及网络基础:

  1. 硬件基础、虚拟机的使用、操作系统的安全部署、综合布线;

  2. 网络基础介绍 OSI开放系统结构模型 TCP/IP协议 IP地址等。

二、操作系统

  1. windows2012 :基本管理

             用户管理   磁盘管理   服务器管理    
    

2.linux:Linux基本命令

VI编辑器   文件系统    权限管理

三、数据库

1.mySQL :SQL语句 用户权限管理 数据导入导出 数据备份还原

2.oracle :SQL语句 用户权限管理

数据导入导出 数据备份还原

四、监控

1. Nagios/Cacti/Awstats MRTG|Nload 日志管理/Iptables

五、虚拟化

1. 虚拟化技术基础 VMwareVsphere

(基于虚拟化的服务器集群)      VMware ESXi  
image
image
image
image

<< 滑动查看下一张图片 >>

报名方式

可直接拨打电话:0411-84820956

也可添加微信:17615127147了解详情

适宜人群

1、没有任何经验,并且希望从事网络工程行业的人群;

2、应往届毕业生、实习生;

3、工作遇到瓶颈期的在职人员。

4、学软件开发或运维课程吃力的童鞋。

实训营将会开发本公司设备中心供大家学习,座位有限,先报先得。

网络运维工程训练营课程由行业大牛亲自分享、授课,神州光大技术大牛手把手教你从零开始学习网络工程,进阶IT行业!

▼名额有限,火速抢报

给想改变的你一个尝试的机会

机会永远都是留给有准备的人!

神行实训

让实训变成工作

长按扫码关注我们

image
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,504评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,434评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,089评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,378评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,472评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,506评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,519评论 3 413
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,292评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,738评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,022评论 2 329
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,194评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,873评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,536评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,162评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,413评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,075评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,080评论 2 352

推荐阅读更多精彩内容