在天津移动通信网络中,有6套西门子交换机,它们分别作为一级汇接局和移动关口局,承担着非常重要的任务,而技术人员对于设备的维护和对网络质量的分析很大程度上是依赖于性能统计报表,所以对于西门子交换机提供良好的性能解决方案就显得异常重要。笔者通过长时间性能报表的制作以及对各类交换机性能解决方案的研究,针对西门子交换机的管理提出了一套解决方案。
在硬件接入方面,由于西门子交换机对外提供X.25端口,所以采用直联交换机的方式将西门子交换机接入到网管系统中。在硬件连接上采用摩托罗拉的PAD设备,PAD的端口是1进5出,可以与西门子交换机的X.25口相接,将X.25协议转换为5个串口协议,再通过使用IOLAN将串口数据流转换成TCP/IP数据流接入网管系统。具体连接如图1所示。采用图1的连接方式可以保证与交换机建立稳定的物理和逻辑连接。IOLAN设备支持端口绑定,即该设备本身具有一个IP地址,并且它的每个物理端口可以对应一个逻辑端口号,这样就可以采用网络编程中最为常用的socket方式对端口进行绑定,从而与交换机之间建立一条逻辑连接,实现对交换机的操作。相对来讲,西门子交换机在网管接入方面的硬件连接是比较简单的,该方案也是在国内网管接入方面被广泛采用的方案。
以下将重点介绍软件部分。对于软件部分可以分为调度、采集、分析入库、报表制作和告警监视五个部分。其中调度程序起到一个核心作用,由主调度程序负责将各个模块联系起来并统一指挥。
为了更好地理解各个模块的原理以及实现过程,下面对模块进行逐个阐述。
一、主调度程序
调度程序是各个程序协调工作的核心,它控制着从采集、分析入库到触发报表自动生成工具和报警程序的流程,具体功能包括:
1.建立监听socket;
2.等待采集程序、分析入库程序、报表自动生成程序、告警监视程序的连接请求;
3.接受采集程序、分析入库程序、报表自动生成程序、告警监视程序的SOCKET连接;
4.对各个连接进行轮询;
5.接收并分析采集程序发送来的消息,该消息是网元的单个报告采集成功或者失败,如果是采集成功,则根据消息中分析入库程序全路径参数去调用相应的分析入库程序,如果是采集失败,则发送采集失败通知消息给告警监视程序,该通知消息中包括网元名、时间点、报告名和失败信息;
6.接收分析入库程序发送的报告分析入库成功与否的消息,对于分析失败的消息,则发送分析失败通知消息给告警监视程序,该通知消息中包括网元名、时间点、报告名和失败信息,对于分析成功的消息,则判断是否触发报表自动生成程序。
主调度程序作为系统的核心,采用常驻内存的方式,将其作为一个系统进程运行,而其它模块则可以在需要的时候予以启动,工作完毕之后予以退出。
二、数据库设计
在数据库的设计上,基本原则是忠实于原始数据。对于数据库的设计,采用分级的概念,即根据对数据的分级实现对数据库表的分级。具体来讲,就是对原始数据设定为第一级表,在该表中只保存原始报告中的数据和基本的网元标识以及时间信息,在此基础上,可以根据性能公式中的数据进行计算,将这些运算结果作为第二级数据存放在第二级数据库表格中。根据需要,天津移动在该系统中只是设定了第一级的表,以原始报告中的子报告类型来确定实际上需要哪些表,即一种类型的子报告对应于数据库中的一张表,表中的字段与原始数据中的counter一一对应,这样可以方便地将原始数据和数据库中的表建立对应关系,当完成分析入库之后,用户只需要关心数据库就可以了。这样操作,对于后续的计算和进一步处理打下了良好的基础,因为在用户定义公式时,实际上就是对原始的counter进行定义运算规则,这样只要针对数据库就可以方便地进行操作。
三、数据采集程序
采集程序负责对原始数据报告的自动采集。采集程序根据各个网元的初始配置文件,自动连接交换机的指定端口,然后根据配置文件中的配置信息拼接出完整的交换机指令发送给交换机,通过socket端口接收交换机送出的文件数据,并依照配置文件中的文件存储路径将该文件存储为指定的名称,然后根据采集的成功与否向主调度程序发送消息,以便主调度程序决定下一步动作。
在性能系统中,数据采集是最基础的也是最关键的一个环节,只有保证对原始数据的准确稳定的接收,才能保证后续分析和计算的正常进行,这对采集工作提出了较高的要求。同时,还要考虑到采集工作的灵活性,因为西门子交换机的性能原始报告的提取命令不是一成不变的,并且可能经常添加或减少需要采集的报告,即使需要采集的报告,它们的采集命令格式也是不同的。针对西门子交换机提取性能统计报告的命令格式的特点,采用根据配置文件的方式进行命令行的拼接,这样当需要添加或减少报告的时候就可以非常方便地进行修改,并且不用修改源程序,从而减少工作量和维护难度。
例如,对于西门子交换机的tgrp报告的提取指令为:“GETTRAFILE:FILE=TS.TGRP.MO1,IV=10-00-11-00;”,其中“TS.TGRP”是统计任务的名字,“MO”为星期一(Monday)的缩写,“1”为文件号,“IV=10-00-11-00”为指定提取的时段,而提取c7ll报告的指令为“GETTRAFILE:FILE=TS.C7LL.MO1,IV=10-00-11-00;”。由此可见,两条指令中只有统计任务的名称不一样,考虑到文件号有可能改变,所以在配置文件中需要反映出统计任务的名称和文件号,这样软件就可以按照一定的规则来拼接出完整的指令。当然,也有不符合该种格式的指令,例如对iarstat报告的提取指令就是“DISPIARSTAT:MTYPE=IARSTAT1;”,那么对于此类指令就需要程序作特殊处理,在具体实现上就是在配置文件中将该统计的任务名称iarstat作为标识,一旦程序发现需要提取的报告为此类报告,就采用针对此类报告的命令拼接规则,否则采用另一套规则。这样,可以有效地解决对原始统计报告提取指令的灵活配置,一旦需要临时做调整,就可以通过修改配置来解决,而不必修改源程序。