文档章节

监控报警系统搭建及二次开发经验

luoxiaojun1992
 luoxiaojun1992
发布于 2016/12/11 22:59
字数 1221
阅读 1132
收藏 45
点赞 3
评论 1

本次分享的内容是监控报警系统搭建,以及基于开源组件的二次开发。自从接受了公司监控报警系统二期开发需求以来,我们完成了监控数据的补全完善、报警系统搭建调试和报警规则配置界面的开发。下图是监控报警系统的架构图,除了业务数据收集器外,其余全部基于原生开源组件或二次开发完成,整个系统采用TICK(telegraf + influxdb + chronograf + kapacitor)架构,使用go语言实现。

输入图片说明

  • influxdb时间序列数据库

influxdb数据库是一个时间序列数据库,他会为每行数据打上时间戳,即使数据被并发写入,也会按照时间先后顺序存储。同时它也是一个关系型数据库,可以通过sql语言进行增删改查,学习成本低。官方提供了一个简单实用的web界面,非常地人性化。在工程实践中,我们发现了它的一个坑,在大数据量查询时会crash,重启后才能恢复,这个问题仍待研究。不必担心的是,因为监控系统中不存在特别大数据量的查询,生产环境下influxdb的性能表现十分良好。

  • telegraf数据收集器

telegraf是一个数据收集器,负责收集所有的原始数据,格式化后存入influxdb。telegraf内置了大量的数据输入、输出和分析插件,能够收集php-fpm、nginx、access log、mysql、redis等组件的监控数据。telegraf的扩展性很强,开源社区也十分活跃,来自世界各地的开发者们会源源不断地贡献新的插件。我们基于它的插件架构开发了redis queue input plugin和access log parser plugin,用于收集和分析Laravel框架队列和access log数据。

  • collector业务数据收集器

collector是整个系统中唯一自研的组件。由于业务监控数据查询规则复杂多变,我们开发了这个组件,用于从MySQL中查询业务数据,支持配置sql语句、收集频率、时间延迟等,并且按照influxdb的格式发送给telegraf数据收集器。

  • kapacitor报警器

kapacitor是一个可以按照预先编写好的规则,实时地订阅influxdb数据或者批量查询数据,并进行报警(邮件、短信、日志、exec等方式)的工具。官方为它设计了一个tickscript语言,可以方便地编写规则脚本。我们的主要工作是tickscript的学习调试、报警规则的设计、报警周期(every字段)的调整和数据窗口(period字段)的调整。我们将报警脚本的修改重启、报警脚本运行状态的查询和influxdb数据订阅状态的查询等命令编写成了shell脚本,便于后期维护和自动化。

  • grafana数据可视化界面

输入图片说明

grafana是一个数据可视化的组件,类似著名ELK架构中的kibana组件,支持多种数据源(influxdb、zabbix、elasticsearch等),还有很多插件可供安装,在最新版本中加入了简单的alert、电视模式等新功能。特别需要分享的是某些监控数据是随时间不断累加的,在展示时要应用聚合函数(difference、max、min等)进行处理。同时还可以为单个图表配置超链接,增强交互性和可用性。还有很多有趣的功能,留待大家研究发现。

  • chronograf可视化界面

输入图片说明

chronograf是influxdata官方提供的一个数据可视化组件,可视化功能不如grafana强大,亮点是附带了kapacitor组件的web界面,可以方便地配置报警规则,自动生成并启用tickscript,还可以查询报警历史。我们对它进行了修改,美化了报警邮件的模板,增加了报警周期(every字段)和报警时间段的配置,让邮件内容更加友好,并且可以自由调整报警周期。

综上,我们在TICK开源架构上,结合我们自身业务特点和需求,研发了一整套包含数据采集格式化、可视化监控、自动化报警功能的监控报警系统,今后还将不断调整优化,更好地为公司业务发展和技术研发团队服务。

© 著作权归作者所有

共有 人打赏支持
luoxiaojun1992
粉丝 9
博文 12
码字总数 7835
作品 0
后端工程师
加载中

评论(1)

京东MySQL监控之Zabbix优化、自动化

随着京东业务的飞速发展, MySQL数据库的使用更加普及、服务器量级飞速增长,这对京东MySQL DBA团队的要求也越来越高。监控系统为数据库管理和维护提供了精确的数据依据,是数据库运维人员的...

lover007 ⋅ 2016/08/02 ⋅ 0

谈谈高可用系统的运维设施建设

最近和一些朋友做了一些线下的沟通,大家都是互联网技术同行, 自然会谈一下各自工作中遇到的一些问题。聊完后我有一个感受,就是大家在各自业务中实施高可用过程中,踩了一些坑,然后再反过...

⋅ 01/05 ⋅ 0

七年磨一剑:如何像MIUI一样做Zabbix二次开发?

本文根据DBAplus社群第132期线上分享整理而成。 主题大纲: 1、为什么选择Zabbix? 2、Zabbix二次开发有什么意义? 3、我们是怎么做的? 4、我们还利用Zabbix解决了什么问题? 5、我们将来要...

丁振兴 ⋅ 01/11 ⋅ 0

组态软件在电动汽车充电站监控系统中的应用

一、概述 电动汽车充电站是电动汽车使用过程的一个支撑部分,也是电动汽车商业化、产业化过程中的重要环节。充电站工作的性能直接影响动力电池的使用寿命和安全性,建立一套充电站监控系统,...

yidongkaifa ⋅ 2015/08/31 ⋅ 0

四维一体组态软件

QTouch2.2通用版软件集成了:设备通信、图形显示、数据转换、逻辑处理等功能,提供二次开发的自动化软件。其功能强大,协议丰富,简单易用。 该产品主要应用在开关站后台监控系统、智能变电站...

gao_sitc ⋅ 2017/02/03 ⋅ 0

linux监控平台搭建-监控项

本人运维某生态互联网监控平台服务。过程中遇见了很多问题。目前互联网有很多的开源监控工具:nagios、zabbix、falcon、cacti...各有优点。这里不讲解监控工具的优缺点。写一些新搭建监控平台...

donkey910614 ⋅ 2017/02/25 ⋅ 0

开源还是商用?十大云运维监控工具横评

随着云计算和互联网的高速发展,大量应用需要横跨不同网络终端,并广泛接入第三方服务(如支付、登录、导航等),IT系统架构越来越复杂。快速迭代的产品需求和良好的用户体验,需要IT运维管理者...

oschina ⋅ 2015/10/29 ⋅ 14

如何测试MTOP系统配置的邮箱是否正常启用?

我在Linux环境下搭建了一套MTOP监控系统,系统已经正常运行,报警邮箱也按要求配置完成,但是由于系统初期并没有高并发或者慢查询等问题,所以一直没法知道配置的报警邮箱是否可用,MTOP系统...

匀云 ⋅ 2016/05/16 ⋅ 1

zabbix简单了解安装

一、概述 1、zabbix简介: zabbix(音同zbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。整合了cacti和nagios的特性能监视各种网络参数,保证服务器系...

攻城狮赵峰 ⋅ 2017/06/14 ⋅ 0

IDC 监控技术介绍

IDC 监控技术介绍 监控目的 提前发现问题 — 进行服务器性能调整前,知道调整什么 — 找出系统的瓶颈在什么地方 报告系统运行状况 — 每一部分必须同时监控 — 内容包括吞吐量,反应时间,使...

Xuenqlve ⋅ 01/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

RabbitMQ学习以及与Spring的集成(三)

本文介绍RabbitMQ与Spring的简单集成以及消息的发送和接收。 在RabbitMQ的Spring配置文件中,首先需要增加命名空间。 xmlns:rabbit="http://www.springframework.org/schema/rabbit" 其次是模...

onedotdot ⋅ 26分钟前 ⋅ 0

JAVA实现仿微信红包分配规则

最近过年发红包拜年成为一种新的潮流,作为程序猿对算法的好奇远远要大于对红包的好奇,这里介绍一种自己想到的一种随机红包分配策略,还请大家多多指教。 算法介绍 一、红包金额限制 对于微...

小致dad ⋅ 38分钟前 ⋅ 0

Python 数电表格格式化 xlutils xlwt xlrd的使用

需要安装 xlutils xlwt xlrd 格式化前 格式化后 代码 先copy读取的表格,然后按照一定的规则修改,将昵称中的学号提取出来替换昵称即可 from xlrd import open_workbookfrom xlutils.copy ...

阿豪boy ⋅ 今天 ⋅ 0

面试题:使用rand5()生成rand7()

前言 读研究生这3 年,思维与本科相比变化挺大的,这几年除了看论文、设计方案,更重要的是学会注重先思考、再实现,感觉更加成熟吧,不再像个小P孩,人年轻时总会心高气傲。有1 道面试题:给...

初雪之音 ⋅ 今天 ⋅ 0

Docker Toolbox Looks like something went wrong

Docker Toolbox 重新安装后提示错误:Looks like something went wrong in step ´Checking if machine default exists´ 控制面板-->程序与应用-->启用或关闭windows功能:找到Hyper-V,如果处......

随你疯 ⋅ 今天 ⋅ 0

Guacamole 远程桌面

本文将Apache的guacamole服务的部署和应用,http://guacamole.apache.org/doc/gug/ 该链接下有全部相关知识的英文文档,如果水平ok,可以去这里仔细查看。 一、简介 Apache Guacamole 是无客...

千里明月 ⋅ 今天 ⋅ 0

nagios 安装

Nagios简介:监控网络并排除网络故障的工具:nagios,Ntop,OpenVAS,OCS,OSSIM等开源监控工具。 可以实现对网络上的服务器进行全面的监控,包括服务(apache、mysql、ntp、ftp、disk、qmail和h...

寰宇01 ⋅ 今天 ⋅ 0

AngularDart注意事项

默认情况下创建Dart项目应出现以下列表: 有时会因为不知明的原因导致列表项缺失: 此时可以通过以下步骤解决: 1.创建项目涉及到的包:stagehand 2.执行pub global activate stagehand或pub...

scooplol ⋅ 今天 ⋅ 0

Java Web如何操作Cookie的添加修改和删除

创建Cookie对象 Cookie cookie = new Cookie("id", "1"); 修改Cookie值 cookie.setValue("2"); 设置Cookie有效期和删除Cookie cookie.setMaxAge(24*60*60); // Cookie有效时间 co......

二营长意大利炮 ⋅ 今天 ⋅ 0

【每天一个JQuery特效】淡入淡出显示或隐藏窗口

我是JQuery新手爱好者,有时间就练练代码,防止手生,争取每天一个JQuery练习,在这个博客记录下学习的笔记。 本特效主要采用fadeIn()和fadeOut()方法显示淡入淡出的显示效果显示或隐藏元...

Rhymo-Wu ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部