本申请属于电网调度自动化领域,特别涉及多种运维指标数据接收的管理方法。
背景技术:
在搭建电力系统智能运维平台过程中,采集端发送采集运维数据到服务端的形式有很多种,例如将运维指标数据通过kafka发送、或者通过http形式发送等等;服务端怎样统一接收多种发送方式,是需要解决的一个问题。现在业界使用的开源智能运维监控系统有zabbix、open-falcon、prometheus等等。
如上述的zabbix系统,是一个基于web界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定可勿解决存在的各种问题。
zabbix由2部分构成,zabbixserver与可选组件zabbixagent。
zabbixserver可以通过snmp、zabbixagent、ping、端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在linux、solaris、hp-ux,aix、freebsd、openbsd、osx等平台上.
zabbix系统的优点包括:(1)zabbix最常用的监控方式,监测指标深入细致有针对性。(2)内置监控功能强大,内置监控项目丰富。(3)tcp方式实现通讯,可靠性也有保证。
但是,zabbix虽然可以提供强大的监视功能,但是它需要在被监控的机器上逐个安装agent客户端,部署比较麻烦,也不符合电力系统的现场复杂环境。而且通信方式是tcp方式,agent和服务端通信方式不是可配置的,必须符合遵从zabbix提供的方式,灵活性不太好;而且zibbix入门容易,但进行二次开发难度较大;运维系统较重。
故,需要一种新的技术方案以解决上述问题。
技术实现要素:
发明目的:本发明提出了一种基于hbase的智能电网采集监测数据存储系统及存储方法,目的是为了合理存储信息,充分利用资源,以提升采集监测数据的加载和访问性能。
技术方案:为达到上述目的,本发明基于hbase的智能电网采集监测数据存储系统采用如下技术方案:
一种基于内存队列的多种运维指标数据接收的管理方法,包括以下几个步骤:
步骤1),按照制定的数据格式,梳理运维指标数据,用于有效的数据接收、数据存储和数据展示;
步骤2),提供三种数据接收通信方式:包括tcp通信、http通信、kafka通信方式,以接收运维指标数据;
步骤3),整合多种存储数据的数据库,包括关系数据库、时序数据库、内存缓存数据库,对数据进行有效存储。
进一步的,步骤1)中,数据来源包括但基础设施指标、运行指标、业务系统指标、第三方指标;报文采取json格式,数据类型支持string、int、float;数据格式包含了主机名、组件名、所属系统、指标组、指标名、指标值、上报周期。
进一步的,步骤2)中,spring嵌入netty,通过netty整合了tcp和http通信方式,提供了一个高性能、高可靠性的网络应用框架;springboot嵌入kafka,提供了可配置的向kafka通信的机制;使用concurrentlinkedqueue队列来保证并发执行时的线程安全。
进一步的,步骤3)中,通过spring整合了三种数据存储方式,整合关系数据库,存储所有元数据以及指标数据;整合redis,将最新数据存入redis,对外可提供健康诊断接口;整合opentsdb,对前端数据丰富展示提供数据支持。
有益效果:相对于现有技术,本发明的有益效果包括:
遵循该方法的数据接入规范,可以有效的管理运维指标数据,规范中定义了组件名、所属系统、指标组等,将各个数据源接收到的各种运维数据按照规范整理后存入数据库,使得数据更条理,利于之后的数据展示和应用;提供的三种数据通信方式tcp通信、http通信、kafka通信,涵盖了电力系统通用的通信方式,可以和电力系统的各个调度系统无缝对接,做到无侵入性的收集处理运维指标数据,开发人员可以将更多精力放在数据业务应用上,不用过多考虑代码的实现。
附图说明
图1为本发明的系统架构图。
具体实施方式
下面结合附图对本发明的一种基于内存队列的多种运维指标数据接收的管理方法进一步的详细介绍。
以下为本发明的数据接入规范。
报文采用json格式,指标组-指标项数据格式。
{
"endpoint":"dev1",
"system":"naricloud",
"component":"eth1",
"metricgroup":"ipinterface",
"metric":"adminstatus",
"datatype":"string/int/float",
"value":1,
"step":60,
"countertype":"gauge/counter",
"timestamp":1524724608,
}
endpoint:这一个一般是主机hostname;
component:设备的广义组件,可能是物理存在的网卡、cpu,可能是中间件组件,如db;
system:设备所属系统,比如南瑞云等
metricgroup:指标组,将指标进行归纳,//运维平台统一管理
metric:指标项,//运维平台统一管理
value:指标的值;
step:上报的时间周期;
countertype:上报的类型,只支持gauge以及counter,因此统一使用gauge;
timestamp:指标上报的时间戳,单位秒;
如图1所示为本发明的系统架构图。数据来源应包括但不限于基础设施指标、运行指标、业务系统指标、第三方指标;通信方式支持kafka、http(post)、tcp方式;数据接入后存储到关系库、redis、opentsdb,以及发送告警。
另外,本发明的具体实现方法和途径很多,以上所述仅是本发明的优选实施方式。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。