去哪儿网络设备运维平台

作者介绍
去哪儿网络设备运维平台

刘亮,2014年加入去哪儿,毕业于中科院软件所,曾在百度做硬件运维和研发相关工作,目前主要负责Qunar硬件运维工具及平台开发工作。

背景
去哪儿网络设备运维平台

1. 运维工作量逐渐增大

最近几年,Qunar的网络设备数量逐年增加,但是NetOps的人员还一直维持在很少的几个人,单人运维工作量持续增大;

2. 运维方式效率不高

目前变更操作基于命令行和脚本进行,需要NetOps手动登录目标设备和执行操作,操作内容包含大量简单和重复的操作;

3. 运维变更存在风险

基于命令行和脚本的变更操作一旦操作疏忽会导致不可估量的风险,除此之外,是谁进行了什么操作,也没有记录,不利于操作审计核查。

概况介绍
去哪儿网络设备运维平台

基于上述背景考虑,给出相应的优化思路,如下:

  • 工具命令集成。将运维常用工具和命令集成到平台和服务中,让平台来执行频繁的重复操作;

  • 操作自动化。分解常见的运维内容为基础指令集,集成到平台中为一系列的可自动执行的任务列表;

  • 操作逻辑智能检测。对操作预检查,杜绝不可控的变更,原子操作,闭包检查,杜绝异常操作,异常自动回滚;

  • 操作权限分级控制。任务和用户双向权限分级,不同的操作内容设定不同的权限才可操作,不同的登录用户赋予不同的权限,如此来防止不可控的用户操作;

  • 操作记录追踪审计。记录每项操作的执行人,内容,时间和结果到数据库,对操作可后期审计,异常操作追溯。 

结合上述优化思路和NetOps日常运维内容,我们上线了Qunar网络设备运维平台。平台截图如下:

去哪儿网络设备运维平台

详细说明
去哪儿网络设备运维平台

运维平台架构图去哪儿网络设备运维平台

平台数据流图

去哪儿网络设备运维平台

下面逐一介绍平台各个模块

(一)权限控制

  • 操作权限分级,总共分为5级,权限从低到高分别为访客,只读,读写,管理员和超级管理员;

  • 具体原子操作绑定对应级别的权限上,譬如访客只能查看有限的信息,只读用户可以执行读设备信息操作等等;

Tips:

  • 高权限可以赋予比自己低的权限给其他用户,可以查看自己授权的用户的操作日志。用户不能查看和自己相同权限或比自己权限高用户操作日志。

  • 同一个待授权的用户可以多次被授予不同级别的临时权限,在完成指定操作之后,撤销授权。在保证安全性的同时保证灵活性。

(二)操作及任务

本平台可支持如下的自动化操作:

  • 扫描抓取核心交换机和接入交换机关联关系;

  • 抓取,备份,同步交换机全局和各个端口配置配置数据;

  • 端口up/down,修改端口描述,修改端口速率,端口置为trunk;

  • 端口分配vlan;

  • 端口锁定防止操作;

去哪儿网络设备运维平台

用户确认执行某项操作后,平台立即启动对应的celery任务。本平台任务分为两类任务:

  • 及时任务。任何平台支持的自动化运维操作对应一项celery及时任务。用户确认操作后,celery启动对应的任务,保证任务执行正确性,如果执行异常,回滚并警告用户。单个设备操作任务事实上也是自动ssh到目标机器上执行相应网络设备变更命令。

  • 定时任务。将一些日常运维操作映射为平台内置定时任务,可以由用户手动触发一次性或循环定时操作。

去哪儿网络设备运维平台

Tips:

所有任务均会自动记录详细日志,用户视权限在日志模块查询相应的操作日志。

去哪儿网络设备运维平台

(三)监控管理

本平台监控两类数据,一类是网络层次,粒度的是交换机和关联的接入交换机组成的小集群;一类是设备层次,粒度是单个交换机端口。 

对于网络层次监控,基础数据来源于各个交换机端口监控数据,基于核心交换机和接入交换机关联数据通过weathermap绘图,在平台上渲染展示出来。

平台可以基于设备基础信息进行自动发现:

  • 发现核心交换机和接入交换机关联关系,绘拓扑图;

  • 发现各端口状态,发现端口异常状态,譬如端口;

  • 发现各端口间流量负载情况,发现流量异常情况;

去哪儿网络设备运维平台

如上图所示,各个设备之间连接流量负载一目了然,灰色表示没有流量,绿色为负载正常,红色表示负载过重。 

对于设备端口指标监控,基于collectd的snmp远程抓取来实现。用户在平台上管理和配置设备监控指标和模板。指标和模板变更后,平台自动通知Marathon平台更新collectd抓取集群上的抓取Docker实例。

设备监控指标数据抓取架构如下:

去哪儿网络设备运维平台

平台监控配置有如下特点:

配置灵活高效。可以从指标,模板,匹配规则三个维度进行配置,一旦配置完毕,新增同类新机器上架,老机器下架监控自动更新;

去哪儿网络设备运维平台

动态扩容,负载均衡。使用Docker和marathon实现抓取集群的动态扩容和负载均衡;单collectd抓取实例抓取多台网络设备指标,单抓取机启动多个抓取实例,每个机房多台抓取机来实现负载均衡。

去哪儿网络设备运维平台

Watcher上设备监控指标图如下:

去哪儿网络设备运维平台

持续优化
去哪儿网络设备运维平台

去哪儿网络设备运维平台

结语
去哪儿网络设备运维平台

Qunar网络设备运维平台为了解决实际运维工作出现的难题而生,提高了运维效率,降低了操作风险,优化了运维流程。后续将针对NetOps面对的更复杂的问题快速迭代和持续优化。

本文首发于Qunar技术沙龙微信公众号,已获授权。

ArchSummit全球架构师峰会将在2016年12月2日-3日于北京开幕

去哪儿网络设备运维平台ArchSummit 2016北京站官网。