V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yennis
V2EX  ›  分享发现

第三方 IDC 监控可视化

  •  
  •   yennis · 2016-11-18 11:37:22 +08:00 · 2428 次点击
    这是一个创建于 2912 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    [做运维,要有呈现! 尤其是在这个“万物均互联,一切皆数据”的新时代。不管是对过程、还是结果,呈现是一个永不过时的命题。在庞大复杂的业务环境中,如何把复杂的工作流可视化,可视化能力就是呈现的关键了。可视化不仅是提升运维效率的一个手段,更是运维管理的一个长期战略。]

    随着我们网络和流量越来越复杂,对外的情况越来越多,在网络报障时候,从最原始的 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 是通过百度地图提供的坐标来定义。

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

    1. map 监控实现的难点

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

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

    采集的样本分为手动和自动,自动代表脚本采集,手动代表人为填充,自动的方法如下:

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

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

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2827 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 02:08 · PVG 10:08 · LAX 18:08 · JFK 21:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.