“运筹‘维’幄之中 洞悉千里之外”
[做运维,要有呈现! 尤其是在这个“万物均互联,一切皆数据”的新时代。不管是对过程、还是结果,呈现是一个永不过时的命题。在庞大复杂的业务环境中,如何把复杂的工作流可视化,可视化能力就是呈现的关键了。可视化不仅是提升运维效率的一个手段,更是运维管理的一个长期战略。]
随着我们网络和流量越来越复杂,对外的情况越来越多,在网络报障时候,从最原始的 ping 和 mtr 情况到 smokeping 、 cacti 监控,然后到 zabbix 监控图,虽然一直在进步,但始终感觉不够专业。
怎么做的更专业点呢
我们虽然没有那么多显示器,但是内容还是可以做好的。我们从软实力来开始装饰我们的监控图,为什么是说“装饰”呢,我们现在大部分依赖的是 zabbix 监控网络流量和服务器情况,自建机房间监控系统来监控网络间质量,这两个系统的优点是又快又准,我们这次是把成果进行可视化,来“装饰”一下。
一、基于全国 map 的第三方机房网络质量可视
我们的机房遍布全国,同时面对全国玩家,该怎么把全国的网络质量情况尽收眼底呢?经过多年的技术沉淀,我们不再纠结监控方案用开源的还是商用的,打算自己来开发。
1 Echarts
用的是百度 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 + '
'+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 是通过百度地图提供的坐标来定义。
这个效果做出来之后,在对外的时候可以非常形象的体现出网络具体情况。
Map 监控可以代表当地省份玩家访问我们的游戏(机房)是否有问题,从而不用无头苍蝇一样的去定位问题。
重点在于如何去采集各个省份可靠和稳定的 IP ,我们这里结合很多种方法来采集,最大限度避免 IP 缺少或者不稳定的情况
采集的样本分为手动和自动,自动代表脚本采集,手动代表人为填充,自动的方法如下:
选择各大 top 排名网站进行解析,比如百度,爱奇艺等 选择第三方接口获取 IP :如听云(基调)、博睿、 DNSPOD 等 通过 IP 数据库把获得的 IP 进行测试、刷选,去重,最终导入到数据库进行 ping 测试 配合其他手段保证 IP 数据的准确性和有效性,比如脚本每两个小时重新获取一次,不稳定的 IP 手动进行剔除等
原文欢迎访问 blog: http://www.ywjt.org/index.php/archives/920