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

Posted 数睿技术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zabbix中小型企业Zabbix监控实战之告警大全相关的知识,希望对你有一定的参考价值。



 前言 

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



   0x01 E-Mail 

邮件告警方式


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


▲ 效果展示图


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



▲ 功能实现思路


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



▲ 性能图


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


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


 必须的参数有:

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


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


▲ Actions


告警动作里的配置:

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}



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


代码片段展示

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()




 0x02 Phone Call 



Q : 增加成本/费用




▲ 功能实现思路


   



 0x03 SMS 

短信告警方式


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


▲ 功能实现思路


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


▲ 效果展示图

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




 0x04 Wechat 



▲ 功能实现思路:


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


▲ 效果展示图


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





 0x05 Other

其他告警方式



▲ Github上相关的项目

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


▲ 效果展示图


RTX


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




 总结 

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


各种告警方式对比:

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

 


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

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


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

「获取源码」

 回复 '监控脚本' 


▲ 获取站点监控微信告警源码                                                     

▲ 更多监控姿势,请关注后续《中小型企业Zabbix监控实战


數字科技 用網路改變生活 


以上是关于Zabbix中小型企业Zabbix监控实战之告警大全的主要内容,如果未能解决你的问题,请参考以下文章

Zabbix中小型企业Zabbix监控实战之开发篇

中小企业Zabbix监控生产案例实践

四行shell脚本实现zabbix_server的高可用

“zabbix+企业微信”打造运维监控告警新模式

CMDB机柜平台结合zabbix告警展示

zabbix监控WEB页面及告警 实战