人事题

  1. 你觉得你为什么可以胜任这份薪资?

通过自己不断的学习及总结自己的工作经验

  1. 你是如何学习新的知识的?

对于新知识的学习,一般需要参考官方文档来学习。
如果有比较权威的书也可以看一下, 不过看书只能扩大知识面,不能快速提高或者解决当下的问题。
另外我也关注了一些博客,比如廖雪峰的,阿里的李智慧的等等。

  1. 你在上家公司工作过程中遇到过什么困难?

  2. 你怎么评价你自己?用三个词来评价?

执着 担当 细心。

  1. 未来三年五年你的职业规划?

我未来三年到五年打算做Linux高级工程师,并且懂运维开发。

技术面试第一关

  1. 每天你作为运维每天工作都干嘛?

a. 看流量, 看报警,搭环境,改配置,处理开发人员的需求下午上线,做项目 (权限管理,集中分治,跳板机)
b. 内网的活,网络上不了网有时候也负责。
c. 处理windows的一些故障
d. 写文档

  1. 你是如何理解运维的?

最简单的就是运维,维护,除了维护之外还要负责运维流程,运维规范,运维职责,自动化,智能化

  1. 你们公司几个人,你负责哪一块,服务器数量,云主机,物理主机

物理主机:型号,cpu,内存…
云主机:阿里,腾讯…

  1. 阿里云服务器的使用

1)阿里云的开通,续费及密码管理
2)开发 及测试环境的搭建
3)域名管理
4)阿里云日常监控
5)日常工单处理

zabbix题目

  1. zabbix的版本?
    5.0 版本
    2. Zabbix运行条件?
    Server端:运行于LAMP上,对硬件的要求较低
    Agent:支持常见的OS: Linux, windows, Unix 对硬件要求较低。
    3. Zabbix有哪些组件? Zabbix agentd
    Zabbix
    sender
    Zabbix get
    Zabbix
    proxy
    Zabbix java gateway
    4. Zabbix邮件报警如何做?
    1. 安装邮件发送工具mailx
    2.配置zabbix服务端邮件报警
    3.设置zabbix用户报警邮箱地址
    4.设置zabbix触发报警的动作
    5.测试报警功能
    5. Zabbix微信报警如何做?
    1. 申请一个企业公众号
    2.在微信企业号上新建应用
    3.接口调用测试
    4.配置脚本
    5. Web界面新增报警媒介类型
    6.配置用户报警媒介信息
    7.测试是否成功
    6. Zabbix钉钉报警如何做?
    1. 创建钉钉机器人
    2.添加自定义机器人
    3.报警媒介类型
    4.配置动作(添加钉钉告警动作)
    5.配置用户告警媒介
    6.测试
    7.你在公司收到过哪些报警内容?
    以上报警方式自己选(邮件,微信,钉钉)
    8.你们的zabbix都监控哪些业务?
    1.磁盘空间
    2.磁盘IO
    3. CPU负载
    4.内存使用
    5.开机时间
    6. Web服务
    7.数据库状态
    9. Zabbix监控数据库的哪些项?
    必须监控的有: CPU负载,
    内存使用率,
    磁盘大小,
    I0读写,
    网络流量,
    Db端口流量,
    数据库客户端连接数。
    10. Zabbix监控web的哪些项?
    web整个检测中会收集如下数据
    1.整个web监控规则中的页面平均下载速度,秒为单位
    2.检测阶段发生的错误次数
    3.最后一个错误消息
    web检测的任何一个阶段都会收集如下数据
    1.每秒的下载速度
    2.响应时间
    3.响应代码(ttp code,如200、301等)
    11.内存的阈值如何设置?
    使用rcapadm的-C选项为内存上限执行设置不同的物理内存使用率值。
    rcapadm -C percent
    12. zabbix模板自己写还是用现成的,都用过哪些模板?
    Zabbix模板:
    Template App Zabbix Server
    Template OS Linux
    Templates TCP Connection Status .xml TCP链接监控模板
    Template Nginx Connection.xml nginx链接监控报警
    Template RabbitMQ Connection .xml RabbitMQ链接监控报警
    Template Mysql.xml MySQL监控报警
    13.如何添加主机?
    1. 首先监控的主机安装zabbix客户端
    2. Zabbix添加监控服务
    3.查看监控的主机图表
    14. Zabbix主动监控模式和被动监控模式有什么区别?
    主动: agent请求server获取主机的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy/(代理)。
    被动: server想agent请求获取监控项的数据,agent返回数据。

ELK题目

mysql题目

  1. MySQL主从同步原理

nginx配合php:工作Fastcgi源理Nginx不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用。FastCGl接口在Linux 下是socket (这个socket可以是文件socket,也可以是ip socket)。为了调用CGI程序,还需要一个FastCGl的wrapper (wrapper可以理解为用于启动另一个程序的程序), 这个wrapper绑定在某个固定socket上,如端口或者文件socket。当Nginx将CGI请求发送给这 个socket的时候,通过FastCGI接口, wrapper接收到请求,然后派生出一个新的线程,这个线程调用解释器或者外部程序处理脚本并读取返回数据;接着,wrapper再将返回的数据通过FastCGl接口,沿着固定的socket传递给Nginx;后,Nginx将返回的数据发送给客户端。这就是Nginx+FastCGI的整 个运作过程

  1. 简述MySQL主从复制原理,异步,半同步,增强半同步复制的区别

主从原理:
异步:主库写入-个事务commit提交并执行完之后,将日志记录到binlog,把结果反馈给客户端,后将日志传输到从库。
半同步:主库写入-个事务commit提交并执行完之后,并不直接将请求反馈给前端应用用户,而是等待从库也接收到binlog日志并成功写入中继日志后,主库才返回commit操作成功给客户端。增强半同步:这个新特性保证了主库和从库之间的数据完整性、一致性, 并不会带来任何副作用以及性能影响。

  1. mysql备份的工具

1) Xtrabackup
2) mysqldump
3) MySQL Backup Tool

  1. 简述Xtrabackup工作原理,以及如何一致性备份增量备份:

在完整备份和增量备份文件中都有一个文件xtrabackup_ _checkpoints会记录备 份完成时检查点的l SN (日志序号)。在进行新的增备份时,XtraBackup会比较表空间中每页的L _SN是否大于上次备份完成的L SN,如果是,则备份该页,并记录当前检查,点的LSN。如何进行一致性备份: 增量备份是基于全备的,第-次增备的数据必须要基于上一次的全备,之后的每次增备都是基于上一次的增备,最终达到一致性的增备。

  1. 简述MySQLdump.工作原理,以及如何进行一致性备份原理:

在执行mysqldump命令前, 在MySQL中执行set global general_ log = on来打开通用日志,该日志默认是关闭的。通用日志记录了MySQL服务器响应的所有SQL语句信息,mysqldump命令实际上是通过构造一系列SQL语询并发送到数据库服务器,利用服务器的响应信息从而构造出备份文件backup sql。
如何进行一致性备份: 在整个备份过程中可以向外提供服务,最重要的一点是可以解决碎片浪费。

  1. 简述造成主从数据不一致的原因及 解决办法原因:

1.数据冗余:假如数据库中两个表都放了用户的地址,在用户的地址发生改变时,如果只更新了一个表的数据,那么两个表就有了不一致的数据。
2.并发控制不当:假如在飞机票订票系统中,如果两个购票点同时查询某张机票的订购情况,且分别为订购了这张机票,如果并发控制不当,就会造成同一张机票卖给两个用户的情况。由于系统没有进行并发控制或者并发控制不当,造成数据不一致。
3.解决办法:要根据各种数据库维护手段(如转存、日志等) 和数据恢复措施将数据库恢复到某个正确的、完整的、一致性的状态下。

  1. 简述doublewrite的工作机制

doublewrite由两部分组成一部分为内存中的doublewrite buffer,其大小为2MB,另一部分是磁盘上共享表空间(ibdata x)中连续的128个页,即2个区(extent), 大小也是2M。
1、当-系列机制触发数据缓冲池中的脏页刷新时,环直接写入磁盘数据文件中,而而先拷贝至内存中的doublewrite buffer中;
2、接着从两次写缓冲区分两次写入磁盘共享表空间中(连续存储,顺序写,性能很高),每次写1MB;
3、待第二步完成后,再将doublewrite buffer中的脏页数据写入实际的各个表空间文件(离散写); (脏页数据固化后,即进行标记对应doublewrite数据可覆盖)

  1. MySQL半同步的实现及原理介于异步复制和全同步复制之间

主库在执行完客户端提交的事务后不是立刻返回给客户端,而是等待至少一个从库接收到并写到relay log中才返回给客户端。相对于异步复制,
半同步复制提高了数据的安全性,同时它也造成了一定程度的延迟,这个延迟最少是一个TCP/IP往返的时间.所以半同步复制最好在低延时的网络中使用。

  1. 你的数据库是如何备份的?本地备份和异地备份

首先结合本地数据存储过程,进行数据库系统本机自动备份,然后根据数据库异地备份安全性方向确定
实施数据传输或数据召唤步骤完成异地自动备份功能,完成备份服务器端数据库存储工作,最后定时对
工作主机和备份主机进行数据清理,删除往日过期备份数据,腾出介质空间,确保该方法长期有效执行。

  1. raid 0 1 5 10原理特点,性能区别。

raid0:存取速度快, 磁盘使用率100%风险高,数据容易秩
raid1:一边读取, 一边做校准备份,安全读写速度慢,磁盘使用率一半
raid5:读取速度快, 数据安全强磁盘损坏时,性能最差
raid6:加强数据保护 可用容量= (磁盘个数-2) *单个磁盘容量至少需要4块盘
raid10:兼顾速度与安全 容错率高磁盘数量过多,磁盘使用率一半

WEB题目( nginx tomcat apache )

  1. DNS原理?

当应用想要查询www的信息时,它就需要与本地的域名服务器进行联系,此时本地的域名服务器向根域的命名服务器发送一个请求, 查询www. baidu. com的地址;根命名服务器发现不属于自己的管辖区,而是属于com下的一个域,它就会通告去联系一个com区的命名 服务器以获得更多的信息,并发送一个所有com名字服务器的地址列表;本地的命名服务器会继续向这些服务器发送解析请求,而其中帧责com域的服务器判别是属于自己的区域,则将重复上述过程,直到找到解析www这台机器的域名服务并获得以www baidu .com命名计算机的IP地址

  1. http协议通信原理

HTTP协议超文本传输协议,指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。当我们在浏览器输入URL后,浏览器给Web服务器发送了一个Request, Web服务器接到Request后进行处理,生成相应的Response,然后发送给浏览器,浏览器解析Response中的HTML ,这样我们就看到了浏览器显示的网页内容。

  1. tcp/ip三次握手和四次挥手原理

三次握手:
1、请求连接
2、响应请求连接
3、确认接受响应,建立连接
四次挥手:
1、请求释放
2、收到请求,响应等待
3、完成,响应接受释放
4、响应彻底释放

  1. nginx反向代理,动静分离

  2. apache和nginx的区别?

Apache模块多,基本想到的都可以找到,更成熟,bug少, nginx的bug多。
Apache超稳定,是目前的主流,沣富的特性,成熟的技术和开发社区。
nginx并发能力强,可以设置反向代理

集群题目

  1. LVS的四种模式

1、DR (全内网)
2、NAT (全内网)
3、TUN (全外网IP)
4、Full-NAT (NAT模式的扩展 对外网映射一个IP)

shell脚本

  1. 服务器巡检,信息
  2. shell脚本思路
  3. 写一个脚本进行nginx日志统计,得到访问IP最多的前10个?

安全题目

  1. 如何做好防范DDOS攻击

1.了解DDOS技术
2.对网站做好DDOS压力测试
3.选择服务好、安全防护专业的IDC机房
4.架构里尽可能没有单点,做高可用部署时,前后端多放cache
5.系统和业务上的应用,性能和安全配置不要顶配。需要适度,否则,大流量之下会压垮整个架构。
6.预留平时可能增长30%流量的资源
7.网站架构优化,多用缓存
8.把尽可能多的内容放到CDN
9.如果公司有钱,可以通过DNS做跨机房策略,顶不住就切走。
10.软硬件的防护: web应用有自身的防攻击模块,iptables也可以做IP并发限制
11.保留攻击证据

  1. 出iptables预防ddos攻击策略?

1、限制syn的请求速度
2、允许外网每个IP最多15个初始连接超过的丢弃
3、允许单个IP访问服务器的80端口的最大连接数为20
4、对访问本机的22端口进行限制,每个ip每小时只能连接5次,超过的拒接,1小时候重新计算次数

1、说下公司的持续集成(CICD) ? 1、说下公司的持续集成?
开发环境、测试环境、发布是不是都是用的同一个jenkins。测试环境人员的权限如何分配?
开发和测试用的一个jenkins ,测试人员的权限单独账号设置单独项目管理,不同账号看到不同项目, 进行发布管理: 进行发布管理:

2,Docker有用到过吗? 码头有用到过吗?
上家公司用过,前期用docker单机做跑我们公司java应用,使用Docker-compose编排工具进行管理现在已经迁移到k8s集群统-管理 现在已经迁移到K8s集群统-管理