共计 3289 个字符,预计需要花费 9 分钟才能阅读完成。
最近看了刘天斯老师的机柜展示平台,非常绚丽,而且有大屏显示的话也是能够体现运维价值的,这里就说下我最近在做的 CMDB 平台的一些数据:
CMDB 数据:
机房,机柜,机柜电源,机柜位置,机房合同,合同到期时间,机房联系人。
服务器,CPU, 硬盘,是否虚拟化,宿主机,raid 类型,内存。
资产 ID,上架日期,下架记录,服务器代理商,代理商联系方式,服务器到保日期。
IP 地址,MAC 地址,业务线,产品线,操作系统。
通信这块主要技术 json-rpc, 然后提供 Api 接口给程序调用,按照固定格式导入即可;硬件固定信息, 如 IP,MAC,硬盘等信息,通过自动采集的 API POST 方式加入到数据表。像机房信息,机柜之类的可以给机房抄送一份 excel 表格然后直接导入即可。
机房服务器展示:通过把刘天斯老师机柜暂时平台的前端拿过来,然后结合到表结构里面展示;在故障告警的时候,留有一个告警接口的 API,通过 zabbix 把告警数据发送到运维平台;运维平台入库告警展示: 下面是前端简单展示效果,具体操作如下:
前端机柜生成效果显示: 闪烁效果直接获取厂商的 gif 文件调用即可,机柜命名方式比如下面的:5-6,5- 7 就分别表示第五排第六,第七个机柜:
上面是正常显示,当出现故障时候:就结合 zabbix 告警脚本,发送过去给接口,故障如下:
机房展示效果:
鼠标移动到机柜就显示服务器的相关信息:
zabbix 的告警脚本并且发送状态到运维平台,并且更改服务器状态:
[root@controller alertscripts]
# cat zabbix_alert.py
#!/usr/bin/python
#coding:utf-8
import
requests,json
import
smtplib
from
email.mime.text
import
MIMEText
import
sys
# 邮箱服务器地址
mail_host
=
'smtp.163.com'
# 邮箱用户名
mail_user
=
'xxxxx@163.com'
# 邮箱密码
mail_pass
=
'xxxxxx123456'
mail_postfix
=
'163.com'
def
send_mail(to_list,subject,content):
me
=
mail_user
+
"<"
+
mail_user
+
"@"
+
mail_postfix
+
">"
msg
=
MIMEText(content)
msg[
'Subject'
]
=
subject
msg[
'From'
]
=
me
msg[
'to'
]
=
to_list
try
:
s
=
smtplib.SMTP()
s.connect(mail_host)
s.login(mail_user,mail_pass)
s.sendmail(me,to_list,msg.as_string())
s.close()
return
True
except
Exception,e:
print
str
(e)
return
False
def
alert(message):
headers
=
{
"Content-Type"
:
"application/json"
}
data
=
{}
res
=
{}
data[
'status'
]
=
message
res[
'params'
]
=
data
res[
'jsonrpc'
]
=
"2.0"
res[
"id"
]
=
1
res[
"method"
]
=
"alert.turn"
url
=
"http://192.168.63.216:2000/api"
r
=
requests.post(url, headers
=
headers,json
=
res)
if
__name__
=
=
"__main__"
:
send_mail(sys.argv[
1
], sys.argv[
2
], sys.argv[
3
])
alert(sys.argv[
2
])
后端返回状态改变之后直接入库修改,我这边只是判断是否主题是 PROBLEM 或者 OK:
前端代码可以按照刘天斯老师的然后自己修改成 jquery 即可,前端可以去自由发挥,如下简单样例:
<
table
border
=
"0"
cellpadding
=
"1"
cellspacing
=
"0"
height
=
"440"
width
=
"99%"
>
<
tbody
><
tr
>
<
td
class
=
"jgtable"
align
=
"center"
height
=
"30"
valign
=
"bottom"
><
font
class
=
"jgtitle"
>01</
font
></
td
></
tr
>
<
td
class
=
"jgtable"
align
=
"center"
height
=
"30"
valign
=
"bottom"
>
</
td
>
</
tr
>
<
tr
>
<
td
class
=
"jgtable"
align
=
"center"
height
=
"30"
valign
=
"bottom"
>
</
td
>
</
tr
>
<
tr
>
<
td
class
=
"jgtable"
align
=
"center"
height
=
"30"
valign
=
"bottom"
>
</
td
>
</
tr
>
<
tr
>
<
td
class
=
"jgtable"
align
=
"center"
height
=
"30"
valign
=
"bottom"
>
</
td
>
</
tr
>
<
tr
>
<
td
class
=
"jgtable"
align
=
"center"
height
=
"30"
valign
=
"bottom"
>
</
td
>
</
tr
>
</
tbody
></
table
>
一些 Zabbix 相关教程集合:
Ubuntu 14.04 下 Zabbix2.4.5 源码编译安装 http://www.linuxidc.com/Linux/2015-05/117657.htm
CentOS 7 LNMP 环境搭建 Zabbix3.0 http://www.linuxidc.com/Linux/2017-02/140134.htm
Ubuntu 16.04 安装部署监控系统 Zabbix2.4 http://www.linuxidc.com/Linux/2017-03/141436.htm
CentOS 6.6 搭建 Zabbix 3.0.3 过程 http://www.linuxidc.com/Linux/2017-04/142839.htm
Zabbix 监控安装部署及警报配置 http://www.linuxidc.com/Linux/2017-03/141611.htm
Ubuntu 16.04 下安装部署 Zabbix3.0 http://www.linuxidc.com/Linux/2017-02/140395.htm
CentOS 6.3 下 Zabbix 监控 apache server-status http://www.linuxidc.com/Linux/2013-05/84740.htm
CentOS 7 下 Zabbix 3.0 安装详解 http://www.linuxidc.com/Linux/2017-03/141716.htm
64 位 CentOS 6.2 下安装 Zabbix 2.0.6 http://www.linuxidc.com/Linux/2014-11/109541.htm
CentOS 7.2 下搭建 Zabbix 3.2 实践图解教程 http://www.linuxidc.com/Linux/2017-03/142077.htm
ZABBIX 的详细介绍:请点这里
ZABBIX 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-05/143371.htm