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

简介:

本次分享的内容是监控报警系统搭建,以及基于开源组件的二次开发。自从接受了公司监控报警系统二期开发需求以来,我们完成了监控数据的补全完善、报警系统搭建调试和报警规则配置界面的开发。下图是监控报警系统的架构图,除了业务数据收集器外,其余全部基于原生开源组件或二次开发完成,整个系统采用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

来源:51CTO

相关文章
|
4月前
|
XML Prometheus 运维
自动化监控有哪些开源系统
自动化监控有哪些开源系统
66 1
|
1月前
|
BI 知识图谱
检前、检中、检后一站式体检系统PEIS源码
健康体检系统一站式体检服务,检前、检中、检后形成闭环管理,数据全面覆盖; 线下+线上:传统的线下方式往线上延伸,拓展了宣传覆盖面;关注检中效率提升,整合外部系统结果信息; 打造闭环生态平台,方便用户交流,拓宽健康知识获取方式; 以帮助体检中心优化体检流程和构建健康管理业务为两大核心。通过业务流程和信息化技术的集成,实现了套餐推荐、预约、支付、打单、导检、报告获取等全流程自助式体检,显著提升了体检中心的服务效率和服务能力;系统集成强大健康管理服务功能,与健康体检业务深度融合,为用户提供覆盖检前、检中、检后的健康管理服务,帮助体检中心构建“健康体检+健康管理”一体化服务模式,推动健康体检向健康管理
检前、检中、检后一站式体检系统PEIS源码
|
8月前
|
Prometheus Kubernetes 监控
K8s环境下监控告警平台搭建及配置
K8s环境下监控告警平台搭建及配置
249 0
|
10月前
|
前端开发 小程序
智能排班系统 【技术选型与工具版本】
智能排班系统 【技术选型与工具版本】
75 0
|
10月前
|
运维 监控 安全
深入了解WGCLOUD - 开源运维监测平台
WGCLOUD是一款轻量高效的运维监测系统**,开源免费,性能高效,稳定安全,开箱即用,部署实施操作简单,它可以让任何角色快速上手使用,比如我们的开发工程师,产品工程师,项目经理,运维工程师,数据库工程师等
深入了解WGCLOUD - 开源运维监测平台
|
12月前
|
存储 Kubernetes 数据可视化
9款日志管理工具大比拼,选型必备!
9款日志管理工具大比拼,选型必备!
智能、高效、便捷问题定位利器 —— 应用诊断分析平台 ATP 上线
一款分析功能丰富、诊断能力完备的平台,帮助用户高效定位应用诊断性能、异常行为等问题。
智能、高效、便捷问题定位利器 —— 应用诊断分析平台 ATP 上线
|
Prometheus 运维 监控
无监控,不运维!深入浅出介绍ChengYing监控设计和使用
监控系统俗称「第三只眼」,几乎是我们每天都会打交道的系统,它也一直是IT系统中的核心组成部分,负责问题的发现以及辅助性的定位。 ChengYing作为一站式全自动化全生命周期大数据平台运维管家,自然也提供大数据产品的监控服务。这篇文章,将为大家系统性地介绍ChengYing监控的设计和使用,带大家进一步了解ChengYing。
257 0
无监控,不运维!深入浅出介绍ChengYing监控设计和使用
|
人工智能 运维 Prometheus
搞定监控!我全靠这个超牛逼的告警管理平台
你可能也遇到过这样的场景: 在一个惬意的周六夜里,运维郭哥正在梦里神游,正美着呢,然而领导突然一通电话打过来,说服务器崩了,给你5分钟时间马上恢复! 毫无疑问,服务器出问题了,但郭哥没收到告警,错过了黄金抢救时间!还被领导先发现了问题! 于是郭哥背了锅,开始修复问题,时间一点一滴地逝去,领导时不时催一下进度,一个愉快的周末就这样没了! 试想一下,如果郭哥及时收到告警会怎么样?也许可以把故障影响降到最低,甚至可以在故障没发生前把服务器重启一下,神不知鬼不觉,然后悠闲地度过周末!
|
运维 Prometheus 监控
【滴滴开源运维监控系统】夜莺V5版本部署实践
【滴滴开源运维监控系统】夜莺V5版本部署实践
938 0
【滴滴开源运维监控系统】夜莺V5版本部署实践