openconfig初识(三)​​​​​​​

openconfig初识(二)简单介绍了YANG Model、language bindings和gNMI,本节以此为基础继续介绍数据存储和可视化遥感技术。

数据存储和可视化遥感

创建

首先分别创建一个InfluxDB容器和一个grafana容器,如下所示:

docker run -it --net ocnet --ip 172.20.0.5 openconfig/influxdb:v1
docker run -dp 3000:3000 --net ocnet --ip 172.20.0.6 openconfig/grafana:v1

如果已经退出了openconfig初识(二)的终端,需要重新启动gnmi_client容器和gnxi_target容器,如下所示:

docker run -it --net ocnet -h gnmi_client --ip 172.20.0.3 --add-host www.example.com:172.20.0.4 openconfig/gnmi_client:v1 /bin/bash
docker run -it --net ocnet -h gnxi_target --ip 172.20.0.4 openconfig/gnxi_target:v1

如果interface_bindings和gnmi_pb2不存在的话,在gnmi_client容器中language bandings并编译gnmi_proto文件,如下所示:

# pyang --plugindir $PYBINDPLUGIN -f pybind -o interface_bindings.py openconfig-interface.yang
# python -m grpc.tools.protoc --proto_path=/home/user/gnmi/proto/gnmi_ext/ --proto_path=/home/user/gnmi/proto/gnmi/ --python_out=./client_app --grpc_python_out=./client_app /home/user/gnmi/proto/gnmi/gnmi.proto 

使用

本节内容并不在gNMI, OpenConfig, YANG, gRPC等的范围内,但可以帮助我们更好的了解所有这些是如何关联在一起的。本节将会利用开源软件TSDB, InfluxDB和Grafana,当然操作人员还可以用其他系统。

1. 添加数据库

此处将会添加rx_packet作为测量对象,在gnmi_client容器中利用InfluxDB中的Python client库,在notso_simple_client.py脚本的主函数中添加如下内容:

if __name__ == '__main__':
  all_configs = CreateConfigs()
  stub = SetUpChannel()
  path_list = [gnmi_pb2.PathElem(name='interfaces', key={}),
               gnmi_pb2.PathElem(name='state', key={}),
               gnmi_pb2.PathElem(name='rx-packets', key={})]

  client = InfluxDBClient('172.20.0.5', 8086, 'root', 'root', 'oc_by_example')
  client.create_database('oc_by_example')
  while True:
      gnmi_response = GetRequest(stub, path_list)
      rx_packets = gnmi_response.notification[0].update[0].val.uint_val
      print('Adding rx-packets %s to TSDB' %rx_packets)
      #添加数据,将gets到的结果写到TSDB数据库中
      client.write_points([{"measurement":"rx_packets", "fields":{"value":rx_packets}}])
      time.sleep(5)

执行该脚本文件,输出如下:

root@gnmi_client:/home/user# python notso_simple_client.py
Adding rx-packets 73 to TSDB
Adding rx-packets 73 to TSDB
...

 使用InfluxDB HTTP API在TSDB中添加数据点。

2. InfluxDB & Grafana

首先创建Grafana,将其指向TSDB数据源,通过浏览器打开http://localhost:3000,默认用户名和密码都是admin,点击Configure-->Data Sources,增加新的数据源,如下图所示:

shujuyuan

tsdb选项:

tsdb1

tsdb2

单击Save & Test,可以看到Data source is working

3. 专业图表

绘制出遥感数据的图表,例如rx_packets的数值,单击Dashboards→ Add New Dashboard,选择Graph,单击 ‘Panel Title’-->Edit,如下图所示:

panel

选择数据源为步骤1中的OC_By_example,单击Select Measurement,插入rx_packets,如下图所示:

panel

如此就可以看到图表中检测到的数据了。

 

完毕!

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值