Linux运维工程师技术面试参考答案

  • A+
所属分类:求职面试

如何选择工具

一、对于服务器安全和监控,能推荐一些开源工具吗?监控好像也就nagios/cacti/zabbix,还有其他可以推荐的吗?安全方面如何监控?

监控工具各有各侧重点,zabbix同时支持snmp和自带agent,也支持自定义模板,在大部分场景下都是不错的选择。

另外,别把zabbix视为只能监控服务器信息,通过自定义的模板,也可以监控业务层面的指标。

安全监控分为主动检测,如Tenable Nessus,及IDS/IPS。

二、Linux运维中,系统版本都用什么版本?CentOS还是Ubuntu?为什么会选择这个版本?有做哪些测试?相比来说有啥优势?为什么会选择这个版本?

目前我们以CentOS为主。

不同Linux分支各有各特点,比如Ubuntu新版本发布较快,如果追求内核版本升级速度的话,可以考虑。

CentOS一直是我们的主要使用的Linux发行版,主要考虑到它的稳定性以及熟悉程度最高。

CentOS 一直是我们的主要 Linux 发行版,稳定性以及熟悉程度最高。

选择某个发行版时,要考虑它的生态,比如上下游的支持,还有一点,就是运维人员招聘的方便程度,国内熟悉 CentOS 的稍多一些。

三、对于使用缓存有什么推荐吗?一般就Redis/Codis。还有哪些比较好的开源软件?

对于类似session-id这样的可以非持久存储的数据,可以考虑用memcached,使用一致性哈希算法分布式存储。

四、做自动化发布,除Jenkins持续集成工具,还有哪些好用的工具呢?

目前所知道的,一般都是Hudson或者Jenkins,后者是前者分支出来的。

这些工具有丰富的插件,灵活使用这些插件才是关键所在。

五、问一个MySQL问题,三个版本(MySQL官方版、Percona Server以及MariaDB)建议使用哪个版本,原因?

我们一般使用的是官方版本。

主要是考虑到软件的支持和生态。

六、服务器日志收集和分析有什么好工具推荐?ELK有一点复杂,不太会用,有其他的推荐?

ELK确实是目前使用较广泛的日志收集和分析的工具。

虽然有些学习成本,但还是值得去研究和尝试的。

运维中遇到的问题

一、LVS和HAPROXY后端服务器规模可以做到什么程度,比如有多少个应用,多少台后端服务器?

这个取决于应用的类型,在实际业务场景下,需关注LVS等负载均衡器本身的连接数、PPS数据及延迟。

如果后端吞吐量比较大,可考虑LVS的DR模式。一般情况,负载均衡器不太会成为瓶颈。

二、对于涉及多个平台Unix/Linux/Windows的统一管理(认证,配置,服务)有什么好的解决方案或者思路么?

Unix/Linux支持OpenLDAP认证,这和Windows下的AD是兼容的。

配置和服务可考虑下开源的通用产品,比如Ansible或者Salt。

三、CentOS 6要如何做系统和网络优化?/etc/sysctl.conf中的这个参数net.ipv4.tcp_max_tw_buckets = 6000要如何设置,是越多越好吗?设置成16000?如net.ipv4.tcp_max_tw_buckets = 16000?

对于系统优化来说,要有针对性的。tcp_max_tw_buckets针对的是time wait bucket,如果系统中timewait状态较多,可考虑net.ipv4.tcp_tw_reuse和net.ipv4.tcp_tw_recycle这2个值调整。

另外,如果使用长连接对于减少该状态的连接数有效。

四、如有100多台服务器,大部分都是在提供业务的服务器,如何升级?除了停机维护,现在有什么比较好的解决方案吗?

如果本身的业务切分比较好,例如采用无状态的微服务等架构,可通过前端负载均衡器进行灰度升级。

如果应用做的不好,只有单台这种,或者集中式数据库,就比较麻烦了。

自动化运维相关工程师思维

一、可以说下什么是自动化运维,如何才算服务器做了自动化运维?包括哪些?自动化发布或是有问题可以回滚?

运维自动化是个仁者见仁智者见智的概念。我的理解运维自动化要打通从代码开发完到正式上线的所有环节,包括版本构建、打通自动测试、自动化上线以及自动化监控。

在这一个大命题下,可根据自己工作环境和自动化水平的不同,选择一两个痛点开始进行自动化实践。最后形成完整体系。

二、请问你主导运维自动化平台的功能设计和实施,是通过Python开发管理工具?另外,你们是重新开发呢,还是根据Saltstack之类的进行二次开发。

底层使用SSH协议建立服务器管理通道,上层使用PHP开发管理界面及封装一些常用操作,比如密码修改、脚本下发和执行等。

Docker与运维结合使用

一、Docker化对运维影响深远吗?

Docker化对运维有影响,它带来的影响包括:持续交付、微服务及DevOps理念的冲击。作为运维,我们要拥抱这一个变化,通过不断学习和实践来迎接这些挑战。

二、为何国内没有一家成熟Docker方案公布细节呢?

Docker还是个新生事物,各家使用的场景和模式有所不同,而且会有一些二次开发的管理系统和调度系统。

技术对比

一、作为运维人员,Python这样的脚本在进行系统管理和监控的时候相比Shell有怎样的优势?

作为高级编程语言,Python有非常丰富的库,包括核心库和第三方库,很多时候不需要自己造轮子;

相比较Shell,它有更好的控制力、重试机制,比如对Socket设置超时等等。

二、想问下只有一台服务器,运行多个应用,是用LVS做负载好还是Nginx?差别大吗?

你说的后端应用是基于HTTP或者HTTPS的吗?如果是的,且吞吐量不大的情况下,用Nginx即可;如果非HTTP或HTTPS的TCP应用,建议用LVS;如果HTTP或者HTTPS吞吐量特别大的情况下,用LVS DR模式。

与备份相关的一些问题

一、1000台机器规模,备份系统应该做到什么程度?

1000台机器,需要区分业务类型,如果类型单一,备份就比较好做了。如果类型较多,那么要考虑的地方包括:数据库更新的频率(全备+增量备份?还是只用全备)及数据备份的大小、数据集中归档要求。

二、备份怎么做的?上百T的图片、附件有什么高雅的备份方案?

在线备份这块,可考虑使用erasure coding算法,在增加一定可靠性的能力下,不至于导致备份存储的成本过高。同时需要考虑离线备份,比如磁带。

运维工程师的职业生涯

一、你觉得在未来,运维核心会是什么,预判、自动化或其他?

我觉得未来运维应该是智能化的。把现在需要人做的容量规划、扩缩容以及排障全部实现智能化。运维的任务是编程,把自己的能力灌输到机器上。

二、运维技术比较杂的,如何看待这种杂呢?给人感觉好像什么都会,对于工作5-6年运维来说,有什么好的学习建议呢?

  1. 加强自己编程能力,系统学习一门高级编程语言;
  2. 对自己技术薄弱点重点学习,比如系统学习网络知识;
  3. 看一些较好的运维技术书籍,学习别人干货。
  • 我的微博
  • 这是微博的扫一扫
  • weinxin
  • 微信公众
  • 微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:5   其中:访客  4   博主  1

    • avatar Begin 6

      希望以后面试成功~

      • avatar qiang 3

        签到成功!签到时间:今日的下午7:05:46,每日打卡,生活更精彩哦!

        • avatar 鱼丸粗面 2

          签到成功!签到时间:今日的上午10:16:51,每日打卡,生活更精彩哦!

          • avatar 章鱼资源网 1

            高手之间过招