一种基于Kubernetes容器技术的MongoDB数据库监控方法技术

技术编号:31980551 阅读:12 留言:0更新日期:2022-01-20 01:37
本发明专利技术提供一种基于Kubernetes容器技术的MongoDB数据库监控方法,属于Kubernetes环境中虚机指标监控技术领域,本发明专利技术利用Pod容器中部署的Telegraf的各类插件,通过制定配置文件,完成对采集指标的过滤和存储重定向。采集业务监控指标、应用监控指标、网络监控指标到同一逻辑表中。利用全局标签对数据进行标记分类。数据添加标识存储到Pod容器部署的Influxdb中。能够在不涉及Telegraf插件修改的前提下,完成对各种监控指标数据的采集和分类存储,做到只采集汇总有效数据,节约存储成本,提高储存和查询效率。降低方案使用的技术要求,方便使用。方便使用。方便使用。

【技术实现步骤摘要】
一种基于Kubernetes容器技术的MongoDB数据库监控方法


[0001]本专利技术涉及Kubernetes环境中虚机指标监控技术领领域,尤其涉及一种基于Kubernetes容器技术的MongoDB数据库监控方法。

技术介绍

[0002]Kubernetes是目前最为流行、成为事实标准的容器集群管理平台,为容器化应用提供了集群化部署运行、自动资源调度,和动态水平伸缩等一系列完整功能。虽然Kubernetes平台本身已经实现了应用状态的实时监控,但是监控的指标和方式还是比较基础,难以满足各种复杂和个性化的监控管理需求。因此,我们需要在Kubernetes的基础上,增加独立的、不影响现有应用集群的架构和部署的,而且功能全面、易于部署、便于监视分析、能够及时告警的监控体系。
[0003]Telegraf是一个用Go编写的代理程序,是收集和报告指标和数据的代理。可收集系统和服务的统计数据,并写入到InfluxDB数据库。Telegraf具有内存占用小的特点,通过插件系统开发人员可轻松添加支持其他服务的扩展。
[0004]众多的开源监控软件提供的解决方案在部分层面解决监控问题,但不能从整体上、多方位提供开源云平台的一体化资源监控方案。
[0005]现有Telegraf采集的应用大多采用修改插件源码的方式来实现数据的过滤和聚合,对使用人员技术水平要求较高,源码修改验证过程复杂,效率较低。

技术实现思路

[0006]为了解决以上技术问题,本专利技术提供了一种基于Kubernetes容器技术的MongoDB数据库监控方法,对MongoDB数据库的服务状态、虚机的状态等资源信息,进行多维度、全方位的实时监控。
[0007]本专利技术的技术方案是:
[0008]一种基于Kubernetes容器技术的MongoDB数据库监控方法,利用容器技术将Telegraf应用和MongoDB应用部署在同一容器中。通过修改Telegraf配置文件的方式完成MongoDB监控指标和虚机监控指标的聚合。通过读取虚机环境信息设置Telegraf的维度。通过Docker挂载虚机系统目录采集监控指标。
[0009]进一步的,
[0010]利用Pod容器中部署的Telegraf的各类插件,通过制定配置文件,完成对采集指标的过滤和存储重定向;
[0011]采集业务监控指标、应用监控指标、网络监控指标到同一逻辑表中;
[0012]利用全局标签对数据进行标记分类,数据添加标识存储到Pod容器部署的Influxdb中。
[0013]再进一步的,
[0014]MongoDB部署在Kubernetes的Docker容器中,Kubernetes环境部署Influxdb数据
库Pod,提供虚机可以进行存储的域名,部署提供监控数据查询的CMS服务Pod。
[0015]将Telegraf部署在MongoDB所在的虚机。
[0016]监控数据采集包含数据采集模块和数据存储模块,数据采集模块采用监控工具Telegraf,利用插件机制,采集多种资源监控信息,数据存储模块采用Influxdb时序数据库。
[0017]进一步的,
[0018]通过Ansible在Kubernetes环境已创建完成的虚机中利用Docker部署MongoDB应用;
[0019]通过脚本获取部署虚机的ID作为采集指标的全局tag resource_id,读取虚机的网卡信息,取IP作为采集指标的全局tag user_ip;通过Docker命令启动容器。
[0020]容器启动时,因采集磁盘信息,需要挂载数据存储的磁盘目录,挂载系统采集磁盘信息的组件目录/proc:/hostfs/proc、/sys:/hostfs/sys,并设置环境变量。
[0021]通过修改Telegraf配置文件,设置全局tag;取Docker启动时传入的环境变量resource_id、user_ip等设置[global_tags],这样采集的每条监控数据都具有全局标签,查询时可更具需求进行过滤。
[0022]通过修改Telegraf配置文件,完成采集指标的过滤;Telegraf中每个组件采集全量的监控存储数据到各自Influxdb对应表中,因此产生冗余数据;这里通过对每个采集指标配置fieldpass过滤选取每个指标的采集属性;通过组件指定采集硬件,通过net组件的interfaces配置指定采集的网卡,通过disk组件的mount_points指定采集的磁盘。
[0023]通过修改Telegraf配置文件,进行监控指标的聚合;利用processors.rename组件,设置processors.rename.replace,指定measurement和dest,实现把measurement组件采集的监控数据重定向储存到dest表中;通过field和dest,实现将采集的指标属性重定向到目标表中的字段中;
[0024]如果采集measurement的field在一个以上的measurement中存在重复项,需要在processors.rename标签下面添加namepass来指定监控数据源组件。
[0025]通过配置outputs.influxdb,指定database和retention_policy,实现数据的隔离和定期清除。
[0026]利用cpu组件采集虚机CPU空闲使用率usage_idle(查询时用100减去usage_idle作为CPU使用率),将指标重命名为mongo表的node_cpu_ratio属性;
[0027]利用mem组件采集虚机memory的used(使用量),used_percent(使用率),将指标重命名为mongo表的node_used_memory和node_used_memory_ratio;
[0028]利用disk组件,采集虚机数据盘data的used(使用率),将指标重命名为mongo表的node_used_disk;
[0029]利用net组件采集虚机网卡eth0的bytes_recv(数据接收量)和bytes_send(数据发送量),将指标重命名为mongo表的node_net_recv和node_net_send;
[0030]利用mongodb组件采集MongoDB指标connections_current,delete_command_total,insert_command_total等,将指标重命名到mongo表中;
[0031]数据查询;监控指标数据存储到Influxdb后,查询时只需要对mongo表进行查询即可。
[0032]本专利技术的有益效果是
[0033]能够在不涉及Telegraf插件修改的前提下,完成对各种监控指标数据的采集和分类存储,做到只采集汇总有效数据,节约存储成本,提高储存和查询效率。降低方案使用的技术要求,方便使用。
附图说明
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Kubernetes容器技术的MongoDB数据库监控方法,其特征在于,利用容器技术将Telegraf应用和MongoDB应用部署在同一容器中;通过修改Telegraf配置文件的方式完成MongoDB监控指标和虚机监控指标的聚合;通过读取虚机环境信息设置Telegraf的维度;通过Docker挂载虚机系统目录采集监控指标。2.根据权利要求1所述的方法,其特征在于,利用Pod容器中部署的Telegraf的各类插件,通过制定配置文件,完成对采集指标的过滤和存储重定向;采集业务监控指标、应用监控指标、网络监控指标到同一逻辑表中;利用全局标签对数据进行标记分类,数据添加标识存储到Pod容器部署的Influxdb中。3.根据权利要求2所述的方法,其特征在于,MongoDB部署在Kubernetes的Docker容器中,Kubernetes环境部署Influxdb数据库Pod,提供虚机可以进行存储的域名,部署提供监控数据查询的CMS服务Pod;将Telegraf部署在MongoDB所在的虚机;监控数据采集包含数据采集模块和数据存储模块,数据采集模块采用监控工具Telegraf,利用插件机制,采集多种资源监控信息,数据存储模块采用Influxdb时序数据库。4.根据权利要求3所述的方法,其特征在于,通过Ansible在Kubernetes环境已创建完成的虚机中利用Docker部署MongoDB应用;通过脚本获取部署虚机的ID作为采集指标的全局tag resource_id,读取虚机的网卡信息,取IP作为采集指标的全局tag user_ip;通过Docker命令启动容器;容器启动时,因采集磁盘信息,需要挂载数据存储的磁盘目录,挂载系统采集磁盘信息的组件目录/proc:/hostfs/proc、/sys:/hostfs/sys,并设置环境变量。5.根据权利要求3所述的方法,其特征在于,通过修改Telegraf配置文件,设置全局tag;取Docker启动时传入的环境变量resource_id、user_ip等设置[global_tags],这样采集的每条监控数据都具有全局标签,查询时可更具需求进行过滤。6.根据权利要求3所述的方法,其特征在于,通过修改Telegraf配置文件,完成采集指标的过滤;Telegraf中每个组件采集全量的监控存储数据到各自Influxdb对应表中,因此产生冗余数据;这...

【专利技术属性】
技术研发人员:赵春蕾王阳赵山高传集江燕孙思清
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1