运维平台化之IDC机房机柜服务器拓扑图实现思路

前言:

       如今大点的公司,都会有个类似机房的机柜摆放图的系统,可能有太多兄弟的公司没有这样的东西,如果想开发咋办?   又想开发出一套自动生成的咋办?  跟着我简单的开发出一套吧 ~   有问题,大家mail我 ~  

Hello,更多的运维相关的文章请到 ,blog.xiaorui.cc !

    这个机房展现图,是没有啥难度的,我就详细的介绍下,该平台页面用到的一些流程处理和自动化方面的东西。


对于空机柜的显示:

其实这个项目,随便找个差不多的开发都可以做出来的 !  但是我相信看我博客的人,十个有九个是运维的朋友,他们肯定也很好奇这个东西是如何是实现的 ~

       首先这些服务器的图片的咋搞到的,可以去官网搞,也可以到zol那里拔图。

为了更好的展现服务器当前的状态,咱们可以归类几个状态。 比如正常状态下的power绿灯的闪耀,没开机状态下灯是灭的,服务器硬件出问题时候,服务器出问题正在维修的时候。

正常开机的状态:

没有开机的状态:

出问题的服务器状态:

已经联系了IBM dell hp厂商维修的状态:

至于其他的前端代码,就没啥了,其实就是填充数据,可以用jquery的tooltip组件,实现服务器的信息展现,不会让页面显示的杂乱!

别问我这些个数据,是自己手动填入的吗?

呵呵,肯定不会了,不然为啥说是自动化运维 ~

简单说下,在idc机柜拓扑方面的自动化理解 !

手动: 让世纪互联机房的兄弟们抄录摆放图,格式一定要是我们统一的格式。

如下:


让他们统计好了,我们简单看看格式问题,然后再验证下这次上线的情况,用提前从服务器抓到的数据进行对比序列号和型号后,从我们自己的接口上传excel文件,会自动解析插入到数据库中 !


其实这些东西最好还是半自动,毕竟每次的迁移也不是那么的复杂,又没有bat那样的规模!

参考下lldp的协议标准,只要在交换机端开放这个协议,我在客户端就可以抓到和定位自己的交换机型号和端口。 但这个东西不太适用于拓扑的自动化统计。

校验机柜的位置:

       在服务器端是无法得知机柜位置的,但是可以通过交换机来验证他的大体位置。因为交换机的位置是先前已经知道的,然后mac验证得出他在交换机是哪个端口,然后通过网络组的接口,知道哪些接口是在哪个机柜上。

呵呵,也只能做到这些了。

还有就是点击服务器的时候显示主机的状态,存活状态啥的,可以用saltstack的api去实现他。再外加一个ipmitool的modules,来确定他的硬件好坏。 当然这个状态不绝对,最少能确定他是能开机的,只是有可能系统问题不能ping通而已。

当然用zabbix的mysql取值也可以的,反正能让前端取到数据就行了。

实现的前端的部分代码:

<div class=”row” style=”width:2000px;”>
  <div class=”span3″  style=”border-style:solid;”>
         <h2>2021 机柜</h2>
         <table border=”0″>
               <tr style=”width:268px; height:50px;”>
                   <!– background=”33.png” style=”position: relative;” –>
                 <td><img src=”dl380.gif” alt=”10.2.20.111″ rel=”tooltip” data-original-title=’IP地址:10.2.20.111<br>状态:ok<br>ping status: ok<br>型号:Hp dl380<br>U数:23<br>system:Centos 6.4<br>项目组:私有云<br>项目负责人:tim gao<br>点击查看’></img></td>
               </tr>
               <tr style=”width:268px; height:60px;”>
                 <td><img src=”dl380.gif” alt=”10.2.20.112″ rel=”tooltip” data-original-title=’IP地址:10.2.20.112<br>状态:ok<br>ping status: ok<br>型号:Hp dl380<br>U数:23<br>system:Centos 6.4<br>项目组:私有云<br>项目负责人:tim gao<br>点击查看’></img></td>
               </tr>
               <tr  style=”width:268px; height:60px;”>
                 <td><img src=”dl380.gif” alt=”10.2.20.113″ rel=”tooltip” data-original-title=’IP地址:10.2.20.113<br>状态:ok<br>ping status: ok<br>型号:Hp dl380<br>U数:23<br>system:Centos 6.4<br>项目组:私有云<br>项目负责人:tim gao<br>点击查看’></img></td>
                  </tr>
               <tr  style=”width:268px; height:60px;”>
                 <td><img src=”dl380.gif” alt=”10.2.20.114″ rel=”tooltip” data-original-title=’IP地址:10.2.20.114<br>状态:ok<br>ping status: ok<br>型号:Hp dl380<br>U数:23<br>system:Centos 6.4<br>项目组:私有云<br>项目负责人:tim gao<br>点击查看’></img></td>
               </tr>
                <tr  style=”width:268px; height:60px;”>
                 <td><img src=”dl380.gif” alt=”10.2.20.115″ rel=”tooltip” data-original-title=’IP地址:10.2.20.115<br>状态:ok<br>ping status: ok<br>型号:Hp dl380<br>U数:23<br>system:Centos 6.4<br>项目组:私有云<br>项目负责人:tim gao<br>点击查看’></img></td>
               </tr>
                <tr  style=”width:268px; height:60px;”>
                 <td><img src=”dl380.gif” alt=”10.2.20.116″ rel=”tooltip” data-original-title=’IP地址:10.2.20.116<br>状态:ok<br>ping status: ok<br>型号:Hp dl380<br>U数:23<br>system:Centos 6.4<br>项目组:私有云<br>项目负责人:tim gao<br>点击查看’></img></td>
               </tr>                                                                                                                              
                <tr  style=”width:268px; height:60px;”>
                 <td><img src=”dl380.gif” alt=”10.2.20.117″ rel=”tooltip” data-original-title=’IP地址:10.2.20.117<br>状态:ok<br>ping status: ok<br>型号:Hp dl380<br>U数:23<br>system:Centos 6.4<br>项目组:私有云<br>项目负责人:tim gao<br>点击查看’></img></td>
               </tr>
                <tr  style=”width:268px; height:60px;”>
                 <td><img src=”dl380.gif” alt=”10.2.20.118″ rel=”tooltip” data-original-title=’IP地址:10.2.20.118<br>状态:ok<br>ping status: ok<br>型号:Hp dl380<br>U数:23<br>system:Centos 6.4<br>项目组:私有云<br>项目负责人:tim gao<br>点击查看’></img></td>
               </tr>
               <tr  style=”width:268px; height:60px;”>
                 <td><img src=”dl380.gif” alt=”10.2.20.119″ rel=”tooltip” data-original-title=’IP地址:10.2.20.119<br>状态:ok<br>ping status: ok<br>型号:Hp dl380<br>U数:23<br>system:Centos 6.4<br>项目组:私有云<br>项目负责人:tim gao<br>点击查看’></img></td>
               </tr>    
             </table>
       </div>

总结下:

       还是那句话,这东西随便找个开发都可以做出来,我这里也只是说下,自己对于IDC拓扑开发的理解,还有自动化方面的适用性,当然个人能力有限,想到的自动化很不健全 ~    还是那种走流程的方案,靠谱点 。

1.    让机房抄录摆放图,按照咱们接口中特定的格式。

2.    来了后,找个人确定下格式。

3.    把这个excel文件放到页面的验证接口,做验证。(服务器信息的验证,ip 型号 资产号 序列号、通过交换机接口验证他的大体机柜位置)

4.    插入到数据库中,并实现数据的展现。






对Golang感兴趣的朋友可以加群: 278517979 !!!
另外如果大家觉得文章对你有些作用! 如果想赏钱,可以用微信扫描下面的二维码, 感谢!
另外再次标注博客原地址  xiaorui.cc

1 Response

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">