设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 手机 数据 公司
当前位置: 首页 > 服务器 > 安全 > 正文

宜信大数据:如何快速搭建监控报警系统(2)

发布时间:2021-01-06 10:22 所属栏目:53 来源:网络整理
导读:当然,除了 [default] 你也可以根据某些特定的指标设置合适的相应存储方式.但是这些设置都是只会对新创建的 wsp 文件有效,已有的文件的存储策略需要通过 whisper-resize 进行更改. Graphite-Web 与 Graphite-API Gra

当然,除了 [default] 你也可以根据某些特定的指标设置合适的相应存储方式.但是这些设置都是只会对新创建的 wsp 文件有效,已有的文件的存储策略需要通过 whisper-resize 进行更改.

Graphite-Web 与 Graphite-API

Graphite-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主要拥有如下优势:

  1. Dashboard 配置方便,可以随意通过拖拽方式进行变动,调换;配置好之后还能够导出模板分享给他人使用;
  2. 支持多种后端,包括 Graphite,Elasticsearch,InfluxDB 等等,也可以通过编写 plugin 支持一些特别的后端;
  3. 支持认证,支持 LDAP、Basic Auth;

在 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 系统后即可直接部署,欢迎大家试玩.

在整个监控系统的使用过程中,我们也积累了一些经验,抽取几点比较我们觉得比较有普遍性的也跟大家简单介绍下:

  1. collectd 中收集数据的时间间隔建议设置成与 whisper 的最大精度时间一致,比如都是60s.因为过于频繁的数据收集可能会使得数据在 carbon-cache 的内存中产生堆积,从而大大增加内存占用量.
  2. 另外一个可能使得 carbon-cache 内存占用量升高的原因是由于 carbon-cache 写入 whisper 的速度过慢导致数据在 ? ? carbon-cache 中出现堆积.carbon-cache 有个配置参数?MAX_UPDATES_PER_SECOND?表示每秒更新多少指标,在实际过程中,需要根据指标数来确定该数值,数值较高虽然会减少内存占用,但是磁盘 IO 会变的更高,同时这个值也会影响到新创建的监控指标落地的时间.
  3. 在生产中,有可能某些服务或者机器废弃后不会再往 carbon 中发送指标数据,但是其所占的 whisper 文件大小并不会减少,长此以往还是一件挺占磁盘空间的事情,因此建议可以定期对长期不更新的 whisper 文件进行清除.
  4. 对监控报警系统的监控也是一件非常重要的事情!

总结来说,我们通过一些非常优秀的开源组件以及自定义的配置构建了一套开箱即可用的监控报警系统,希望能给大家在构建自己的监控报警系统提供一定的参考.

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读