Code Monkey home page Code Monkey logo

zabbix-alert's Introduction

Zabbix告警脚本

支持简单压缩合并

架构图

增加Media Type

  • type: script
  • script name: zabbix-alert/reduce.py
  • script parameters: {ALERT.SENDTO}, {ALERT.SUBJECT}, {ALERT.MESSAGE}

配置动作

默认信息

{'date':'{DATE}', 'time':'{TIME}', 'itemid':'{ITEM.ID}', 'actionid':'{ACTION.ID}', 'downdate':'{EVENT.DATE}', 'downtime':'{EVENT.TIME}', 'age':'{EVENT.AGE}', 'ip':'{HOST.CONN1}', 'triggerid':'{TRIGGER.ID}', 'name':'{TRIGGER.NAME}', 'status':'{TRIGGER.STATUS}', 'severity':'{TRIGGER.SEVERITY}', 'url':'{TRIGGER.URL}', 'itemname':'{ITEM.NAME1}', 'itemname2':'{ITEM.NAME2}', 'hostname':'{HOST.HOST1}', 'itemkey':'{ITEM.KEY1}', 'itemkey2':'{ITEM.KEY2}','itemvalue':'{ITEM.VALUE1}', 'itemvalue2':'{ITEM.VALUE2}', 'eventid':'{EVENT.ID}','hostgroup':'{TRIGGER.HOSTGROUP.NAME}'}

恢复信息

{'date':'{DATE}', 'time':'{TIME}', 'itemid':'{ITEM.ID}', 'actionid':'{ACTION.ID}', 'downdate':'{EVENT.DATE}', 'downtime':'{EVENT.TIME}', 'age':'{EVENT.AGE}', 'ip':'{HOST.CONN1}', 'triggerid':'{TRIGGER.ID}', 'name':'{TRIGGER.NAME}', 'status':'{TRIGGER.STATUS}', 'severity':'{TRIGGER.SEVERITY}', 'url':'{TRIGGER.URL}', 'itemname':'{ITEM.NAME1}', 'itemname2':'{ITEM.NAME2}', 'hostname':'{HOST.HOST1}', 'itemkey':'{ITEM.KEY1}', 'itemkey2':'{ITEM.KEY2}','itemvalue':'{ITEM.VALUE1}', 'itemvalue2':'{ITEM.VALUE2}', 'eventid':'{EVENT.ID}','hostgroup':'{TRIGGER.HOSTGROUP.NAME}','update':'{EVENT.RECOVERY.DATE}', 'uptime':'{EVENT.RECOVERY.TIME}'}

kapacitor报警使用此脚本

参考tools/k2zabbix.py

HTTP MAIL

使用 https://github.com/iambocai/mailer 在多台机器上搭建并使用Nginx做负载均衡,避免单台机器发送频率过快被对方服务器限制。

如使用本地smtp,建议使用postfix搭建。sendmail会出现 unencrypted connection 错误。原因尚未调查。

合并效果预览

报警统计

报警数据push到InfluxDB,用Grafana可以展示报警数据,例如小时报警量,天报警量,周报警量,报警接收人排行,报警类型排行等等

自定义阈值

由cmdb提供阈值查询接口,根据阈值决定是否发送报警,未达到阈值的,用zabbix ack接口将event设置为ack状态

附录

报警联系人查询接口(cmdbApi)基于iTop实现,链接:https://github.com/annProg/cmdbApi

zabbix-alert's People

Contributors

annprog avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

zabbix-alert's Issues

支持自定义阈值

iTop上定义一个类,让用户新建报警规则,zabbix-alert收到报警后,首先判断该对象有无报警规则(为减少对iTop的依赖,当iTop访问失败时,仍要继续按默认行为发送报警),如果该对象有报警规则,则检查报警value是否达到用户设置的阈值,未达到阈值,则取消报警发送,并使用 alert-ack接口将相关报警设置为已知悉,反之正常发送即可。

这种方式的问题是,用户只能增大阈值不能减小阈值。。。

新增压缩策略

多种压缩策略,比如

  • 同一个联系人的合并
  • 同一台机器的合并(目前仅有同一类型的不同机器报警合并)

监控即服务(云监控)

用户自配置阈值监控系统,类似阿里云的云监控。

考虑tickstack来实现,提供给用户一个表单来定义阈值及报警级别(不同级别用不同的发送方式),根据表单来生成含有where条件的tickscript脚本(实现只对用户配置机器生效)

为了减少tickscript配置量,应该不允许对单台机器定义阈值,即使只有一台,也应该挂在某个模板下面

也可以考虑给zabbix template开发一个前端

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.