专栏首页Tungsten Fabric中文社区Tungsten Fabric入门宝典丨主流监控系统工具的集成

Tungsten Fabric入门宝典丨主流监控系统工具的集成

尽管Tungsten Fabric具有不错的监视/警报功能,但可能需要将它们集成到完整的监视系统中。

让我举例说明如何将它们与Promethesus和EFK集成。

Prometheus

(编者按:Prometheus 是一个开源监控系统,几乎所有云原生系统都以 Prometheus的指标格式输出运行时的监控信息。)

为了监视和可视化Tungsten Fabric系统中发生的情况,prometheus将是一种可能的选择。

  • 一些工具(例如zabbix)支持抓取prometheus格式,因此在监视工具中作为通用格式也很有用: https://www.zabbix.com/documentation/4.2/manual/config/items/itemtypes/prometheus

要按prometheus进行抓取,需要以Prometheus的格式从Tungsten Fabric导出相关指标,有两种方法可以实现此目的:

  1. 直接从内省HTTP Server导出指标(此功能目前不可用)
  2. 从analytics或从analytics UVE导出值(此功能目前可用)

第一步,我尝试了一个短脚本(WIP)将值导出到prometheus。

  • 当前,有限的vRouters指标可以被导出,例如报文,字节数,流数量,丢弃报文数量
  • https://github.com/tnaganawa/tf-analytics-exporter

这些值还可以用于从prometheus发送警报,而不是从analytics-alarms发送警报。

EFK

(编者按:EFK由ElasticSearch、Fluentd和Kiabana三个开源工具组成,用于进行日志收集和管理。)

由于Tungsten Fabric具有多个系统日志(文件或docker标准输出),因此可以很容易地通过fluentd进行收集。

  • https://www.fluentd.org/guides/recipes/docker-logging

如果节点数量相当大,对于管理来说会很有用。

另一个有趣的主题是vRouter也支持流导出,在某种意义上类似于ipfix或有状态防火墙的allow / deny日志。

  • https://github.com/Juniper/contrail-controller/wiki/Flow-Sampling
  • https://github.com/Juniper/contrail-specs/blob/master/security_logging_object.md

要启用此功能,你可以在Tungsten Fabric webui中的Configure > Global Config > edit > Flow Export Rate中设置flow-export-rate > 0(例如100)。

默认情况下,它将被发送到Tungsten Fabric webui或者像contrail-flow、contrail-sessions这样的命令来查询分析,但它也可以直接导出到本地文件,发送给其他日志采集器,如EFK,以备以后使用。

要启用本地流日志记录,可以使用这些参数。

(ansible-deployer)
contrail_configuration:
  SLO_DESTINATION: file
  SAMPLE_DESTINATION: file
(kubeadm)
env:
  SLO_DESTINATION: file
  SAMPLE_DESTINATION: file

如果设置了此参数,则vrouter-agent的日志文件(例如/var/log/contrail/contrail-vrouter-agent.log)将具有如下的日志输出:

INFO -  [SYS_INFO]: SessionData: [ vmi = default-domain:k8s-kube-system:coredns-7f865bd4f9-6gq52__8d7eb81a-6b16-11e9-b466-0e4d26f73e5e vn = default-domain:k8s-default:k8s-default-pod-network application = application=k8s ] security_policy_rule = 00000000-0000-0000-0000-000000000004 remote_vn = default-domain:default-project:ip-fabric is_client_session = 1 is_si = 0 vrouter_ip = 172.31.6.218 local_ip = 10.47.255.250 service_port = 443 protocol = 6 sampled_forward_bytes = 132 sampled_forward_pkts = 2 sampled_reverse_bytes = 1140 sampled_reverse_pkts = 2 ip = 10.96.0.1 port = 35420 forward_flow_info= [ sampled_bytes = 132 sampled_pkts = 2 flow_uuid = 130bbb8d-9be7-46bc-8b3a-938a5c2c36bb tcp_flags = 120 setup_time = 1556609440638565 action = pass sg_rule_uuid = 00000000-0000-0000-0000-000000000004 nw_ace_uuid = 00000000-0000-0000-0000-000000000004 underlay_source_port = 55670 ] reverse_flow_info= [  sampled_bytes = 1140 sampled_pkts = 2 flow_uuid = e09e2579-7764-472b-8a35-b300c5ec34e7 tcp_flags = 120 setup_time = 1556609440638565 action = pass sg_rule_uuid = 00000000-0000-0000-0000-000000000004 nw_ace_uuid = 00000000-0000-0000-0000-000000000004 underlay_source_port = 49942 ] vm = coredns-7f865bd4f9-6gq52__8d536915-6b16-11e9-9f48-0e4d26f73e5e other_vrouter_ip = 172.31.6.218 underlay_proto = 0  ]

通过fluentd将这些参数用json化,并通过ES查询kibana,可以更容易地看到vRouters之间或物理交换机之间的数据包依次经过的情况。

拓扑视图

以我的理解,统计信息(stats)、日志(logs)和拓扑(topologies)是用于软件监视的三个不同组件。

Prometheus和EFK部分已经包含了统计信息和日志管理,但据我所知,对于拓扑并没有通用的工具,我将在Tungsten Fabric webui中描述拓扑可视化功能。

IT系统之间存在很多拓扑,但是对于Tungsten Fabric而言,overlay拓扑和underlay拓扑这两个最重要。

   1. overlay:

  • 哪个VNF通过服务链连接到了哪个VN
  • 哪个物理设备具有哪个VN扩展

2. underlay:

  • 哪个虚拟机位于哪个vRouter上
  • vRouter到leaf交换机的连接
  • leaf交换机到spine交换机的连接

对于overlay可视化,Monitor > Networking > Networks提供了一些详细视图,说明哪些VNF通过服务链连接到VN。

  • 据我所知,无法查看哪个物理设备已进行了VN扩展

对于underlay可视化,Tungsten Fabric具有通过SNMP收集lldp信息的功能,并描绘了leaf、spine及vRouters和VM之间的视图。

  • http://www.opencontrail.org/wp-content/uploads/2014/11/overlay_to_physical_blogpost_image2.png
  • http://www.opencontrail.org/wp-content/uploads/2014/11/overlay_to_physical_blogpost_image3.png
  • vRouter到leaf交换机的连接似乎也是基于leaf交换机中的arp表来进行可视化的。

要在ansible-deployer安装中启用此功能,需要添加此角色。

roles:
  analytics_snmp

添加后,将snmp-collector和拓扑两个容器添加到分析节点中,http://(analytics-ip):8081/analytics/uves/prouter/*将通过PRouterLinkEntry参数填充,描述ldp检测到的interface_name。

  • http://www.opencontrail.org/wp-content/uploads/2014/11/overlay_to_physical_blogpost_image1.png
  • 要启用此功能,需要勾选Configure > Physical Device > (edit) > 'SNMP Enabled'

·END·

Tungsten Fabric入门宝典系列文章——

  1. 首次启动和运行指南
  2. TF组件的七种“武器”
  3. 编排器集成
  4. 关于安装的那些事(上)
  5. 关于安装的那些事(下)

 Tungsten Fabric 架构解析系列文章——


原文链接:https://github.com/tnaganawa/tungstenfabric-docs/blob/master/TungstenFabricPrimer.md#appendix

原文作者:Tatsuya Naganawa

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 王峻:借助开源SDN利器打通异构混合云

    https://tungstenfabric.org.cn/assets/uploads/files/tf-live4-sdn.pdf

    Tungsten Fabric
  • TF+K8s轻松上手丨通过Kubernetes的服务进行基本应用程序连接

    本文所有相关链接pdf:https://tungstenfabric.org.cn/assets/uploads/files/tf-ceg-case1.pdf

    Tungsten Fabric
  • Tungsten Fabric怎么运作?

    Tungsten Fabric项目是一个开源项目协议,它基于标准协议开发,并且提供网络虚拟化和网络安全所必需的所有组件。项目的组件包括:SDN控制器,虚拟路由器...

    Tungsten Fabric
  • Python入库操作分这十步讲解!

    共有四个字段:id,sort,name,price,类型分别为:int,int,text,real. 其中id为primary key. 主键的取值必须是唯一的...

    double
  • 挖掘11亿用户背后的产品逻辑之美

    腾讯最新发布的财报显示,微信月活用户突破11亿!这意味着,在中国,除了小孩儿和年龄很大的老人,几乎每个人都是微信用户,几乎人人都是网民!

    博文视点Broadview
  • 深入理解TCP/IP协议的实现之ip分片(基于linux1.2.13)

    上次分析了ip分片重组,这次分析一下ip分片。首先我们要先了解为什么需要分片。比如在以太网中,使用CSMA/CD协议(由网卡实现),他规定了一个链路层数据包(不...

    theanarkh
  • 红帽助力HPC--我在Dell&RedHat HPC研讨会上的分享

    前言:今日,笔者受邀参加“Dell&RedHat HPC研讨会”。会上,分享了红帽在HPC领域的解决方案。由于很多朋友关心这个话题,因此将演讲的内容分享出来,供...

    魏新宇
  • 微软已确认收购 GitHub!GitLab 发文祝贺

    上周末,微软正在洽谈准备全资收购 GitHub 的消息传的沸沸扬扬。彭博新闻社 6 月 4 日凌晨发布最新报道称,据熟悉此事的消息人士透露,微软已同意收购 Gi...

    前朝楚水
  • Architecting Android with RxJava

    三个月以来,我翻译了一些关于RxJava的文章,说实话这些翻译,真的搞得我很头疼,那么现在是时候回来写点什么了。

    小鄧子
  • SAP Fiori里两种锁机制(lock)的实现

    SAP CRM Fiori采用了这种机制。

    Jerry Wang

扫码关注云+社区

领取腾讯云代金券