目录
2、什么是Elasticsearch、Logstash 和Kibana?
项目名称
项目简称或代号:CUO(这个可以自己随便编一个,每个公司的每个项目简称或代号都是内部任意起名的,显得专业一点,一般是项目关键词的首拼,比如这个CUO是:comprehensive upgrade and optimization)
项目全名:高可用性云基础设施部署与升级项目
项目背景
随着公司业务的迅速扩张,对数据中心的可靠性和性能要求越来越高。为了应对这一挑战,公司决定对现有的IT基础设施进行升级,构建一个基于云计算的高可用性平台。作为运维团队的一员,我深度参与了这一项目的规划、实施和优化工作。
项目目标
-
构建一个稳定、可靠、可扩展的云计算平台,支持公司业务的快速增长。
-
实现自动化部署和监控,提高运维效率。(比如日志监控采用ELK,服务器性能及网络流量等监控采用Prometheus+grafana监控,对于这两个监控平台的部署和相面试官考察时候只需要能大概说一下这两个监控平台的原理、功能就可以了)
-
优化系统性能,确保关键业务应用的稳定运行。
项目成果
-
成功构建了一个基于云计算的高可用性平台,为公司业务的快速增长提供了有力支持。
-
实现了自动化部署和监控,提高了运维效率,降低了人力成本。
-
通过对系统性能的优化,确保了关键业务应用的稳定运行,提高了客户满意度。
我的角色与职责
-
需求分析:与业务团队紧密合作,了解业务需求和技术要求,为云平台的规划和设计提供有力支持。
-
架构设计:参与云平台的整体架构设计,包括网络、存储、计算和安全等方面的规划。
-
系统部署:负责云平台的搭建和部署工作,包括虚拟化环境的配置、操作系统的安装、应用软件的部署等。
-
自动化脚本编写:编写自动化脚本,实现服务器的批量部署、配置和更新,提高运维效率。
-
监控与告警:配置和管理监控系统,实时监控云平台的运行状态,及时发现并处理潜在问题。同时,设置告警机制,确保关键业务应用的稳定运行。
-
性能优化:分析系统性能瓶颈,制定优化方案并实施,提高系统的整体性能。
-
文档编写:编写运维手册、操作指南等文档,为团队成员提供技术支持和参考。
我主要完成的工作内容
-
需求分析与文档编写
-
与业务团队和开发团队进行深入沟通,明确业务需求和技术要求。
-
编写项目需求文档,明确项目目标、范围、时间表和关键里程碑。
-
-
云平台架构设计
-
根据业务需求和技术要求,设计云平台的整体架构,包括网络、存储、计算和安全等方面的规划。
-
制定详细的架构图和设计文档,为后续的部署和运维提供指导。
-
-
系统部署与配置
-
负责云平台的服务器、网络设备和存储设备的部署和配置工作。
-
安装和配置虚拟化环境,包括虚拟机管理器和虚拟机模板的创建。
-
部署操作系统和应用软件,并进行必要的配置和优化。
-
-
自动化脚本编写
-
编写自动化脚本,实现服务器的批量部署、配置和更新。
-
开发自动化监控和告警脚本,确保系统稳定运行。
-
-
性能监控与优化
-
配置和管理监控系统,实时监控云平台的运行状态和性能指标。
-
分析系统性能瓶颈,制定优化方案并实施,如调整系统参数、优化数据库查询等。
-
-
文档编写与技术支持
-
编写运维手册、操作指南等文档,为团队成员提供技术支持和参考。
-
参与内部培训和知识分享活动,提升团队整体技能水平。
-
本次项目涉及的技术
-
虚拟化技术:使用VMware或KVM等虚拟化技术搭建和管理虚拟机环境。
-
自动化工具:利用Ansible、Shell脚本等实现自动化部署、配置和监控。
-
监控工具:使用Zabbix、Prometheus等监控工具实时监控系统的运行状态和性能指标。
-
存储技术:涉及NFS、SAN、NAS等存储技术的配置和管理。
-
网络技术:包括VLAN、VPN、负载均衡等网络技术的配置和优化。
(关于这些技术知识点,只需要网上搜索各个技术点的基本原理等就可以了。面试官提问时候能回答上个一二三基本就差不多了,面试官也不会深入提问的,如果有些技术被提问了你不会回答,就说这一部分工作内容是另一个同事做的)
本次项目遇到的问题与解决方法
-
问题:虚拟机性能不足,影响业务应用运行。
-
解决方法:调整虚拟机资源配置,如增加CPU、内存和存储资源。同时,对虚拟机进行优化,如关闭不必要的服务和应用,减少资源消耗。
-
-
问题:监控系统告警频繁,导致误报率较高。
-
解决方法:对监控系统的阈值进行调整和优化,减少误报率。同时,对告警进行分类和优先级划分,确保重要告警能够及时得到处理。
-
-
问题:自动化脚本执行失败,导致部署和配置失败。
-
解决方法:对自动化脚本进行调试和修改,确保脚本的正确性和健壮性。同时,对执行环境进行排查和修复,确保脚本能够正常运行。
-
-
问题:网络延迟较高,影响业务应用性能。
-
解决方法:对网络设备和配置进行排查和优化,如调整路由策略、优化网络带宽等。同时,与网络团队紧密合作,确保网络环境的稳定性和可靠性。
-
-
问题:存储资源不足,无法满足业务需求。
-
解决方法:扩展存储资源,如增加存储设备、优化存储架构等。同时,对存储资源进行合理规划和分配,确保资源的充分利用和高效运行。
-
本次项目中可能被面试官问到的问题
1、什么是ELK?
答:ELK 是三个开源项目的首字母缩写:Elasticsearch、Logstash 和 Kibana。这些项目通常一起使用来构建一个集中的日志管理和分析系统
2、什么是Elasticsearch、Logstash 和Kibana?
答:
-
Elasticsearch:
-
Elasticsearch 是一个基于 Lucene 的搜索和分析引擎。它提供了全文搜索、结构化搜索、分析以及实时分析的能力。
-
Elasticsearch 是一个分布式系统,设计用于处理大规模数据,支持水平扩展和容错。
-
它通常用于存储、搜索和分析日志、监控数据、时间序列数据等。
-
-
Logstash:
-
Logstash 是一个数据收集、处理和转发的管道。它可以接收来自各种来源的数据(如文件、数据库、网络等),然后对其进行处理(如解析、转换、过滤等),最后将处理后的数据发送到其他系统(如 Elasticsearch)。
-
Logstash 使用灵活的配置文件来定义数据流,可以轻松地修改和扩展以处理各种数据格式和场景。
-
Logstash 也可以与 Elasticsearch 和 Kibana 一起使用,形成一个完整的日志管理解决方案。
-
-
Kibana:
-
Kibana 是一个数据可视化和分析平台,专门为 Elasticsearch 设计。它提供了一个用户友好的界面,用于浏览、搜索、分析和可视化存储在 Elasticsearch 中的数据。
-
Kibana 提供了各种可视化选项,如图表、表格、地图等,可以帮助用户更好地理解数据。
-
Kibana 还支持自定义仪表板,允许用户根据自己的需求创建和保存复杂的可视化布局。
-
3、ELK 三个组件 如何协同工作?
-
Logstash 负责从各种来源收集日志数据,并进行必要的处理和转换。
-
处理后的数据被发送到 Elasticsearch 进行存储和索引。
-
Kibana 从 Elasticsearch 中检索数据,并提供用户友好的界面进行搜索、分析和可视化。
通过这种方式,ELK Stack 提供了一个完整的日志管理解决方案,可以帮助组织更好地理解和利用他们的日志数据。
4、你们公司采用的虚拟化平台是哪一个?
答:VMware ESXI虚拟化平台,部署简单、可视化界面对虚拟机管理方便。
流程:购买物理服务器,然后下载VMware ESXI的iso镜像包,找VMware官方购买授权证书。通过U盘将VMware ESX镜像刻一个启动盘,用U盘给服务器装VMware ESXI虚拟化系统,然后在配置ip地址。这样就可以通过笔记本上下载个VMware ESXI客户端连接上这台服务器,在这台服务器上安装多个虚拟机。
5、你们本次项目共多少人?
答:共5人
一个项目经理、1个业务开发工程师、1个测试工程师、2个运维工程师
6、你们本次项目共使用了多少台虚拟机,配置分别是什么样的?
答:共44台虚拟机
23台虚拟机:用来部署公司业务服务的。公司的服务是分布式部署的(就是一个软件由多个组件组成,然后每个组件都是拆开单独部署在一台虚拟机上,然后通过ip端口或其他策略来实现把这些组件都串起来组成完整的服务,大概就是这么个意思),公司有两个服务,一个是C开发的服务共10个组件,分别部署在10台虚拟机上,每台服务器2核心4G配置。还有一个是JAVA开发的服务共13个组件,分别部署在13台虚拟机上,因为JAVA服务比较吃内存,所以每台虚拟机为2核8G配置。
8台mysql虚拟机:用来存储数据、公司服务数据一共存储在4个库中,每台mysql中创建了一个库。每个库中有几十上百张表。每个数据库都做了主备架构,分别为8核16G
3台redis虚拟机:用来做mysql的中间件,进行数据缓存的,以减轻mysql压力分别为8核16G
2台LB负载均衡虚拟机,用来负责流量分发分别为8核心16G
2台nginx虚拟机:用来搭建web页面,代理后端业务虚拟机。分别为4核8G
3台ELK虚拟机:Elasticsearch 消耗两台,因为Elasticsearch 主要用来存储数据,LK两个服务部署在同一台机器上分别为2核4G
1台性能监控虚拟机:用来部署Prometheus和grafana服务.4核心8G。
7、本次升级项目中你们你们数据备份是通过什么命令实现的?
mysql数据是通过mysqldump命令进行数据备份的
Elasticsearch 是通过elasticdump命令进行数据备份的
8、你们数据量有多大?是怎么迁移的?
总数据量大概有10TB左右,用linux命令进行迁移太过耗时,可能得好几天。所以是用的第三方工具。
经验教训与自我提升
-
在项目过程中,我深刻体会到了团队协作的重要性。与业务团队、开发团队等成员的紧密合作是项目成功的关键。
-
不断学习和掌握新技术是运维工程师的必修课。通过参与这个项目,我深入了解了云计算、自动化运维等前沿技术,并不断提升自己的技能水平。
-
在遇到问题时,保持冷静和耐心是解决问题的关键。同时,及时总结和分享经验教训也是提高团队整体能力的重要途径。
展望未来
随着云计算、大数据等技术的不断发展,运维工程师的角色和职责也在不断变化。未来,我将继续学习和掌握新技术,提高自己的专业技能和综合素质,为公司的发展贡献更多力量。同时,我也期待与更多优秀的团队成员一起合作,共同推动公司IT基础设施的升级和优化工作。