IPLOOK 核心网产品除了通过核心网网管中心这种方式进行性能采集和统计分析。还支持使用Prometheus+Grafana的方案进行性能采集和统计分析。下面让我们看看Prometheus+Grafana究竟如何和IPLOOK核心网一起翩翩起舞!
什么是Prometheus?
Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本。
2016年由Google发起Linux基金会旗下的原生云基金会(Cloud Native Computing Foundation), 将Prometheus纳入其下第二大开源项目。
Prometheus目前在开源社区相当活跃。
Prometheus和Heapster(Heapster是K8S的一个子项目,用于获取集群的性能数据。)相比功能更完善、更全面。Prometheus性能也足够支撑上万台规模的集群。
图 1 Prometheus架构
Prometheus有哪些特点?
⇒ 多维度数据模型。
⇒ 灵活的查询语言。
⇒ 不依赖分布式存储,单个服务器节点是自主的。
⇒ 通过基于HTTP的pull方式采集时序数据。
⇒ 可以通过中间网关进行时序列数据推送。
⇒ 通过服务发现或者静态配置来发现目标服务对象。
⇒ 支持多种多样的图表和界面展示,比如Grafana等。
Grafana简介
Grafana是一个开源的度量分析与可视化套件。纯 Javascript 开发的前端工具,通过访问库(如InfluxDB),展示自定义报表、显示图表等。大多使用在时序数据的监控方面,如同Kibana类似。Grafana的UI更加灵活,有丰富的插件,功能强大。
Grafana支持许多不同的数据源。每个数据源都有一个特定的查询编辑器,该编辑器定制的特性和功能是公开的特定数据来源。
官方支持以下数据源:
图 2 Grafana 页面展示
IPLOOK 这套方案是怎么工作呢?
图 3 方案架构
这套方案适用于目前IPLOOK开发的所有EPC以及5GC的网元产品。
在这套方案中,我们的网元相当于 Prometheus 的一个 client 端,在 PrometheusServer 端配置需要抓取数据的目标网元IP跟端口,以及抓取数据的间隔时间,就能定时从各网元中按照规定的格式抓取各项KPI数据,在拿到数据后,按照时间存储到TSDB数据库中。
图 4 Node Exporter统计的数据
以MME模板数据展示
图5 4G NAS移动性管理流程
图6 服务请求/寻呼流程
图7 附着/去附着
图8 跟踪区更新流程
图9 会话相关流程
使用这套方案有哪些优点?
1.减少开发的周期。在以前的PM统计都是使用我们自己开发的系统,从设计到整个项目代码的编写耗费了大量的时间,在使用这一套框架后我们可以极大缩短开发周期,而且这套系统十分稳定。
2.更便捷的数据维护。在这套方案中,所有的PM数据都会放到PrometheusServer中进行存储,使用PromQL语句可以对数据进行一些相加、相减、求平均值等操作,我们的网元只需要把数据传送到PrometheusServer中,而且可以读历史数据进行导入跟导出。
3.拥有酷炫的UI。Granfana提供多种多样的图表供开发者选择,可以根据个人喜好设计出非常漂亮的图表。而且这些制作出来的模板可以进行导出分享。