监控系统是运维工作中不可或缺的一项技术,一个好的监控系统能够对设备和系统的关键指标实时采集、存储、分析、告警,真正做到“事前预警,事后追踪”,从而大大降低运维成本,提高运维效率。
openGemini提供了260+项丰富的内核运行状态和设备运行监控指标,来满足我们日常的监控告警需求和帮助问题定位,本文将着重介绍如何搭建openGemini的内核运行实时监控系统。
整体部署
监控系统的整体部署方案如下图所示:
![](https://img-blog.csdnimg.cn/img_convert/785c63092766ee3d7df868a1bb8ed184.jpeg)
该方案包含监控数据生产、采集、存储、分析告警和展示等所有功能,主要由四部分组成:
openGemini集群: 随着业务运行,openGemini持续输出内核运行状态的各项指标数据。openGemini同时支持两种方式输出指标数据,第一种将指标数据输出到日志中;第二种则为HTTP方式,采用openGemini的数据格式,接收端需使用InfluxDB或openGemini这两种数据库均可。
指标采集:如上所述,采用HTTP方式输出指标数据,则无需额外的数据采集工具,但会缺乏一些监控指标,如磁盘利用率、创建的表总数、时间线数量、创建的数据库总数等。
如果将数据输出到日志中时,则需要使用ts-monitor进行指标数据采集,除内核运行状态指标数据之外,ts-monitor工具还将采集如磁盘利用率、创建的表总数、时间线数量、创建的数据库总数等指标。ts-monitor同样将指标数据转换为openGemini的数据格式进行上报。
数据存储:考虑到监控系统频繁的查询操作,长期来看,为避免对业务集群的运行资源造成竞争,从而影响业务效率,因此建议将指标数据转存到专门的存储节点。openGemini提供了单机和集群两种版本,通常对于集群自身的指标数据保存,单机性能已然足够。与此同时,openGemini同样支持Grafana,且单机性能更优于InfluxDB,建议直接使用openGemini单机版部署,用于存储监控指标数据。
数据可视化与告警:Grafana是业界非常普遍使用的一款开源数据可视化工具,可以做数据监控和数据统计,带有告警功能。选择它用在监控系统中最合适不过。
综上所述,该方案的优点是部署简单、易获取(所有组件开源)。接下来将重点介绍不同数据采集方式对应的部署和配置。
方式一:使用ts-monitor从业务日志中采集监控指标数据
![](https://img-blog.csdnimg.cn/img_convert/410557fba952ef9acc09da7b4dac399d.jpeg)
如图所示,监控数据以log files方式输出的方式需要在业务集群的每个节点中部署一个ts-monitor,用来从该节点上所有openGemini组件产生的监控日志中采集监控指标数据,然后将数据写入到远端监控节点上的openGemini中,最后使用Grafana作为监控/告警面板来读取单机版openGemini中的监控数据。
该部署方式下,业务集群的openGemini组件的配置文件openGemini.conf必要配置项如下图所示,各配置项说明如表一所示,当前配置会将openGemini组件的监控日志每隔10秒写一次到/home/openGemini/metric/metric.data中。
表一 log files方式业务集群配置项说明
配置项 |
说明 |
pushers |
数据输出方式,有http和file两种,当前这种方式下,选择file |
store-enabled |
设置为true,打开监控。关闭则设置为false |
store-interval |