最后更新于2017年11月7日星期二15:38:15 GMT

Background

本文将概述软件定义网络(SDN)。, 对SDN的登录提出了一些建议,最后概述了我们在SDN登录方面所做的一些研究工作.

如果我们把软件定义网络(SDN)范式看作是一个赛马场, SDN控制器是赛车. 网络供应商,特别是电信领域的供应商,如德国电信, Orange, 沃达丰使用他们自己的SDN控制器来管理他们自己的设备以及未来其他供应商的设备的编排. 终点线的奖励是潜在的运营成本降低, 更灵活的网络和更好的服务质量(QoS). 有时在大型网络中传播一个更改可能需要几个月的时间, 而精心策划的SDN可能只需要几个小时. 大型网络公司的SDN控制器正在被旨在支持所有供应商的开源控制器所补充. 第一个SDN控制器是NOX,由Nicira Networks于2008年开发. 同年,OpenFlow协议也与NOX一起发布, 引发了许多其他SDN项目,如POX, Beacon -后来的泛光灯和OpenDaylight. 本博客将展示如何从这些控制器记录日志到logentry.

SDN控制器

SDN控制器是网络的“大脑”. 如今,在网络中部署多个控制器是可能的,也是非常普遍的, 每个人负责不同的任务. In fact, 让它变得更复杂, 一些网络运营商决定部署多个控制器, 由单个主控制器管理, 给了我们运行和管理网络中许多“大脑”的挑战. 在我们处理编排和管理问题之前, 我们需要发现我们的网络中是否存在由控制器性能瓶颈或网络设备故障引起的任何问题.

从SDN控制器登录

SDN架构至少有三层——应用层, 控制飞机, 数据平面. 在应用层,我们可以让任何北向软件位于网络的顶部. 控制平面由一个SDN控制器或一组控制器组成. 通过查看控制器产生的日志,可以了解控制器的行为和性能.  SDN控制器将包含大多数关于网络状态的重要信息,这些信息可以在以后的故障排除或调试中使用. logentry代理或库可用于从软交换机(如Open vSwitch (OvS))和其他控制器转发数据,如下所示.

OpenDaylight, ONOS和泛光灯

OpenDaylight、ONOS和泛光灯控制器都是基于Java的. 嵌入在这些应用程序中的日志子系统为捕获提供了便利, 记录和报告控制器内发生的事件. 可以通过连接Logentries实时日志解决方案来增强此功能. 它可以通过使用我们的Java Log4j插件来完成. 关于如何设置Log4j插件的说明发布在我们的 docs.

POX和Ryu

POX和Ryu都是被研究界广泛使用的SDN控制器. 它们完全用Python编写,并使用Python的日志系统. 这两个控制器都配备了日志模块,允许我们通过命令行配置大多数日志记录选项. 我们发现那些日志很难读, however, 甚至在为POX安装了一个名为*pretty_log的简单模块之后, *将标准日志转换为自定义格式.

我们认为从POX和Ryu控制器进行日志记录的更好解决方案是使用LE代理或LE python库. LE代理和LE python库之间的区别在于代理转发存储在文件中的数据, 这意味着我们必须在运行应用程序时将控制器中的所有日志输出到一个或一组文件中. 这个选项不是最优的, 但是,如果您已经将应用程序配置为将日志数据发送到文件,并且不想再使用代码,则可能工作得非常好. 另一方面, LE python库允许您直接从应用程序中轻松地记录日志-关于如何从python应用程序发送日志的说明可以在我们的 docs.

Trema

Trema是一个用Ruby和C语言开发OpenFlow控制器的全栈框架. Trema OpenFlow控制器是一组Ruby脚本,它允许开发人员向控制器类添加自定义消息处理程序,就像在Rails中一样. 如上所述, 我们可以决定将日志数据发送到文件,然后使用LE代理将日志转发到Logentries帐户或直接从应用程序发送日志. 幸运的是,我们可以使用Ruby gem by Logentries从Ruby应用程序中完成上述操作 http://docs.logentries.com/docs/ruby. 值得一提的是,除了将日志发送到logentry之外,还可以通过在键后添加本地参数来保持本地日志记录. 除此之外,我们还可以指示Trema在将日志流式传输到logentry时使用SSL.

ov例子

OvS是一个产品质量的虚拟交换机,在开源Apache 2下获得许可.0 license. 它旨在实现大规模的网络自动化, 同时支持标准的管理接口和协议. 默认情况下, OvS将日志数据发送到服务器/var/log/openvswitch文件夹下的两个文件中, as below. :

  1. ovs-openvswitchd.log - switchd是一个管理和控制本地机器上任意数量的Open vSwitch设备的守护进程. 该日志保存有关所设置的数据路径的信息, 配置更新, 切换到控制器连接状态和每个端口信息. 链路故障也记录在openvswitchd中.作为Open vSwitch链路监控的一部分.

样例输出:

2016-12-16T11:05:01.199Z|00077|rconn|INFO|s2<->tcp:127.0.0.1:8888:连接...
2016-12-16T11:05:01.199Z|00078|rconn|WARN|s2<->tcp:127.0.0.1:888:连接失败(连接被拒绝)
2016-07-13T18:14:36.366Z|00064|bridge|INFO|bridge s1:在端口2上增加接口s1-eth2
2016-07-13T18:14:36.366Z|00065|bridge|INFO|bridge s1:在端口1上增加接口s1-eth1
2016-07-13T18:14:36.366Z|00066|bridge|INFO|bridge s1:在3号端口上增加接口s1-eth3
2016-07-13T18:14:36.373Z|00067|bridge|INFO|bridge s1:在65534端口上添加接口s1
  1. ovsdb-server.该日志文件由Open vSwitch数据库服务器创建和更新. ovsdb-server是一个轻量级数据库服务器,ovs-switchd通过查询来获取其配置. 目前ovsdb数据库中有13个表,我们可以从中了解桥牌, port, 控制器, QoS和SSL配置. 除此之外, 我们可以获得基本的统计数据,比如在启动后不久的内存使用情况,以及随着内存消耗的增长而周期性地获得内存使用情况.

样例输出:

2016-08-24T11:52:50.538Z|00006|vlog|INFO|打开的日志文件/var/log/openvswitch/ovsdb-server.log
2016-09-06T15:54:34.837Z| 000001 |vlog|INFO|打开的日志文件/var/log/openvswitch/ovsdb-server.log
2016-09-06T15:54:34.881Z|00002|ovsdb_server|INFO| ovsdb_server(打开vSwitch.5.0
2016-09-06T15:54:47.931Z|00003|内存|INFO|3248 kB 10后的峰值常驻集大小.1 seconds
2016-09-06T15:54:47.931Z|00004|内存|INFO|cell:2088个监视器:1个会话:1
2016-12-16T11:05:00.293Z| 000001 |vlog|INFO|打开的日志文件/var/log/openvswitch/ovsdb-server.log
2016-12-16T11:05:00.309Z|00002|ovsdb_server|INFO| ovsdb_server(打开vSwitch.5.0
2016-12-16T11:05:11.790Z|00003|内存|INFO| 3240kb 10后的峰值常驻集大小.0 seconds
2016-12-16T11:05:11.790Z|00004|内存|INFO|cell:2088个监视器:1个会话:1个

SDN的词源研究

最近的一篇研究论文基于OpenFlow的企业SDN VoIP qos监控提出了一种VoIP监控系统,该系统提供了开箱即用的方法来识别企业VoIP环境中每个链路的质量退化. 该解决方案与Logentries实时日志分析引擎集成,以便为发现重要事件创建自定义标记, 如下图所示. 使用Logentries作为日志分析平台提供实时警报和通知, 但它也充当了存储历史数据的安全云数据库.

基于对企业VoIP系统基线的自动分析,网络管理员可以通过实时异常检测来捕捉异常活动. 可以在Logentries仪表板中创建这些基线,以便稍后触发多个警报. 这些警报可以发布到像webhooks这样的流行工具上, 电子邮件或手机应用, 它允许网络管理员收到更改通知,例如一个或多个呼叫的低MOS, 离线时.

Summary

像大多数软件系统一样, SDN控制器通常配备了日志记录功能,可以在运行时使用这些功能来提供对软件及其运行的硬件行为的洞察. 日志记录的数量取决于开发人员的风格, 但通常它会记录主要SDN功能的发生,例如流表修改, 网络组件连接状态和拓扑特征. SDN控制器日志文件包含有关软件模块处理的网络事件的有价值的原始信息.

Ideally, 收集的数据应以非侵入式的方式进行实时处理, 对整个系统性能的影响可以忽略不计. 解决方案之一是使用驻留在云中的日志分析工具来分析来自SDN控制器和交换机的日志. 将Logentries作为基于云的实时日志工具应用于SDN是对平台的一种新颖使用, 因为它需要广泛的测井知识, 日志分析, 网络行为和SDN领域特定知识.

实时日志平台的最大优势是,日志数据在流传输到云服务器时进行分析和处理. 与传统方法不同, 实时日志系统在几秒钟内提供洞察力,并支持即时通知, 事件的警报和可视化. 这种方法意味着网络管理员不需要开发定制的分析平台来观察流量变化的影响,这种变化在网络的无线段中可能特别麻烦.