首发!GOPS2016上海站·海量运维技能挑战赛题目解析

9月23日GOPS2016上海站 ·海量运维技能挑战赛刚结束不久,作为学霸的你,是否还在回味当时的题目呢?小编特意奉上原题与解析思路,仅供参考。

Q1 故800分

从所有logsvr模块(5000台)服务器上对应的/data/logsvr/error*.log中找出”IO operation failed” 的行,再将对应的第四个字段值求和,并找出求和值大于1024的服务器数量。

评分要求:成功完成即可得800分。

目的: 考察shell的基本运用

考点:

1.  需要对文件情况进行基本判断

2.  熟练运用shell下的各种命令功能

3. 对awk有一定程度的了解及应用

4. 跨区域海量服务器管理能力解题思路:

1. 必须对目录是否存在,文件是否存在进行判断,避免执行错误

2. 采用逐步求精的方法,先获得文件,然后获得关键字行,继而获得指定列并累加,最后判断是否累加大于1024

Q2 大发  500+300

从上海区域的堡垒机,分发923MB的/data/datasvr_v1.tar.gz文件到广州datasvr(200台)和北美区域datasvr(200台)模块服务器的“/data/”目录下。

评分要求:如果完成对广州datasvr模块的分发,即可得500分,如果额外完成对北美区域datasvr模块下的服务器分发,再加300分。

目的:模拟大文件快速分发的场景

考点:

大文件,海量服务器批量分发的能力

解题思路:

通过类BT工具快速分发到各个业务服务器上

Q3 服500分

广州区域logicsvr模块下一共有1750台服务器,目前已经有500台服务器运行了logicsvr进程,现由于用户访问量剧增,需要完成logicsvr模块下剩余的1250台服务器的扩容。

扩容方法:修改/data/logicsvr/logicsvr.conf中的listen_addr配置为本机的内网ip,如listen_addr=192.168.1.100,然后再执行命令“/data/logicsvr/logicsvr”启动进程。

评分要求:所有服务器上的进程正常运行,即可得500分。

目的:模拟服务快速扩容的场景

考点:

1. 不依赖配置系统的情况下在海量服务器列表中快速确定某服务的iplist

2. 批量分发、布署的能力

3. 文本编辑工具的应用能力

解题思路:

1. 通过类Ansible工具扫描全网,确定已布署了logicsvr和未布署logicsvr的iplist

2. 从已布置的iplist提取出1个ip, 清理无效文件后(主要是日志)制作布署包

3. 通过Ansible等批量工具下发到未布署的iplist,拉起服务

4. 检查、确认布署结果,对失败的重做

Q4 在线600+600分

现需要采集广州、上海、北美3个区域onlinesvr模块(每个区域100台)的在线人数,记录在线人数的文件为:“/data/onlinesvr/online_svr.log”(文件内容为动态追加写入的数据),内容的格式为:时间戳,在线人数,如:1472193068,184。

答题要求:请分别将3个区域的在线人数按照对应的时间戳进行汇总,并将汇总后的数据追加写入到该区域堡垒机的文件:“/data/onlinesvr/online_sum”

评分要求:每个区域数据汇总正确即可得200分,三个区域正确可得600分,如使用实时汇总方案该区域再加200分。

目的:模拟在线监控的场景

考点:

1. 大量机器上获取数据的能力

2. 数据统计的能力

3. 实时数据采集、上报和汇总的能力

解题思路:

1. 非实时:从所有onlinesvr模块的机器上拉取指定的文件到对应的堡垒机,再按时间戳汇总统计后追加输出到指定的文件

2. 实时:在所有onlinesvr模块的机器上部署实时获取数据的脚本,实时上报到堡垒机的服务端,服务端实时汇总数据后追加写入到指定的文件

Q5 进800分

某业务在广州、上海、北美3个区域新上线了loginsvr模块(每个区域10台),程序部署在/data/loginsvr/目录下,进程名为“login_svr”,比赛开始20-25分钟期间此进程会不定期被kill,故需要将login_svr监控起来,/data/loginsvr/start_loginsvr.sh是启动login_svr进程的脚本。

评分要求:需计算出有多少台服务器被kill过,一共被kill过多少次,而且最终进程需是正常运行状态,答案正确即得800分。

考点:

1. 编写监控进程脚本能力

2. 简单跨区域汇总结果能力

解题思路:

1. 编写进程监控脚本,检测到进程不存在,执行启动脚本将其拉起,并记录拉起时间做标记

2. 批量分发到logsvr模块服务器,部署crontab,最小粒度监控周期

3. 用批量工具(Ansible)获取每台机器上监控脚本日志,日志不为空的服务器即为被kill的服务器数,同理,日志行数汇总后即可知道该模块下的进程共被拉起多少次

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/56111.html

(0)
上一篇 2021年8月7日
下一篇 2021年8月7日

相关推荐

发表回复

登录后才能评论