为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!
这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。
本份面试集锦涵盖了
- 174 道运维工程师面试题
- 128道k8s面试题
- 108道shell脚本面试题
- 200道Linux面试题
- 51道docker面试题
- 35道Jenkis面试题
- 78道MongoDB面试题
- 17道ansible面试题
- 60道dubbo面试题
- 53道kafka面试
- 18道mysql面试题
- 40道nginx面试题
- 77道redis面试题
- 28道zookeeper
总计 1000+ 道面试题, 内容 又全含金量又高
- 174道运维工程师面试题
1、什么是运维?
2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?
3、现在给你三百台服务器,你怎么对他们进行管理?
4、简述raid0 raid1raid5二种工作模式的工作原理及特点
5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
7、Tomcat和Resin有什么区别,工作中你怎么选择?
8、什么是中间件?什么是jdk?
9、讲述一下Tomcat8005、8009、8080三个端口的含义?
10、什么叫CDN?
11、什么叫网站灰度发布?
12、简述DNS进行域名解析的过程?
13、RabbitMQ是什么东西?
14、讲一下Keepalived的工作原理?
15、讲述一下LVS三种模式的工作过程?
16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
17、如何重置mysql root密码?
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
t=2016-07-27T15:20:20+0000 lvl=info msg=“Executing migration” logger=migrator id=“create playlist item table v2”
t=2016-07-27T15:20:20+0000 lvl=info msg=“Executing migration” logger=migrator id=“drop preferences table v2”
t=2016-07-27T15:20:20+0000 lvl=info msg=“Executing migration” logger=migrator id=“drop preferences table v3”
t=2016-07-27T15:20:20+0000 lvl=info msg=“Executing migration” logger=migrator id=“create preferences table v3”
t=2016-07-27T15:20:20+0000 lvl=info msg=“Created default admin user: [admin]”
t=2016-07-27T15:20:20+0000 lvl=info msg=“Starting plugin search” logger=plugins
t=2016-07-27T15:20:20+0000 lvl=info msg=“Server Listening” logger=server address=0.0.0.0:3000 protocol=http subUrl=
我们可以通过运行此命令确认 Grafana 容器的工作状态 "docker ps -a"或通过这个URL访问 http://Docker IP:3000。
所有的 Grafana 配置设置都使用环境变量定义,在使用容器技术时这个是非常有用的。Grafana 配置文件路径为 /etc/grafana/grafana.ini。
**理解配置项**
Grafana 可以在它的 ini 配置文件中指定几个配置选项,或可以使用前面提到的环境变量来指定。
**配置文件位置**
通常配置文件路径:
* 默认配置文件路径 : $WORKING\_DIR/conf/defaults.ini
* 自定义配置文件路径 : $WORKING\_DIR/conf/custom.ini
PS:当你使用 deb、rpm 或 docker 镜像安装 Grafana 时,你的配置文件在/etc/grafana/grafana.ini。
**理解配置变量**
现在我们看一些配置文件中的变量:
* instance\_name:这是 Grafana 服务器实例的名字。默认值从 ${HOSTNAME} 获取,其值是环境变量HOSTNAME,如果该变量为空或不存在,Grafana 将会尝试使用系统调用来获取机器名。
* [paths]>:这些路径通常都是在 init.d 脚本或 systemd service 文件中通过命令行指定。
+ data:这个是 Grafana 存储 sqlite3 数据库(如果使用)、基于文件的会话(如果使用),和其他数据的路径。
+ logs:这个是 Grafana 存储日志的路径。
* [server]
+ http\_addr:应用监听的 IP 地址,如果为空,则监听所有的接口。
+ http\_port:应用监听的端口,默认是 3000,你可以使用下面的命令将你的 80 端口重定向到 3000 端口:$iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000
+ root\_url : 这个 URL 用于从浏览器访问 Grafana 。
+ cert\_file : 证书文件的路径(如果协议是 HTTPS)。
+ cert\_key : 证书密钥文件的路径(如果协议是 HTTPS)。
* [database]:Grafana 使用数据库来存储用户和仪表盘以及其他信息,默认配置为使用内嵌在 Grafana 主二进制文件中的 SQLite3。
+ type:你可以根据你的需求选择 MySQL、Postgres、SQLite3。
+ path:仅用于选择 SQLite3 数据库时,这个是数据库所存储的路径。
+ host:仅适用 MySQL 或者 Postgres。它包括 IP 地址或主机名以及端口。例如,Grafana 和 MySQL 运行在同一台主机上设置如: host = 127.0.0.1:3306。
+ name:Grafana 数据库的名称,把它设置为 Grafana 或其它名称。
+ user:数据库用户(不适用于 SQLite3)。
+ password:数据库用户密码(不适用于 SQLite3)。
+ ssl\_mode:对于 Postgres,使用 disable,require,或 verify-full等值。对于 MySQL,使用 true,false,或skip-verify。
+ ca\_cert\_path:(只适用于 MySQL)CA 证书文件路径,在多数 Linux 系统中,证书可以在 /etc/ssl/certs 找到。
+ client\_key\_path:(只适用于 MySQL)客户端密钥的路径,只在服务端需要用户端验证时使用。
+ client\_cert\_path:(只适用于 MySQL)客户端证书的路径,只在服务端需要用户端验证时使用。
+ server\_cert\_name:(只适用于 MySQL)MySQL 服务端使用的证书的通用名称字段。如果 ssl\_mode 设置为 skip-verify时可以不设置。
* [security]
+ admin\_user:这个是 Grafana 默认的管理员用户的用户名,默认设置为 admin。
+ admin\_password:这个是 Grafana 默认的管理员用户的密码,在第一次运行时设置,默认为 admin。
+ login\_remember\_days:保持登录/记住我的持续天数。
+ secret\_key:用于保持登录/记住我的 cookies 的签名。
**设置监控的重要组件**
我们可以使用下面的组件来创建我们的 Docker 监控系统。
* cAdvisor:它被称为 Container Advisor。它给用户提供了一个资源利用和性能特征的解读。它会收集、聚合、处理、导出运行中的容器的信息。你可以通过这个文档了解更多。
* InfluxDB:这是一个包含了时间序列、度量和分析数据库。我们使用这个数据源来设置我们的监控。cAdvisor 只展示实时信息,并不保存这些度量信息。Influx Db 帮助保存 cAdvisor 提供的监控数据,以展示非某一时段的数据。
* Grafana Dashboard:它可以帮助我们在视觉上整合所有的信息。这个强大的仪表盘使我们能够针对 InfluxDB 数据存储进行查询并将他们放在一个布局合理好看的图表中。
**Docker 监控的安装**
我们需要一步一步的在我们的 Docker 系统中安装以下每一个组件:
**安装 InfluxDB**
我们可以使用这个命令来拉取 InfluxDB 镜像,并部署了 influxDB 容器。
root@ubuntu:~# docker run -d -p 8083:8083 -p 8086:8086 --expose 8090 --expose 8099 -e PRE_CREATE_DB=cadvisor --name influxsrv tutum/influxdb:0.8.8
Unable to find image ‘tutum/influxdb:0.8.8’ locally
0.8.8: Pulling from tutum/influxdb
a3ed95caeb02: Already exists
23efb549476f: Already exists
aa2f8df21433: Already exists
ef072d3c9b41: Already exists
c9f371853f28: Already exists
a248b0871c3c: Already exists
749db6d368d0: Already exists
7d7c7d923e63: Pull complete
e47cc7808961: Pull complete
1743b6eeb23f: Pull complete
Digest: sha256:8494b31289b4dbc1d5b444e344ab1dda3e18b07f80517c3f9aae7d18133c0c42
Status: Downloaded newer image for tutum/influxdb:0.8.8
d3b6f7789e0d1d01fa4e0aacdb636c221421107d1df96808ecbe8e241ceb1823
-p 8083:8083 : user interface, log in with username-admin, pass-admin
-p 8086:8086 : interaction with other application
--name influxsrv : container have name influxsrv, use to cAdvisor link it.
你可以测试 InfluxDB 是否安装好,通过访问这个 URL http://你的 IP 地址:8083,用户名和密码都是 ”root“。
![Ubuntu上Grafana 监控 Docker的技巧Ubuntu上Grafana 监控 Docker的技巧](http://www.linuxprobe.com/wp-content/uploads/2016/11/095728jjvtvuvvrluckvjb.png "Ubuntu上Grafana 监控 Docker的技巧Ubuntu上Grafana 监控 Docker的技巧")
我们可以在这个界面上创建我们所需的数据库。
![Ubuntu上Grafana 监控 Docker的技巧Ubuntu上Grafana 监控 Docker的技巧](http://www.linuxprobe.com/wp-content/uploads/2016/11/095729gcgzg7jboivgjo7b.png "Ubuntu上Grafana 监控 Docker的技巧Ubuntu上Grafana 监控 Docker的技巧")
**安装 cAdvisor**
我们的下一个步骤是安装 cAdvisor 容器,并将其链接到 InfluxDB 容器。你可以使用此命令来创建它。
root@ubuntu:~# docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --publish=8080:8080 --detach=true --link influxsrv:influxsrv --name=cadvisor google/cadvisor:latest -storage_driver_db=cadvisor -storage_driver_host=influxsrv:8086
Unable to find image ‘google/cadvisor:latest’ locally
latest: Pulling from google/cadvisor
09d0220f4043: Pull complete
151807d34af9: Pull complete
14cd28dce332: Pull complete
Digest: sha256:8364c7ab7f56a087b757a304f9376c3527c8c60c848f82b66dd728980222bd2f
Status: Downloaded newer image for google/cadvisor:latest
3bfdf7fdc83872485acb06666a686719983a1172ac49895cd2a260deb1cdde29
root@ubuntu:~#
--publish=8080:8080 : user interface
--link=influxsrv:influxsrv: link to container influxsrv
-storage_driver=influxdb: set the storage driver as InfluxDB
Specify what InfluxDB instance to push data to:
-storage_driver_host=influxsrv:8086: The ip:port of the database. Default is ‘localhost:8086’
-storage_driver_db=cadvisor: database name. Uses db ‘cadvisor’ by default
你可以通过访问这个地址来测试安装 cAdvisor 是否正常 http://你的 IP 地址:8080。 这将为你的 Docker 主机和容器提供统计信息。
![Ubuntu上Grafana 监控 Docker的技巧Ubuntu上Grafana 监控 Docker的技巧](http://www.linuxprobe.com/wp-content/uploads/2016/11/095730mc4y0lb3qjiv6y4v.png "Ubuntu上Grafana 监控 Docker的技巧Ubuntu上Grafana 监控 Docker的技巧")
**安装 Grafana 控制面板**
最后,我们需要安装 Grafana 仪表板并连接到 InfluxDB,你可以执行下面的命令来设置它。
root@ubuntu:~# docker run -d -p 3000:3000 -e INFLUXDB_HOST=localhost -e INFLUXDB_PORT=8086 -e INFLUXDB_NAME=cadvisor -e INFLUXDB_USER=root -e INFLUXDB_PASS=root --link influxsrv:influxsrv --name grafana grafana/grafana
f3b7598529202b110e4e6b998dca6b6e60e8608d75dcfe0d2b09ae408f43684a
现在我们可以登录 Grafana 来配置数据源. 访问 http://你的 IP 地址:3000 或http://你的 IP 地址(如果你在前面做了端口映射的话):
* 用户名 - admin
* 密码 - admin
一旦我们安装好了 Grafana,我们可以连接 InfluxDB。登录到仪表盘并且点击面板左上方角落的 Grafana 图标(那个火球)。点击数据源来配置。
![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=http%3A%2F%2Fwww.linuxprobe.com%2Fwp-content%2Fuploads%2F2016%2F11%2F095731jo3nll2p1ssk5lnb.png%20%22Ubuntu%E4%B8%8AGrafana%20%E7%9B%91%E6%8E%A7%20Docker%E7%9A%84%E6%8A%80%E5%B7%A7Ubuntu%E4%B8%8AGrafana%20%E7%9B%91%E6%8E%A7%20Docker%E7%9A%84%E6%8A%80%E5%B7%A7%22&pos_id=img-mKdqFGI1-1715887625004)
现在你可以添加新的图形到我们默认的数据源 InfluxDB。
![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=http%3A%2F%2Fwww.linuxprobe.com%2Fwp-content%2Fuploads%2F2016%2F11%2F095732i9ht99q6ey8j19ri.png%20%22Ubuntu%E4%B8%8AGrafana%20%E7%9B%91%E6%8E%A7%20Docker%E7%9A%84%E6%8A%80%E5%B7%A7Ubuntu%E4%B8%8AGrafana%20%E7%9B%91%E6%8E%A7%20Docker%E7%9A%84%E6%8A%80%E5%B7%A7%22&pos_id=img-H2Ya13LU-1715887625004)
我们可以通过在测量页面编辑和调整我们的查询以调整我们的图形。
![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=http%3A%2F%2Fwww.linuxprobe.com%2Fwp-content%2Fuploads%2F2016%2F11%2F095732mx2zoifp1ptop2oo.png%20%22Ubuntu%E4%B8%8AGrafana%20%E7%9B%91%E6%8E%A7%20Docker%E7%9A%84%E6%8A%80%E5%B7%A7Ubuntu%E4%B8%8AGrafana%20%E7%9B%91%E6%8E%A7%20Docker%E7%9A%84%E6%8A%80%E5%B7%A7%22&pos_id=img-JdMIpyP7-1715887625004)
![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=http%3A%2F%2Fwww.linuxprobe.com%2Fwp-content%2Fuploads%2F2016%2F11%2F095733qitcr9bzi77up599.png%20%22Ubuntu%E4%B8%8AGrafana%20%E7%9B%91%E6%8E%A7%20Docker%E7%9A%84%E6%8A%80%E5%B7%A7Ubuntu%E4%B8%8AGrafana%20%E7%9B%91%E6%8E%A7%20Docker%E7%9A%84%E6%8A%80%E5%B7%A7%22&pos_id=img-PpV0ZOJ2-1715887625005)
关于 Docker 监控,你可用从此了解更多信息。 感谢你的阅读。我希望你可以留下有价值的建议和评论。希望你有个美好的一天。
### 最后的话
最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
### 资料预览
给大家整理的视频资料:
![](https://img-blog.csdnimg.cn/img_convert/7788de778cc4e43dbf067d6c6f3d8a95.png)
给大家整理的电子书资料:
![](https://img-blog.csdnimg.cn/img_convert/09db837ac6c67d277bc6bed7156a3244.png)
**如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!**
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618635766)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
715887625006)]
**如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!**
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618635766)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**