使用jenkins实现监控嵌入式设备稳定性之一 ---- 环境配置

下文及下图提到的PBX即为我要监控的嵌入式设备

工作原理

jenkins是一款持续集成管理工具;
本项目jenkins 安装在ubuntu上,事先已写好shell检查脚本
利用jenkins的Publish Over FTP 插件功能,把文件(shell脚本)通过ftp 的方式下发给被测PBX;
利用Publish Over SSH(连接远程服务器的ssh)插件功能,ssh连接被测PBX执行指定命令;
利用managed script 插件,管理脚本实现参数化 管理多台PBX,获取PBX执行命令后生成的数据文件到ubuntu中,转化为csv文件

一、框架图:根据需要选择不同的框架图,进行不同的设置
框架图1:

框架图2:

环境准备

1、搭建jenkins环境(已有环境跳过这一步):使用现成环境看点1),自行搭建看点2)
1)方法一:使用现成的搭建好jenkins的虚拟机(推荐),copy可直接使用:svn://192.168.5.142/TestingDepartment/测试数据/ubuntu 64
该虚拟机用户登录信息(也可直接连ssh操作):
用户名:root
密码:123456
网络设置:默认是DHCP,所以开启后,DHCP获取不到IP时,记得先配个IP

虚拟机启动后,开启jenkins服务,命令:systemctl start jenkins
输入命令启动后,等几秒,即可 登录jenkins界面:http://localhost:8080 (把localhost替换成jenkins安装服务器的IP地址),登录的
用户名:xyy
密码:123456

2)方法二:自行搭建环境搭建链接:
ubuntu 16.04 下搭建jenkins: https://www.jianshu.com/p/845f267aec52
window 下搭建jenkins :https://www.cnblogs.com/c9999/p/6399367.html
搭建简单,按照文章一步步下来即可,有问题百度都能解决

然后到 系统管理 --> 插件管理 中下载需要用到的插件:Publish Over SSH(连接远程服务器的ssh)、Publish Over FTP(连接远程服务器的ftp)、thinbackup(备份还原)

扫描二维码关注公众号,回复: 5900067 查看本文章

2、脚本准备(已有脚本跳过这一步,直接使用已有的脚本)
1)已有的脚本,当前版本存放在 :/var/lib/jenkins/workspace/testfile 目录下
有用到的脚本简单说明:
channel.sh:检查通道是否死锁 ,判断标准 -- 如果通道存活时间超过通话时间的两倍,则判断为错误,通话时间参数值 para.txt中获取(以下都是,脚本中用到的参数统一从这里获取)
当前存在一个问题,外线拨打通道太长,core show channles通道显示不全,无法识别通道,有问题;分机互打可以
core show channels concise 可使用这个命令查看完整通道
core.sh:检查是否存在 core.*文件
df.sh:检查df /dev/root目录占比是否超过上限(参数),如果超过则报错,
cpu.sh:检查A(参数)次cpu,B(参数)次超过上限值C(参数),则判断为错误
memory.sh:检查内存,free 跟cach 当下超过参数值,判断为错误;连续f5次free持续下跌,判断为错误
record.sh:检查录音文件是否有生成,检查最新的几个录音(参数)
top.sh:检查asterisk虚拟内存,超过上限(参数)判断为错误
asterisk的虚拟内存是通过grep "asterisk -vvvv"那一行得出的数据,需更精确判断:只有asterisk ,没有asterisk -vvvv(K2) ;有多行asterisk ,
testall.sh:管理上面所有的脚本,执行改脚本一键执行其他所有脚本

详细说明,见另一篇文档 使用jenkins实现稳定性监控之脚本编写
不在已有脚本中的测试点,可自己灵活编写的测试点 shell 脚本,参照上面的编写规范

3、创建执行工程(已有工程跳过创建这一步,直接在原来基础上修改配置即可)
总结:
登录jenkins界面:http://localhost:8080 (把localhost替换成jenkins安装服务器的IP地址),进入主页面,创建两个工程,几个简单的操作步骤,按下面一步步来即可
工程A是部署测试环境,配置ftp 服务器设置,把存储在jenkins 服务器上的脚本分发到每台PBX
工程B是在工程A完成的基础上,配置ssh设置连接PBX,控制PBX执行工程A分发的脚本;
以上工程设置完毕后,构建等看结果

如果是从svn下载的虚拟机,可 (如果是自己搭建的,那就自己新建工程,大同小异)
1)创建\配置工程A
步骤1:配置ftp服务器 :系统管理-> 系统设置 ->Publish over FTP

作用:为jenkins通过这个ftp服务把要运行的脚本上传到PBX做准备
要测试几台PBX,就添加几台PBX对应的ftp信息
步骤2:点击testfile 工程,进入工程配置界面,编辑如下Build 部分 :

步骤3:如果有新增测点脚本,借助securecrt的 rz 命令,将编写好的脚本上传到该工程的工作空间下: /var/lib/jenkins/workspace/testfile

2)创建\配置工程B
步骤1:同设置Publish over FTP一样,到系统管理-> 系统设置 ->Publish over SSH,设置Publish over SSH信息,你测几台设备,就添加哪几台设备SSH信息

步骤2:copy一个工程,copy testpbxdo工程即可,该工程已设置好

步骤3:copy from 填写完毕点击保存后,进入配置界面,修改对应的默认参数值

如果有多台PBX,就同样的copy多个工程,一个工程一台PBX,同理设置

4、运行
以上工程创建配置完毕保存后,点击 testfile 工程的“构建”, 然后就没什么事了,等着看构建结果
其他工程做了设置,在testfile工程构建完毕后,其他工程会自动构建

5、结果检查:
进入对应的工程,点击具体构建,可查看执行过程中的log打印:log打印的内容,为执行的shell脚本的输出内容(即你手动在PBX中执行这个shell脚本,ssh界面输出什么内容,这里就对应输出什么内容);log输出内容的详细程度取决于 你脚本输出内容的详细程度(如果你想在这里看到更多的信息,那脚本中就把对应的信息打印出来 echo...)

如果有执行csv记录,那生成的csv文件也在对应工作空间下

------------------------------------------------------------------------------------- 番外篇 -----------------------------------------------------------------------------------------------

1、如上是一次构建的结果,如果要定期或循环执行构建,定期检查PBX的运行结果,在对应PBX工程的build triggers中设置即可

其他工程构建后触发:这个很有用,可以设置在工程A构建成功后,工程B就自动运行(即 shell脚本放上PBX后--工程A,就到PBX中执行shell脚本--工程B)
定时构建、轮询SCM:看需求自定义实现
定期构建语法举例:
1.每30分钟构建一次:
H/30 * * *
2.每2个小时构建一次
H H/2
*
3.每天早上8点构建一次
0 8
*
4.每天的8点,12点,22点,一天构建3次
0 8,12,22
* *
(多个时间点,中间用逗号隔开)

2、 在检查点没有,需要新补充的情况下 :根据需要,修改如下内容
编写检查点的shell脚本 :编写完放上 工程A 工作空间下即可,点击构建就会下发新增的脚本
修改ftp_get.sh,将新增的shell脚本名添加进去:在 managed files中编辑
修改testall.sh,将新增的shell脚本名添加进去:编写完放上 工程A 工作空间下即可,点击构建就会下发新增的脚本
修改stabilitycsv.sh,将新增的shell脚本要记录的输出字段内容增加写入到csv中:在 managed files中编辑

3、如果要写入到csv文件,需做设置,在Build中添加 Execute managed script模拟如下:

这样就可以把每次执行的内容写到csv中,下载到window打开就是excel表格了
ftp_get,stabilitycsv.sh具体内容在 系统管理 --> Managed files中

常见问题

Q1:创建一个工程后,马上去查看工程目录, 发现没有
A:创建完,需要构建一次,才会生成目录

Q2:设置一台PBX的publish over ssh,配置好后,点击test configuration,报如下图错误

A:这个报错的原因是被测服务器不支持sftp,是因为pbx不支持sftp;但是ssh还是可以的;如果连接正常的可支持sftp的ubuntu服务器,就不会报这个错误
如果只是要用ssh的功能,直接用 SSH remote hosts也可以

猜你喜欢

转载自www.cnblogs.com/cixiafeibixia/p/10712489.html
今日推荐