去哪儿网络设备运维平台

编辑: 2017-02-28 2121 次围观
0
作者介绍

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


背景

1. 运维工作量逐渐增大

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

2. 运维方式效率不高

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

3. 运维变更存在风险

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


概况介绍

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

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

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

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

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

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

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

blob.png


详细说明

运维平台架构图blob.png

平台数据流图

blob.png

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

(一)权限控制

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

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

Tips:

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

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


(二)操作及任务

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

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

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

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

  • 端口分配vlan;

  • 端口锁定防止操作;

blob.png

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

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

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

blob.png

Tips:

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

blob.png

(三)监控管理

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

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

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

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

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

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

blob.png

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

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

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

blob.png

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

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

blob.png

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

blob.png

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

blob.png


持续优化

blob.png


结语

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


相关推荐

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。