运筹'维'幄之中 洞悉千里之外——第三方IDC监控可视化

Yennis 发布于 2016/11/18 11:32
阅读 523
收藏 2

运筹‘维’幄之中 洞悉千里之外

[做运维,要有呈现! 尤其是在这个“万物均互联,一切皆数据”的新时代。不管是对过程、还是结果,呈现是一个永不过时的命题。在庞大复杂的业务环境中,如何把复杂的工作流可视化,可视化能力就是呈现的关键了。可视化不仅是提升运维效率的一个手段,更是运维管理的一个长期战略。]人总得有那么个理想才足以支撑着现实,前进的步伐才愈发有动力。曾幻想着以后的工作环境会有这么一幕,凡是有空间的地方都布满了显示器,放眼望去,显示屏里那妖娆多姿的“红黄蓝绿橙”呈现的是众多服务器的监控数据。整个架势看起来特别牛的样子。

6%e5%9b%be%e4%b8%80

特别是以下这个光头哥就像在控制着全部的流量,多潇洒!

(当然不是做运维做到没头发滴。。。哈哈)

6%e5%9b%be%e4%ba%8c

这个画风在外行人看来,还是颇有傲娇范的。(反正你不懂,看起来就是高大上)

灵感源于“看电视”

随着我们网络和流量越来越复杂,对外的情况越来越多,在网络报障时候,从最原始的ping和mtr情况到smokeping、cacti监控,然后到zabbix监控图,虽然一直在进步,但始终感觉不够专业。

怎么做的更专业点呢,过年时候看到央视新闻联播的“据”说过年,春节期间的迁徙地图,有点焕然一新的感觉:

6%e5%9b%be%e4%b8%89

灵感来了!

我们虽然没有那么多显示器,但是内容还是可以做好的。我们从软实力来开始装饰我们的监控图,为什么是说“装饰”呢,我们现在大部分依赖的是zabbix监控网络流量和服务器情况,自建机房间监控系统来监控网络间质量,这两个系统的优点是又快又准,我们这次是把成果进行可视化,来“装饰”一下。

 

一、基于全国map的第三方机房网络质量可视

 

我们的机房遍布全国,同时面对全国玩家,该怎么把全国的网络质量情况尽收眼底呢?经过多年的技术沉淀,我们不再纠结监控方案用开源的还是商用的,打算自己来开发。

 

1 Echarts

这个效果得感谢新闻联播“’据’说中国”给的灵感了,先来一个动态效果图

map%e7%9b%91%e6%8e%a7%e5%9b%be

用的是百度echarts的模拟迁徙效果,度娘这次挺赞的,这个插件感觉很不错,参考地址:http://echarts.baidu.com/echarts2/doc/doc.html

我们是用python做的后端,下面简单记录下开发时候碰到的一些细节问题供大家参考。

1、在option里面定义tooltip,当鼠标放在监控点上,而且我们提供的数据源是”1”的时候,进行友好提醒ping正常;
tooltip : {
            trigger: 'item',
            formatter: function (params){
                var r=""; if(params.value == 1){
                    var r="ping正常";
                } return params.name + '<br/>'+r
        }

 

2、dataRange里面用splitList字段分了3个等级,我们的参考值:

 

splitList: [
            {start: 90, label: '严重(loss=>18% or ms =>150)'},
            {start: 40, end: 60, label: '警告(10%<loss<18% or 80<ms<150)', color: 'orange'},
            {end: 10,label:'正常(loss<=10% and ms <= 80ms)'}
        ],
        color: ['#ff3333', 'orange', 'yellow','lime','#51D645'],

3、series里面提供的data是我们后端提供的,原始数据是由各个机房的fping汇总得来的。

4、series里面的geoCoord是通过百度地图提供的坐标来定义。

这个效果做出来之后,在对外的时候可以非常形象的体现出网络具体情况。

 

2. map监控实现的难点

 

Map监控可以代表当地省份玩家访问我们的游戏(机房)是否有问题,从而不用无头苍蝇一样的去定位问题。

重点在于如何去采集各个省份可靠和稳定的IP,我们这里结合很多种方法来采集,最大限度避免IP缺少或者不稳定的情况

6%e5%9b%be%e4%b9%9d

上图是一个采集的样本,从图中可以看到分为手动和自动,自动代表脚本采集,手动代表人为填充,自动的方法如下:

  1. 选择各大top排名网站进行解析,比如百度,爱奇艺等
  2. 选择第三方接口获取IP:如听云(基调)、博睿、DNSPOD等
  3. 通过IP数据库把获得的IP进行测试、刷选,去重,最终导入到数据库进行ping测试
  4. 配合其他手段保证IP数据的准确性和有效性,比如脚本每两个小时重新获取一次,不稳定的IP手动进行剔除等

原文欢迎访问blog: http://www.ywjt.org/index.php/archives/920


加载中
返回顶部
顶部