IT运维管理,ITIL,ITSS,ITSM,ISO20000-ITIL先锋论坛

 找回密码
 立即注册 - 请先获取邀请码

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 114|回复: 0

[Zabbix专区] 运维篇--CMDB机柜平台如何结合zabbix告警展示

[复制链接]
来自- 湖南娄底

参加活动:0

组织活动:12

发表于 2017-9-3 10:27:00 | 显示全部楼层 |阅读模式 来自- 湖南娄底

最近看了刘天斯老师的机柜展示平台,非常绚丽,而且有大屏显示的话也是能够体现运维价值的,这里就说下我最近在做的CMDB平台的一些数据:


CMDB数据:

机房,机柜,机柜电源,机柜位置,机房合同,合同到期时间,机房联系人。


服务器,CPU,硬盘,是否虚拟化,宿主机,raid类型,内存。


资产ID,上架日期,下架记录,服务器代理商,代理商联系方式,服务器到保日期。


IP地址,MAC地址,业务线,产品线,操作系统。


通信这块主要技术json-rpc,然后提供Api接口给程序调用,按照固定格式导入即可;硬件固定信息,如IP,MAC,硬盘等信息,通过自动采集的API POST方式加入到数据表。像机房信息,机柜之类的可以给机房抄送一份excel表格然后直接导入即可。


  机房服务器展示:通过把刘天斯老师机柜暂时平台的前端拿过来,然后结合到表结构里面展示;在故障告警的时候,留有一个告警接口的API,通过zabbix 把告警数据发送到运维平台;运维平台入库告警展示:下面是前端简单展示效果,具体操作如下:


1.png

前端机柜生成效果显示:闪烁效果直接获取厂商的gif文件调用即可,机柜命名方式比如下面的:5-6,5-7就分别表示第五排第六,第七个机柜:


1.png


上面是正常显示,当出现故障时候:就结合zabbix 告警脚本,发送过去给接口,故障如下:

1.png
机房展示效果:

1.png
鼠标移动到机柜就显示服务器的相关信息:
1.png

zabbix 的告警脚本并且发送状态到运维平台,并且更改服务器状态:

[size=1em]1

[size=1em]2

[size=1em]3

[size=1em]4

[size=1em]5

[size=1em]6

[size=1em]7

[size=1em]8

[size=1em]9

[size=1em]10

[size=1em]11

[size=1em]12

[size=1em]13

[size=1em]14

[size=1em]15

[size=1em]16

[size=1em]17

[size=1em]18

[size=1em]19

[size=1em]20

[size=1em]21

[size=1em]22

[size=1em]23

[size=1em]24

[size=1em]25

[size=1em]26

[size=1em]27

[size=1em]28

[size=1em]29

[size=1em]30

[size=1em]31

[size=1em]32

[size=1em]33

[size=1em]34

[size=1em]35

[size=1em]36

[size=1em]37

[size=1em]38

[size=1em]39

[size=1em]40

[size=1em]41

[size=1em]42

[size=1em]43

[size=1em]44

[size=1em]45

[size=1em]46

[size=1em]47

[size=1em]48

[size=1em][root@controller alertscripts]# cat zabbix_alert.py
[size=1em]#!/usr/bin/python
[size=1em]#coding:utf-8
[size=1em]import requests,json
[size=1em]import smtplib
[size=1em]from email.mime.text import MIMEText
[size=1em]import sys
[size=1em]  
[size=1em]#邮箱服务器地址
[size=1em]mail_host = 'smtp.163.com'
[size=1em]#邮箱用户名
[size=1em]mail_user = 'xxxxx@163.com'
[size=1em]#邮箱密码
[size=1em]mail_pass = 'xxxxxx123456'
[size=1em]mail_postfix = '163.com'
[size=1em]  
[size=1em]def send_mail(to_list,subject,content):
[size=1em]    me = mail_user+"<"+mail_user+"@"+mail_postfix+">"
[size=1em]    msg = MIMEText(content)
[size=1em]    msg['Subject'] = subject
[size=1em]    msg['From'] = me
[size=1em]    msg['to'] = to_list
[size=1em]  
[size=1em]    try:
[size=1em]        s = smtplib.SMTP()
[size=1em]        s.connect(mail_host)
[size=1em]        s.login(mail_user,mail_pass)
[size=1em]        s.sendmail(me,to_list,msg.as_string())
[size=1em]        s.close()
[size=1em]        return True
[size=1em]    except Exception,e:
[size=1em]        print str(e)
[size=1em]        return False
[size=1em]def alert(message):
[size=1em]    headers = {"Content-Type": "application/json"}
[size=1em]    data = {}
[size=1em]    res = {}
[size=1em]    data['status'] = message
[size=1em]    res['params']=data
[size=1em]    res['jsonrpc'] = "2.0"
[size=1em]    res["id"] = 1
[size=1em]    res["method"]= "alert.turn"
[size=1em]    url = "http://192.168.63.216:2000/api"
[size=1em]    r = requests.post(url, headers=headers,json=res)
[size=1em]  
[size=1em]if __name__ == "__main__":
[size=1em]    send_mail(sys.argv[1], sys.argv[2], sys.argv[3])
[size=1em]    alert(sys.argv[2])

后端返回状态改变之后直接入库修改,我这边只是判断是否主题是PROBLEM或者OK:


前端代码可以按照刘天斯老师的然后自己修改成jquery即可,前端可以去自由发挥,如下简单样例:


[size=1em]1

[size=1em]2

[size=1em]3

[size=1em]4

[size=1em]5

[size=1em]6

[size=1em]7

[size=1em]8

[size=1em]9

[size=1em]10

[size=1em]11

[size=1em]12

[size=1em]13

[size=1em]14

[size=1em]15

[size=1em]16

[size=1em]17

[size=1em]18

[size=1em]19

[size=1em]20

[size=1em]21

[size=1em]22

[size=1em]23

[size=1em]<table border="0" cellpadding="1" cellspacing="0" height="440" width="99%">   
[size=1em]<tbody><tr>   
[size=1em]<td class="jgtable" align="center" height="30" valign="bottom"><font class="jgtitle">01</font></td></tr>      
[size=1em]<td class="jgtable" align="center" height="30" valign="bottom">&nbsp;   
[size=1em]</td>   
[size=1em]</tr>   
[size=1em]<tr>   
[size=1em]<td class="jgtable" align="center" height="30" valign="bottom">&nbsp;   
[size=1em]</td>   
[size=1em]</tr>   
[size=1em]<tr>   
[size=1em]<td class="jgtable" align="center" height="30" valign="bottom">&nbsp;   
[size=1em]</td>   
[size=1em]</tr>   
[size=1em]<tr>   
[size=1em]<td class="jgtable" align="center" height="30" valign="bottom">&nbsp;   
[size=1em]</td>   
[size=1em]</tr>   
[size=1em]<tr>   
[size=1em]<td class="jgtable" align="center" height="30" valign="bottom">&nbsp;   
[size=1em]</td>   
[size=1em]</tr>   
[size=1em]</tbody></table>

   原创:小罗


本版积分规则

团购课程最新动态

 

 

高品质!好口碑!

百分百通过率!

PeopleCertEXIN

国际授权资质!

ITIL Foundation北上广

2天精华班,包证书

ITIL Foundation三天精

讲,知名讲师,包证书

ITIL Expert 金牌讲师北

上广深11天,包证书

DevOps Foundation

2天热点认证班,包证书

ITSS 认证IT服务经理

4天课程,包证书

Prince2双证4天高级班

Cobit高端课程2天班

Togaf高端课程4天班

 

报名热线: 4008-060-230


QQ|小黑屋|手机版|Archiver|ITIL先锋论坛万人社区 ( 粤ICP备17056641号|网站地图

Baidu

GMT+8, 2018-2-20 23:40 , Processed in 0.167633 second(s), 37 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表