运维面试必问的监控系列高频面试题(2021年最新版)

您所在的位置:网站首页 运维面试常见问题 运维面试必问的监控系列高频面试题(2021年最新版)

运维面试必问的监控系列高频面试题(2021年最新版)

2023-08-15 03:40| 来源: 网络整理| 查看: 265

前言

本系列是我要进大厂的第二篇文章

这些年互联网老辛一直在面试一线,帮助小伙伴辅导面试准备及面试复盘,拿到过大大小小的offer,比如阿里,字节,美团,快手,百度等等

每次面试后我都会将面试的题目进行记录,并整理成自己的题库,最近我将这些题目整理出来,并按大厂的标准给出自己的解析,希望在这金三银四的季节里,能助你一臂之力。

最近我花了几天时间整理了一些时下高频Linux运维面试题,并反复斟酌,给出了符合当前版本的解析,

这部分内容会收录在专栏《我要进大厂》,适合所有有工作经验的小伙伴和应届毕业参加校招的小伙伴。

关于本篇

本篇是关于监控系列的面试题,其实在面试的时候,监控系列被问的最多的是:ELK,zabbix,prometheus

正文:1. zabbix有哪些组件

1)Zabbix Server:负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据均由其组织进行

2)Database Storage:专用于存储所有配置信息,以及有zabbix收集的数据

3)Web interface(frontend):zabbix的GUI接口,通常与server运行在同一台机器上

4)Proxy:可选组件,常用于分布式监控环境中,代理Server收集部分被监控数据并统一发往Server端

5)Agent:部署在被监控主机上,负责收集本地数据并发往Server端或者Proxy端

2. 要监控哪些参数

答案参见专栏【运维面试宝典】

3. zabbix的两种监控模式

Zabbix agent检测分为两种模式:主动模式和被动模式

被动模式,也是默认的Zabbix监控模式,被动模式是相对于proxy来说的。proxy主动发送数据就是主动模式,proxy等待server的请求再发送数据就是被动模式。

使用zabbix主动模式的好处:可以监控不可达的远程设备;监控本地网络不稳定区域;当监控项目数以万计的时候使用代理可以有效分担zabbix server的压力;简化zabbix分布式监控的维护。

被动模式:由server向agent发出指令获取数据, 即agent被动的去获取数据并返回给server,server周期性的向agent 索取数据, 这总模式的最大问题就是会加大server的工作量, 在数百台服务器的环境下server不能及时获取到最新数据, 但这也是默认的工作方式。

4. 一个监控系统的运行流程

zabbix agent 需要安装到被监控的主机上,它负责定期收集各项数据,并发送到 zabbix server 端,zabbix server 将数据存储到数据库中,zabbix web 根据数据在前端进行展示和绘图。

5. zabbix的工作进程

默认情况下 zabbix 包含6个进程:zabbix_agentd、zabbix_get、zabbix_proxy、zabbix_sender、zabbix_server,另外一个zabbix_java_gateway是可选的,这个需要单独安装。

zabbix_get

zabbix 工具,单独使用的命令,通常在 server 或者 proxy 端执行获取远程客户端信息的命令。通常用于排错。例如在 server 端获取不到客户端的内存数据,可以使用 zabbix_get 获取客户端的内容的方式来做故障排查。

zabbix_senderzabbix 工具,用于发送数据给 server 或者 proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致 zabbix 超时。于是在脚本执行完毕之后,使用 sender 主动提交数据。zabbix_server

zabbix 服务端守护进程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway的数据最终都是提交到server(说明:当然不是数据都是主动提交给zabbix_server,也有的是 server 主动去取数据,主要看是使用了什么模式进行工作)

zabbix_proxyzabbix 代理守护进程。功能类似server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到 server 里。zabbix_agentd客户端守护进程,此进程收集客户端数据,例如cpu负载、内存、硬盘使用情况等。 6. zabbix常用术语主机(host):要监控的网络设备,可由IP或DNS名称指定;主机组(hostgroup):主机的逻辑容器,可以包含主机和模板,但同一个组织内的主机和模板不能互相链接;主机组通常在给用户或用户组指派监控权限时使用;监控项(item):一个特定监控指标的相关的数据;这些数据来自于被监控对象;item是zabbix进行数据收集的核心,相对某个监控对象,每个item都由"key"标识;触发器(trigger):一个表达式,用于评估某监控对象的特定item内接收到的数据是否在合理范围内,也就是阈值;接收的数据量大于阈值时,触发器状态将从"OK"转变为"Problem",当数据再次恢复到合理范围,又转变为"OK";事件(event):触发一个值得关注的事情,比如触发器状态转变,新的agent或重新上线的agent的自动注册等;动作(action):指对于特定事件事先定义的处理方法,如发送通知,何时执行操作;报警升级(escalation):发送警报或者执行远程命令的自定义方案,如每隔5分钟发送一次警报,共发送5次等;媒介(media):发送通知的手段或者通道,如Email、Jabber或者SMS等;通知(notification):通过选定的媒介向用户发送的有关某事件的信息; 远程命令(remote command):预定义的命令,可在被监控主机处于某特定条件下时自动执行;模板(template):用于快速定义被监控主机的预设条目集合,通常包含了item、trigger、graph、screen、application以及low-leveldiscovery rule;模板可以直接链接至某个主机; 应用(application):一组item的集合;web场景(webscennario):用于检测web站点可用性的一个活多个HTTP请求; 前端(frontend):Zabbix的web接口; 7. zabbix自定义发现是怎么做的?

zabbix发现有3种类型:

自动网络发现主动客户端自动注册低级别的发现

实现方式: 规则+动作

首先需要在模板当中创建一个自动发现的规则,这个地方只需要一个名称和一个键值。2、过滤器中间要添加你需要的用到的值宏。

3、然后要创建一个监控项原型,也是一个名称和一个键值。

4、然后需要去写一个这样的键值的收集。

自动发现实际上就是需要首先去获得需要监控的值,然后将这个值作为一个新的参数传递到另外一个收集数据的item里面去。

8. 微信报警

首先要有企业微信,然后需要几个参数,从企业微信后台获取:Agetid,Secret,成员账号,组织部门ID,应用ID

使用Python或者shell脚本来实现微信报警

就是一个获取企业微信接口,和调用邮件接口来发送信息的过程。

9. zabbix客户端如何批量安装

可以使用ansible+shell脚本自动化部署 zabbix-agent软件包和管理配置文件。

10. zabbix分布式是如何做的

使用zabbix proxy

zabbix proxy 可以代替 zabbix server 收集性能和可用性数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix server 的压力.

此外,当所有agents和proxies报告给一个Zabbix server并且所有数据都集中收集时,使用proxy是实现集中式和分布式监控的最简单方法。

zabbix proxy 仅仅需要一条 tcp 连接到 zabbix server,所以防火墙上仅仅需要加上一条规则即可。

proxy 收集到数据之后,首先将数据缓存在本地,然后在一定得时间之后传递给 zabbix server,这样就不会因为服务器的任何临时通信问题而丢失数据。这个时间由 proxy配置文件中参数 ProxyLocalBuffer 和 ProxyOfflineBuffer 决定。

11. zabbix proxy 的使用场景

1.远程监控设备

2.监控网络不稳定的区域

3.当zabbix监控大型架构的时候

4.为了分布式

12. prometheus工作原理

运维面试必问的监控系列高频面试题(2021年最新版)_运维

prometheus server定期从配置好的jobs或者exporters中拉取metrics,或者接收来自 Pushgateway发送过来的metrics,或者从其它的Prometheus server中拉metrics。Prometheus server在本地存储收集到的metrics,并运行定义好的alerts.rules,记录新的时间序列或者向Alert manager推送警报。Alertmanager根据配置文件,对接收到的警报进行处理,发出告警。在图形界面中,可视化采集数据。 13. prometheus组件

1.Prometheus Server:

Prometheus Sever是Prometheus组件中的核心部分,负责实现对监控数据的获取,存储及查询。Prometheus Server可以通过静态配置管理监控目标,也可以配合使用Service Discovery的方式动态管理监控目标,并从这些监控目标中获取数据。其次Prometheus Sever需要对采集到的数据进行存储,Prometheus Server本身就是一个实时数据库,将采集到的监控数据按照时间序列的方式存储在本地磁盘当中。Prometheus Server对外提供了自定义的PromQL,实现对数据的查询以及分析。另外Prometheus Server的联邦集群能力可以使其从其他的Prometheus Server实例中获取数据。

2 Exporters:

Exporter将监控数据采集的端点通过HTTP服务的形式暴露给Prometheus Server,Prometheus Server通过访问该Exporter提供的Endpoint端点,即可以获取到需要采集的监控数据。可以将Exporter分为2类:

直接采集:这一类Exporter直接内置了对Prometheus监控的支持,比如cAdvisor,Kubernetes,Etcd,Gokit等,都直接内置了用于向Prometheus暴露监控数据的端点。

间接采集:原有监控目标并不直接支持Prometheus,因此需要通过Prometheus提供的Client Library编写该监控目标的监控采集程序。例如:Mysql Exporter,JMX Exporter,Consul Exporter等。

3 AlertManager:

在Prometheus Server中支持基于Prom QL创建告警规则,如果满足Prom QL定义的规则,则会产生一条告警。在AlertManager从 Prometheus server 端接收到 alerts后,会进行去除重复数据,分组,并路由到对收的接受方式,发出报警。常见的接收方式有:电子邮件,pagerduty,webhook 等。

4 PushGateway:

Prometheus数据采集基于Prometheus Server从Exporter pull数据,因此当网络环境不允许Prometheus Server和Exporter进行通信时,可以使用PushGateway来进行中转。通过PushGateway将内部网络的监控数据主动Push到Gateway中,Prometheus Server采用针对Exporter同样的方式,将监控数据从PushGateway pull到Prometheus Server。

14. ELK工作流程运维面试必问的监控系列高频面试题(2021年最新版)_运维_0215. logstash的输入源有哪些?

Logstash输入来源有那些?

本地文件、kafka、数据库、mongdb、redis。

运维面试必问的监控系列高频面试题(2021年最新版)_运维_03

16. logstash的架构

运维面试必问的监控系列高频面试题(2021年最新版)_运维_04

input: 数据收集

filter: 数据加工

output: 数据输出

shipper: 用于收集日志数据,监控本地日志数据的变化,及时把日志文件的最新内容收集起来,然后经过加工,过滤,输出到broker

broker: 相当于日志的hub,用来连接多个shipper和多个indexer

indexer: 从boker读取文本,经过加工,过滤输出到指定介质。 redis服务器就是官方推荐的broker

17. ELK相关的概念

Node: 装有一个 ES 服务器的节点。

Cluster: 有多个Node组成的集群

Document: 一个可被搜素的基础信息单元

Index: 拥有相似特征的文档的集合

Type: 一个索引中可以定义一种或多种类型

Filed: 是 ES 的最小单位,相当于数据的某一列

Shards: 索引的分片,每一个分片就是一个 Shard

Replicas: 索引的拷贝

18. es常用的插件

head,kopf,bigdesk(监控插件)

总结

监控系列差不多就这么几个题比较常见,其他的如果后面再有的时候会补充,有可能在本文下补充,也有可能直接更新一篇新的,然后把链接放到本盘文章的最后。

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3