宜信大数据:如何快速搭建监控报警系统(2)
当然,除了 [default] 你也可以根据某些特定的指标设置合适的相应存储方式.但是这些设置都是只会对新创建的 wsp 文件有效,已有的文件的存储策略需要通过 whisper-resize 进行更改. Graphite-Web 与 Graphite-APIGraphite-Web主要是提供监控指标的对外查询接口以及指标展示功能,但是因为相对来说比较臃肿,也可以选择?Graphite-API?进行替代. Graphite-API相对于 Graphite-Web 来说更加轻量级,不提供指标展示功能,只提供了相关的查询接口.Graphite-API 的主要缺点是不能支持多个 carbon-cache 后端,但是对于数据量不大的监控还是足够用了的. 配置 Graphite-API 也相当简单,安装好后只需配置/etc/graphite-api.yaml 文件,指定whisper 所在的目录以及 carbon-cache 所提供的查询地址即可: 指标展示Graphite-Web提供的展示功能并不是特别的方便,因此我们选用 Grafana 进行展示.大家可以在?http://play.grafana.org/?这里试玩下,体验下 grafana 提供的展示能力. Grafana主要拥有如下优势:
在 Grafana 中配置展示 Graphite 的数据非常简单,我们只需在 DataSource 处选择 Graphite,然后填好 Graphite-Web 或者 Graphite-API 所对应的 url 即可. 接下来通过一些简单的网页点击选择即可展示出来相应的数据了,如图: Grafana在推出 4.0 的时候已经能够配置报警了,对于一些简单的监控报警其实也可以通过 Grafana 进行配置. 监控报警在监控报警这方面,我们选择的工具是 icinga,主要包括 icinga2 以及 icinga2web 两个组件. icinga2主要采用 C++ 编写,旨在替代 Nagios 以及 icinga1,可以复用 Nagios 所有的插件.它提供了非常方便的 API 供调用,同时拓展性、伸缩性以及性能方面也都非常的优秀. icingaWeb2主要给 icinga2 提供了 UI,在其中我们能够非常方便的查看所有的监控项、报警接收人、监控的状态等等,同时因为每次报警信息都存入到了数据库中,我们也能在 UI 上非常方便的去查看所有的报警历史. 我们开源了一个构建 icinga2 docker 镜像的仓库:github.com/laincloud/centos-lain-icinga2?其中加入了一些我们写的拓展脚本,包括从 graphite 中读取数据,根据相应的阈值进行报警.我们也提供了一些常用的报警通知脚本,包括 sms,mail,bearychat,slack 等等. 另一方面 icinga2 并没有提供非常好的,配置报警的功能,所有的监控项需要通过配置文件进行配置,当需要管理大量的监控项时则会显得不那么方便,LAIN 自研了一个组件 Hagrid 可以提供给开发人员自定义监控项,目前支持的监控项包括 Graphite 中收集的指标项,以及 TCP 连接的相关监控.用户自定义好配置项后成功保存后则会调用相应的 icinga2 API 生成 icinga2 相关配置文件. 一些经验总结我们基于以上组件封装成了两个LAIN 应用:Hedwig?以及?Hagrid.分别提供了指标收集展示及监控报警功能,简单搭建好 LAIN 系统后即可直接部署,欢迎大家试玩. 在整个监控系统的使用过程中,我们也积累了一些经验,抽取几点比较我们觉得比较有普遍性的也跟大家简单介绍下:
总结来说,我们通过一些非常优秀的开源组件以及自定义的配置构建了一套开箱即可用的监控报警系统,希望能给大家在构建自己的监控报警系统提供一定的参考. (编辑:ASP站长网) |