您现在的位置是:百科 >>正文
基于WEB的运维管理系统
百科29173人已围观
简介凌晨两点,监控大屏突然弹出红色告警:三台Nginx节点同时掉线。值班同事在群里发了个问号,然后打开浏览器,登录运维系统,点了几下,五分钟内完成了流量切换和节点重启。这套系统是我们去年自己写的,基于We ...
凌晨两点,基于监控大屏突然弹出红色告警:三台Nginx节点同时掉线。管理值班同事在群里发了个问号,系统然后打开浏览器,基于登录运维系统,管理点了几下,系统五分钟内完成了流量切换和节点重启。基于这套系统是管理我们去年自己写的,基于Web,系统跑在内网,基于界面谈不上好看,管理但管用。系统
为什么不用现成的基于商业软件?试过。Zabbix监控够强,管理但配置项多到让人头疼;Ansible Tower功能全,系统可每次批量执行任务都要写Playbook,开发同事嫌麻烦。更关键的是,我们有一堆内部系统——CMDB、发布平台、日志中心——数据格式各不一样,商业工具很难把它们串起来。于是决定自己造轮子,用Python Flask做后端,前端直接上Vue,数据库选了PostgreSQL,部署在Docker里。
系统核心就三块:资产发现、任务编排、权限控制。资产发现这块,我写了个定时脚本,每十分钟扫一遍网段,把新上线的机器自动注册进CMDB。以前手动录入一台服务器要填二十几个字段,现在扫到IP后,系统自动拉取主机名、操作系统、开放端口,运维只需要补个负责人和业务标签。有个细节挺有意思:我们给每台机器生成了一个二维码,贴在机柜上,手机扫一下就能跳转到该机器的详情页,重启、看日志、连SSH,全在浏览器里完成。
任务编排是使用频率最高的模块。比如发布新版本,以前要登录五台机器,依次执行git pull、pip install、systemctl restart。现在在Web界面上选好机器组,点“执行”,后台用Celery分发任务,进度实时回传。失败了怎么办?系统会自动回滚到上一个版本,并给负责人发企微消息。上个月有个新同事误点了生产环境的“全量重启”,结果系统弹出了二次确认框,还要求输入“RESTART”才能继续。他愣了半天,最后放弃了。这个设计救了我们一次。
权限控制没用什么RBAC模型,太复杂。我们按“业务线+环境”划分,开发只能看自己业务的日志和监控,运维有全部机器的操作权限,但所有敏感操作都会录屏——对,就是字面意义上的录屏,用WebRTC把操作过程录下来,存到对象存储里,保留三十天。有人觉得这侵犯隐私,但出了事故回放录像,比翻聊天记录快多了。
这套系统上线八个月,最直接的改变是:以前处理故障平均要十五分钟,现在压到了四分钟以内。不是因为技术多先进,而是把常用的操作路径缩短了。比如查日志,以前要SSH登录,cd到目录,tail -f,现在页面上直接搜关键字,支持正则,还能高亮。有个老运维跟我说,他现在很少打开终端了,除了写脚本的时候。
当然也有坑。WebSocket在弱网环境下老断连,后来加了心跳重连和消息队列兜底。还有一次数据库连接池满了,导致整个系统卡死,排查发现是某个定时任务没关连接。现在每个任务执行完都会强制释放资源,算是吃一堑长一智。
如果你也在考虑自建运维系统,我的建议是:别一上来就追求大而全。先解决最痛的那个点——比如批量执行命令,或者统一日志查询——把它做到极致,然后再慢慢加功能。我们第一版只有资产管理和命令下发,连权限都没有,但已经比手动登录强太多了。工具是长出来的,不是设计出来的。
Tags:
上一篇:正版全平台内容系统骗局
下一篇:kb123456生活从这里开始
相关文章
李继耐之子李磊涉嫌严重违纪
百科李继耐之子李磊涉嫌严重违纪的消息,在军队系统内部传开的那天,我正巧和一位转业的老战友吃饭。他放下筷子,第一句话是:“这回怕是要动真格的了。”老战友在部队干了二十年,见过不少风浪,但他脸上那种复杂的表情 ...
【百科】
阅读更多超级加密3000激活码大全
百科《超级加密3000激活码大全》 我花了三天三夜,翻遍了暗网角落和俄语论坛的深层链接,找到的所谓“激活码”十有八九是假的。剩下那一成,要么过期,要么是别人机器上绑定的硬件指纹。超级加密3000这软件,激 ...
【百科】
阅读更多网货在线交易平台
百科凌晨两点,我在网货在线交易平台上下了一单云南咖啡豆。下单前,我看了十七个卖家的评价,对比了五家物流报价,还跟一个昆明卖家聊了半小时,确认他家的豆子确实是今年新采的。这过程流畅得像在逛一个巨大的线上集市 ...
【百科】
阅读更多