整套解决方案:自动采集、加工Solar+Winds中CMTS端口数据软件在双向网络维护中应用

优采云 发布时间: 2022-10-29 07:33

  整套解决方案:自动采集、加工Solar+Winds中CMTS端口数据软件在双向网络维护中应用

  2011 International and Transmission Conference 2011 International and Transmission Conference Coverage Automatic 采集,SolarWinds CMTS 端口数据软件在双向网络维护中的应用 唐建清 徐水建 李强 深圳市天威网络工程*敏*感*词* 【摘要】 In日常双向网络维护 其中,CMTS端口信噪比的维护是网络维护的重要内容,CMTS端口的目的是运行数据。通过获取的数据,制定更加科学合理的网络维护计划,使网络维护工作有的放矢、有条不紊。该软件不仅为我们提供了简单快捷的获取CMTS端口数据的方法,还提供了数据分析和统计功能。[关键词] 太阳风;CMTS;网络维护;数据采集在数据和太阳风采集处理过程中,CMTS端口数据在软件网络维护双向中的应用——唐建清,徐水平,李强,深圳天威工程*敏*感*词* , Ltd.的维护维护为SNR的CMTSA摘要:普通双向网络,呼叫任务网络维护。本文介绍了通过CMTS数据软件的数据Winds和采集过程中的编译端口过程中,自端口是重要的。Sohr 分析支持实现 CMTS 数据和处理,我们旨在立即获得端口快速操作。Ac·为了更科学、更科学地编制网站维护数据,我们对全国网站维护和软件调用进行了规划,使进程有针对性地有序进行。这仅作为 CMTS 的和 U8 提供了获取端口数据的简单快速方法,

  由于我们是网络维护的一线部门,人员结构复杂,出于安全考虑,公司无权直接登录CMTS前端查看端口数据。但是考虑到我们实际工作的需要,宽带运营部为我们提供了一种查看端口数据的方式:SolarWind中不同的端口、不同类型的数据不能在同一个页面中展示,我们只需要查看信号——端口的信噪比和带宽。您需要打开两到三页以获取其他信息。如果要完成整个CMTS side 13的数据查看,工作量之大可想而知。同时,由于公司有工作周报的需求,我们需要每周至少统计一次全网口的指标数据,

  

  由于以上原因,我们在港口数据采集和统计方面的工作非常被动。所需的端口操作数据。为此,我们自主研发了WEB版港口信息采集系统。2 项目目标 (1)通过便捷、简单的操作,实时、快速地查看和获取港口的多项指标数据,让原来繁琐低效的港口数据获取手段变得简单易用,为港口提供更好的数据支持维修工作平台;(2)系统提供端口索引统计功能,可以方便快捷地获取我们需要的报表数据;(3) 自动采集并按要求保存端口历史数据,自动生成数据图表,然后直观地查看端口指标在一定时间内的变化趋势;(4)自动将当前港口指标与历史港口指标进行对比,通过掌握港口指标的变化,及时维护指标恶化的港口。3、软件架构和开发工具的选择考虑到我们的工作环境和使用情况,我们决定采用B/S(浏览器/服务器)架构。与C/S架构相比,B/S架构具有无需安装客户端软件、程序升级方便等优点。通过比较多种开发工具,结合程序员对开发工具的熟悉程度,最终选择了微软的Visual Studio2008作为开发工具,ASP。NET 框架,用 C 语言编写。

  4.2 自动登录SolarW'inds name)?Username=&password=”,无需在登录页面填写用户名和密码即可直接登录SolarWinds。4.3 Grab 在页面请求的IP包头中添加SolarWinds页面的内容信息,可以绕过登录链接直接访问对应的网页。4.4 数据提取 在网络维护中,我们只关心端口指标的两个数据,一是端口信噪比,二是端口调制方式。在 15Mbps 下,由带宽决定的调制方式会低于实际的调制方式。但我们认为这种差异不仅对我们没有负面影响,而且使我们更加正确。判断网络的真实情况,因为它是在16QAM或网络中维护的。因此,我们使用这种间接转换带宽的调制方法,以用作端口调制方法数据。此外,我们还需要提取CMTS号、CMTS端口号和数据链路地址。确定要提取的数据类型后,在程序中使用正则表达式将这些数据从网页中分离出来。4.5 多线程的应用为了提高软件的工作效率,抓取网页内容 4.6 端口数据自动采集为了实现CMTS数据的自动采集无需人工干预,我们编写了一个名为CMTSPortService端口数据自动采集程序的WindowsService类型。我们还需要提取CMTS号、CMTS端口号和数据链路地址。确定要提取的数据类型后,在程序中使用正则表达式将这些数据从网页中分离出来。4.5 多线程的应用为了提高软件的工作效率,抓取网页内容 4.6 端口数据自动采集为了实现CMTS数据的自动采集无需人工干预,我们编写了一个名为CMTSPortService端口数据自动采集程序的WindowsService类型。我们还需要提取CMTS号、CMTS端口号和数据链路地址。确定要提取的数据类型后,在程序中使用正则表达式将这些数据从网页中分离出来。4.5 多线程的应用为了提高软件的工作效率,抓取网页内容 4.6 端口数据自动采集为了实现CMTS数据的自动采集无需人工干预,我们编写了一个名为CMTSPortService端口数据自动采集程序的WindowsService类型。

  5 系统功能介绍 5.1 实时查看端口信息 通过端口信息查看页面,可以查看端口总数、端口调制方式的数量和比例、信噪比和调制方式。每个端口实时下一个CMTS。在页面上显示所有必需数据的目的。5.1.1终端,机房名称会显示为“未知”,表示机房有新的头端,需要添加机房名称和CM号的映射数据到数据库。机房CMTS列表如图1所示。 · 79 · 机房CMTS列表2显示CMTS的查询结果。点击“端口号”、“端口信噪比”、“调制模式” 在页面中对这三个数据列进行排序。(图中数据为测试环境模拟数据,并非真实数据,下同) 图2 CMTS查询结果 5I 3 “终端号”和“端口信号到”列数据E提供的链接-噪声比”可以轻松打开如图3所示,端口信噪比折叠线圈,从而无需京鲁S01。在繁琐的操作后获得风。∞ "∞ ∞ 是 ∞ 宽度"; 0 图3 端口信噪比折线图 5.2 数据报表 通过系统提供的报表生成页面,首先在机房的CMTS列表中选择要统计的CM码,如图4所示,然后点击“开始统计”按钮,可以统计端口调制报告如图5所示,并将其导出为 Excel 格式 80 格式数据。,"K)雏神,L,02(ol-ozuguanidine 100ln回南山01抽2图4机房选择列表图5端口调制方式报告祥5.3端口数据自动采集CMTS端口数据处理采集,并保存在数据库中。

  

  图 6 显示了程序自动保存在数据库中的数据。曩一。型》!型塑【下序号,机房名称,端口号,调制方式,统计,天j,3151,20:∞:∞沉,boiqPSK∞i贝/233时沉,t,olU12011m123∞:39: 00317 中心 011 / 2 Gong lllsl23 ∞:39:00 20:39:00318 中心 01(iv) ∞ 1" 6/23319 中心 011H201l Woo Foot 20:39:0020:39:00320 By, C, Oi" 516. AM2011 Woo, 23嘘6∞AH201l Woo, 2320:39:00321@, Ool3221/720:39:00, 00ls|(2011J6123 图6 程序自动存入数据库的数据 5.4 生成数据图表 存入数据库的数据自动分类计数,并对应数据图表,从而呈现直观的图形信息,如图8所示。横坝面矿酋长 %_w 网面*敏*感*词*和 r 菌体绘制 8 端口调制方式统计 图 5.5 端口指数恶化报告系统 自动将当前端口指数与历史结束 u 指数进行比较。如果当前指标与历史指标对比后指标劣化值超过预设允许范围,系统将自动生成指标劣化端U的数据报告,维护者根据报告数据进行数据上报。进行港口维护。6 港口信息采集系统使用效果分析 (1)经过一段时间的使用,码头121信息采集系统已经成为我们港口维护工作中不可缺少的工具。5 端口指数恶化报告系统 自动将当前端口指数与历史结束u指数进行比较。如果当前指标与历史指标对比后指标劣化值超过预设允许范围,系统将自动生成指标劣化端U的数据报告,维护者根据报告数据进行数据上报。进行港口维护。6 港口信息采集系统使用效果分析 (1)经过一段时间的使用,码头121信息采集系统已经成为我们港口维护工作中不可缺少的工具。5 端口指数恶化报告系统 自动将当前端口指数与历史结束u指数进行比较。如果当前指标与历史指标对比后指标劣化值超过预设允许范围,系统将自动生成指标劣化端U的数据报告,维护者根据报告数据进行数据上报。进行港口维护。6 港口信息采集系统使用效果分析 (1)经过一段时间的使用,码头121信息采集系统已经成为我们港口维护工作中不可缺少的工具。系统会自动生成索引恶化端U的数据报告,维护者根据报告数据进行数据上报。进行港口维护。6 港口信息采集系统使用效果分析 (1)经过一段时间的使用,码头121信息采集系统已经成为我们港口维护工作中不可缺少的工具。系统会自动生成索引恶化端U的数据报告,维护者根据报告数据进行数据上报。进行港口维护。6 港口信息采集系统使用效果分析 (1)经过一段时间的使用,码头121信息采集系统已经成为我们港口维护工作中不可缺少的工具。

  每天上班后,端口维护人员只需要花几分钟时间就可以完全掌握一个机房的CMTS端口数据。根据系统提供的数据,可以在短时间内规划和安排当天的港口维护任务。与以往相比,缩短了因在办公室查看港口数据不便而在办公室呆的时间,延长了在外面的工作时间,提高了港口维护效率。(2)系统提供的报表数据自动采集功能,将我们的端口数据从原有的统计方法中解放出来。需要报表数据时,进入系统后点击鼠标,系统会自动采集需要的数据,只需很少的时间和精力即可完成报表制作。现在我们的要求不仅有月报、周报,还有日报。在该系统之前,每天的工作量可能需要员工几乎一整天。使用该系统后,可在 20 分钟内准备一份报告。由此可见,该系统带来的工作效率提升是非常明显的。·82.(3)系统应用给管理者带来的便利是显而易见的。以往,管理者想要了解一个机房或所有机房CMTS端口的运行状态,可能一天都做不到。现在您可以在几分钟内通过系统查看您需要的所有数据。因此,它为管理者提供了一种有效的手段。工作部署和人员的合理安排。作者简介:唐建清,深圳市天威网络工程*敏*感*词*运维部,主要负责网络维护工作。·83·

  解决方法:日志采集工具Flume的安装与使用方法

  水槽

  是Cloudera提供的一款高可用、高可靠、分布式海量日志采集、聚合和传输系统,Flume支持自定义日志系统中的各种数据发送方进行数据采集;同时,Flume提供了简单地处理数据并写入各种数据接收者(可定制)的能力。

  水槽主要由3个重要成分组成:

  来源:完成日志数据的采集,分为转染和事件入通道。

  通道:主要提供队列功能,简单缓存源提供的数据。

  *敏*感*词*:检索通道中的数据,存储相应的文件系统、数据库或提交到远程服务器。

  水槽在逻辑上分为三层:药剂,采集器和存储

  代理用于采集数据,代理是在Flume中生成数据流的地方,同时,代理将生成的数据流传输到采集器。

  采集器的作用是聚合多个代理的数据并将其加载到存储中。

  存储是一个存储系统,可以是普通文件,也可以是HDFS,HIVE,HBase等。

  Flume的架构具有以下核心概念:

  事件:具有可选邮件头的数据单元

  流:事件从源到目标的迁移的抽象

  客户端:在源点操作事件并将其发送到 Flume 代理

  代理:收录“源”、“通道”和“*敏*感*词*”组件的单独“水槽”工艺

  源:用于使用传递给组件的事件

  通道:传输事件的临时存储,用于保存源组件传递的事件

  *敏*感*词*:从通道中读取和删除事件,并将事件传递给流管道中的下一个代理(如果有)。有关Flume

  的更多信息,可以参考网络文献:Flume的原理和用途

  一:安装水槽

  水槽下载

  地址:水槽下载官方网站

  1. 解压缩安装包

   sudo tar -zxvf apache-flume-1.7.0-bin.tar.gz -C /usr/local # 将apache-flume-1.7.0-bin.tar.gz解压到/usr/local目录下,这里一定要加上-C否则会出现归档找不到的错误

sudo mv ./apache-flume-1.7.0-bin ./flume #将解压的文件修改名字为flume,简化操作

sudo chown -R hadoop:hadoop ./flume #把/usr/local/flume目录的权限赋予当前登录Linux系统的用户,这里假设是hadoop用户

  2. 配置环境变量

   sudo vim ~/.bashrc

  然后在第一行中添加以下代码:

   export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64;

export FLUME_HOME=/usr/local/flume

export FLUME_CONF_DIR=$FLUME_HOME/conf

export PATH=$PATH:$FLUME_HOME/bin

  注意,JAVA_HOME上面,如果之前已经在.bashrc文件中设置过,请不要重复添加,只需使用以前的设置即可。

  例如,如果JAVA_HOME以前的设置可能是“导出JAVA_HOME=/usr/lib/jvm/默认-java”,则可以使用原创设置。

  接下来使环境变量生效:

   source ~/.bashrc

  修改 flume-env.sh 配置文件:

  cd /usr/local/flume/conf

sudo cp ./flume-env.sh.template ./flume-env.sh

sudo vim ./flume-env.sh

  打开 flume-env.sh 文件后,在文件开头添加一行以设置 JAVA_HOME 变量:

  export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64;

  注意你的JAVA_HOME可能与上述设置不一致,一定要根据你之前安装的Java路径进行设置,比如有些机器可能是:

  export JAVA_HOME=/usr/lib/jvm/default-java

  然后,保存 flume-env.sh 文件并退出 vim 编辑器。

  3. 查看水槽版本信息

   cd /usr/local/flume

<p>

./bin/flume-ng version #查看flume版本信息;

</p>

  如果安装成功,则显示下图

  注意:如果您的系统上安装了hbase,您将收到错误:找不到或无法加载主类org.apache.flume.tools.GetJavaProperty。如果未安装 HBase,则可以跳过此步骤。

   cd /usr/local/hbase/conf

sudo vim hbase-env.sh

   #1、将hbase的hbase.env.sh的这一行配置注释掉,即在export前加一个#

#export HBASE_CLASSPATH=/home/hadoop/hbase/conf

#2、或者将HBASE_CLASSPATH改为JAVA_CLASSPATH,配置如下

export JAVA_CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

#笔者用的是第一种方法

  二:测试水槽

  1. 案例1:阿夫罗源

  阿夫罗可以将给定的文件发送到Flume,而阿夫罗源使用AVRO RPC机制。

  a) 创建代理配置文件

   cd /usr/local/flume

sudo vim ./conf/avro.conf #在conf目录下编辑一个avro.conf空文件

  然后,我们在avro.conf上写下以下内容

   a1.sources = r1

a1.sinks = k1

a1.channels = c1

# Describe/configure the source

a1.sources.r1.type = avro

a1.sources.r1.channels = c1

a1.sources.r1.bind = 0.0.0.0

a1.sources.r1.port = 4141

#注意这个端口名,在后面的教程中会用得到

# Describe the sink

a1.sinks.k1.type = logger

# Use a channel which buffers events in memory

a1.channels.c1.type = memory

a1.channels.c1.capacity = 1000

a1.channels.c1.transactionCapacity = 100

# Bind the source and sink to the channel

a1.sources.r1.channels = c1

a1.sinks.k1.channel = c1

  上面的 Avro 源参数说明如下:

  Avro 源的别名是 avro,或者您可以使用完整的类别名称组织.apache.flume.source.AvroSource,所以上面有一行说 a1.sources.r1.type = avro,表示数据源的类型是 avro。绑定绑定的 IP 地址或主机名,使用 0.0.0.0 表示绑定计算机的所有接口

  。 a1.sources.r1.bind = 0.0.0.0,表示绑定计算机的所有接口。

  港口

  表示绑定端口。 a1.sources.r1.port = 4141,表示绑定端口为 4141。

  a1.sinks.k1.type = logger,表示*敏*感*词*的类型为记录器。

  b) 启动水槽代理 A1

   /usr/local/flume/bin/flume-ng agent -c . -f /usr/local/flume/conf/avro.conf -n a1 -Dflume.root.logger=INFO,console #启动日志控制台

  在这里,我们将此窗口称为代理窗口。

  c) 创建指定的文件

  首先打开另一个终端,在/usr/本地/水槽下写一个文件log.00,内容是你好,世界:

   cd /usr/local/flume

<p>

sudo sh -c 'echo "hello world" > /usr/local/flume/log.00'

</p>

  让我们打开另一个终端并执行:

   cd /usr/local/flume

bin/flume-ng avro-client --conf conf -H localhost -p 4141 -F /usr/local/flume/log.00 #4141是avro.conf文件里的端口名

  此时我们可以看到第一个终端(代理窗口)下的显示,即在日志控制台中,将打印 log.00 文件的内容:

  阿夫罗源码执行成功!案例一结束!

  案例2:网猫源

  a) 创建代理配置文件

   cd /usr/local/flume

sudo vim ./conf/example.conf #在conf目录创建example.conf

  在 example.conf 中编写以下内容:

   #example.conf: A single-node Flume configuration

# Name the components on this agent

a1.sources = r1

a1.sinks = k1

a1.channels = c1

# Describe/configure the source

a1.sources.r1.type = netcat

a1.sources.r1.bind = localhost

a1.sources.r1.port = 44444

#同上,记住该端口名

# Describe the sink

a1.sinks.k1.type = logger

# Use a channel which buffers events in memory

a1.channels.c1.type = memory

a1.channels.c1.capacity = 1000

a1.channels.c1.transactionCapacity = 100

# Bind the source and sink to the channel

a1.sources.r1.channels = c1

a1.sinks.k1.channel = c1

  b) 启动水槽代理(即打开日志控制台):

   /usr/local/flume/bin/flume-ng agent --conf ./conf --conf-file ./conf/example.conf --name a1 -Dflume.root.logger=INFO,console

  如图所示:

  打开另一个终端并输入命令:telnet localhost 44444

   telnet localhost 44444

#前面编辑conf文件的端口名

  然后我们可以在终端下输入任意字符,第一个终端的日志控制台也会有相应的显示,比如我们输入“hello, world”,得到

  第一个终端的日志控制台显示:

  网猫源正在成功运行!

  这里要补充的是,flume只能传递英文和字符,不能用中文,我们可以先在第二终端输入“中国”这个词:

  第一个终端的日志控制台显示:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线