运维平台化之IDC机柜拓扑及数据展现实现思路

简介:

前言:

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

    无难度,只是简单介绍下,该运维平台用到的一些流程处理和自动化方面的东西。

142819631.png


对于空机柜的显示:

232146699.png



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

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

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


正常开机的状态:

143406705.gif


225254454.gif


没有开机的状态:

143308383.png


出问题的服务器状态:


143503691.png


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

143543680.png


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

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

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

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

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

如下:


151213714.png


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


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

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


校验机柜的位置:

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

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


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

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


实现的前端的部分代码:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<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>


blog:http://rfyiamcool.blog.51cto.com/1030776/1346389


总结下:

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


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

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

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

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




 本文转自 rfyiamcool 51CTO博客,原文链接:http://blog.51cto.com/rfyiamcool/1346389,如需转载请自行联系原作者



相关文章
|
3月前
|
缓存 运维 监控
打造稳定高效的数据引擎:数据库服务器运维最佳实践全解析
打造稳定高效的数据引擎:数据库服务器运维最佳实践全解析
|
3月前
|
运维 Kubernetes 监控
|
4月前
|
存储 C++ 容器
开发与运维数组问题之C++标准库中提供数据容器作为数组的替代如何解决
开发与运维数组问题之C++标准库中提供数据容器作为数组的替代如何解决
53 5
|
4月前
|
运维
开发与运维数据问题之LangChain增强大语言模型的能力如何解决
开发与运维数据问题之LangChain增强大语言模型的能力如何解决
39 1
|
4月前
|
API 运维
开发与运维数据问题之LangChain帮助处理长篇报告如何解决
开发与运维数据问题之LangChain帮助处理长篇报告如何解决
65 1
|
4月前
|
监控 搜索推荐 机器人
开发与运维数据问题之LangChain帮助提升GPT-4的实用性的如何解决
开发与运维数据问题之LangChain帮助提升GPT-4的实用性的如何解决
45 1
|
4月前
|
监控 C++ 运维
开发与运维数据问题之实现商业版和开源版在发送可观测数据方面的差异如何解决
开发与运维数据问题之实现商业版和开源版在发送可观测数据方面的差异如何解决
55 1
|
4月前
|
设计模式 监控 Go
开发与运维C++问题之C++部分原有的数据发送能力如何解决
开发与运维C++问题之C++部分原有的数据发送能力如何解决
26 1
|
4月前
|
存储 数据格式 运维
开发与运维C++问题之更改数据模型为通用数据结构如何解决
开发与运维C++问题之更改数据模型为通用数据结构如何解决
27 1
|
4月前
|
分布式计算 运维 DataWorks
MaxCompute操作报错合集之用户已在DataWorks项目中,并有项目的开发和运维权限,下载数据时遇到报错,该如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。