关于作者
昵称: 南宫乘风
工作年限: 4年
获的证书: CKA , CKS
性格: 热爱学习,喜欢挑战自我并追求自己的兴趣,有清晰的规划
座右铭: 未来的你,会感谢今天仍在努力奋斗的你
岗位: 运维开发工程师
技能: 擅长 Linux,Kubernetes,Python,监控(Prometheus)及自动化技术(Ansbile)
研究方向: 专注于 Kubernetes,GO,Flask,Istio,云原生 和 Vue
目标: 成为一名优秀的DEVOPS
工程师
联系我: 1794748404@qq.com
经历
前期成长
问: 为什么要记录学校期间的经历?
解: 因为正是这些学习和实践,才让我走上了运维的道路。这段宝贵的经历对我意义重大,我对此深表感激。
学校期间
- 自学Shell和Linux操作:通过自学掌握了Shell脚本编写和Linux操作系统管理的基本技能,积极参与在线社区交流,解答问题并分享经验,不仅提升了自己的技术水平,还为社区其他成员提供了帮助和支持。
- 学校网站建设与维护:
- 责任:负责学校网站的建设和日常维护工作。
- 措施:
- 通过使用防火墙和代码审查等技术和工具,确保Web服务器的安全性。
- 制定并完善了网站的备份和灾难恢复计划,确保数据安全和恢复能力。
- 成果:
- 网站运行稳定,未发生重大安全事故。
- 数据安全得到保障,即使在突发事件中也能迅速恢复,减少了对学校日常运作的影响。
- 协助管理机房服务器:
- 责任:参与机房服务器的管理工作。
- 措施:
- 负责安装和配置服务器操作系统和各类服务软件。
- 配置网络和防火墙,确保服务器的安全和网络稳定。
- 成果:
- 服务器系统运行高效,服务软件配置合理。
- 机房网络稳定,服务器安全性得到了提升,有效防止了潜在的安全威胁。
工作经历
First: 售票系统
岗位: Linux运维工程师
工作内容
1、 负责项目软件安装及系统部署工作,编写对应的实施文档
2、 制定数据库备份方案,灾难出现时对数据库进行恢复。
3、 负责部署和管理监控系统环境,自定义脚本监控,实现监控报警功能
4、 负责公司线上环境管理工作,包括平台的实施部署和维护,代码更新,告警修复等操作。
5、 负责公司 web(Nginx、Apache、Tomcat)项目、数据库服务器的日常维护,程序版本更新。
6、 编写日常维护巡检 Shell /python 脚本获取每日服务信息邮件推送进行汇报;
负责异地组网和 VPN 技术构建与维护
- 项目描述
由于公司服务器分布在不同网段和地区,管理不便,部分主机之间需要进行业务连接且没有足够的公网IP使用,同时有些数据需要私密传输,防止通过公网传输被窃取。因此采用OpenVPN实现异地组网,使不同网段能够互相通信,并确保数据加密传输安全。使用JumpServer作为堡垒机进行账号分配和权限管理,方便进行安全审计。
- 工作内容:
- 负责项目总体规划,制定测试环境和方案,设计服务器网段划分。
- 根据路由设计用户访问资源,部署测试环境并进行多次模拟测试。
- 编写Shell脚本,实现用户自动创建和数据备份,防止磁盘损坏导致OpenVPN数据丢失。
- 部署JumpServer组件,并编写Shell脚本备份JumpServer数据库。
- 测试环境通过后,部署上线正式环境。
- 后期负责OpenVPN和JumpServer的维护。
- 成果:
- 确保上千台服务器之间的网络通信正常运行。,提升了整体网络的可靠性。
- 掌握 VPN 的原理和网络拓扑设计,能够快速定位和解决网络故障。
- 通过脚本自动化操作,简化了重复性任务,提高了效率。
其余项目
- 工作内容:
- 成果:
- 实现备份业务自动化和规范化,减少人工干预,并通过MD5校验和邮件报警机制提高数据安全性和可靠性。完成备份方案在正式环境中的部署,确保生产环境的高效运行。
- 优化Zabbix监控模板和触发器,提高监控准确性和灵活性,并实现各组件性能监控,确保系统在高负载下的稳定性。改进告警机制,缩短问题响应时间,提高运维效率。
Second: 维护上千台Linux系统
岗位: 自动化运维工程师
工作内容
1、负责维护 上千台 生产环境服务器的操作系统(实现ansible自动化管理)
2、根据业务需求编写shell和Python脚本,处理问题
3、增加集群prometheus监控,实现各方位的监控,从硬件,操作系统,到业务等
4、负责运维项目开发, 自动化脚本编写(编写Django告警接口对接alertmanager,Gin开发邮件告警服务,优化邮件接口,接入数据库,实现故障汇中和分析。)
5、分析报错日志,定位问题和解决问题
6、docker的构建,上传 和扫描 等维护
7、负责部分业务上线,业务环境测试到生产
8、负责维护Kubernetes业务,构建持续交付,更新和发版
上千台服务器监控告警系统搭建开发
项目描述
为了确保公司告警的及时性,及告警数据的持久化存储查询和故障数据回溯, 通过整合监控架构(Prometheus+ Consul + Alertmanager + Grafana + Ansible),实现对服务器的全面监控、监控数据的可视化,并将告警通知及时发送到手机端
工作内容:
- 监控告警集群配置:
- 负责搭建公司运维告警的监控集群,配置Prometheus、Consul、Alertmanager和Grafana,通过Ansible角色分发node_exporter客户端和配置管理,注册到Consul服务自动发现
- 当Prometheus触发告警时,告警信息推送到Alertmanager,再根据预设的过滤规则转发到由Django开发的告警通知平台。(Django告警项目)
- 告警平台根据告警等级和类型,将通知分发到不同的钉钉群组。运维人员收到通知后,可以在钉钉上直接处理并回复到告警平台。
- 指标数据持久化存储:
- 对Prometheus收集的指标数据进行筛选,丢弃不需要的指标以优化存储空间。
- 使用Go语言开发的插件prometheus-postgresql-adapter,将过滤后的数据写入Postgresql数据库,从而在Prometheus中查询到存储在Pg数据库中的监控数据。
- 解决了监控数据量过大无法长期存储的问题。
- 监控数据可视化:
- 配置Grafana数据源为Prometheus,并设置不同的监控报表,包括日常运维告警面板和公司核心业务相关的监控面板。
成果:
- 保证了操作系统的高可用性和稳定性,实现了系统的全面监控,提升了问题发现和解决的速度,有效缩短了从问题发现到解决的时间,减少了系统停机时间,提高了系统可靠性。
- 成功搭建了监控基础架构,实现了高效的告警通知和持久化存储查询。通过Alertmanager和钉钉的集成,实现了告警信息的及时分发和响应,显著提升了运维效率
- 利用Prometheus和Postgresql的结合,优化了监控数据的存储,支持长期数据存储和查询,解决了监控数据量过大无法长期存储的问题。
- 通过Grafana的配置和报表展示,提供了清晰直观的监控数据可视化,为日常运维和公司核心业务的监控提供了有力支持。
- 通过使用Ansible管理和分发客户端,以及配置和应用服务的安装,大幅提高了工作效率和自动化水平 , 减少了手动操作的错误率。
MHA数据架构优化
案例:MHA高可用方案
项目描述
项目原有的MySQL架构采用主从复制。为确保生产环境的稳定运行,推荐公司使用MHA架构和Atlas实现数据库读写分离。此举旨在解决业务中大量查询导致的负载均衡和CPU过高问题,减轻主库压力,提高业务访问速度,并防止主库宕机对业务运行的影响。
工作内容:
- 增加一台MySQL从库,使架构变为一主两从。
- 配置各个节点之间的免密钥通信和验证。
- 部署MHA软件,并编写Shell脚本,实现自动检测复制状态(repl)、SSH连接及运行状态。
- 配置自动切换后的邮件提醒功能(send_report)。
- 使用Zabbix监控MySQL主从状态。
成果:
- 实现一主两从架构和自动化故障切换,减少了主库宕机对业务运行的影响。
- 通过数据库读写分离,减轻主库压力,有效解决了大量查询导致的负载均衡和CPU过高问题。
- 配置了Zabbix监控MySQL主从状态,并通过邮件提醒功能确保管理员及时获取系统状态,提升了系统的维护性和安全性。
其余项目
- 工作内容:
- 上线了一套高可用网站架构,包括Keepalived+Nginx负载均衡、MySQL、Redis、NFS和Web服务,实现了每层组件的高可用性,防止重要组件宕机造成网站不可用。架构支持故障自动切换和自动备份,并具备良好的扩展性和升级性。 (项目架构图)
- 规划和实施日志收集方案,收集上千台服务器的操作系统和应用日志。使用 Elasticsearch 分布式集群作为存储数据库,实现应用日志汇总区分和异常告警。
- 利用 Ansible 编写剧本(playbooks),实现 SSH 漏洞修补、日常脚本自动化处理和监控服务的实施 , 实现了各类服务的自动扩缩容
- 成果:
- 确保网站的高可用性, 具备良好的扩展性和升级性,能够轻松应对业务增长和技术更新的需求
- 显著提升了问题定位和解决的效率,减少了系统宕机和服务中断时间。
- 使用Ansible大幅提高了工作效率,通过高效管理上千台机器的服务和漏洞修复,节省了大量时间,显著提升了运维效率
Third:五百强的子公司
岗位: 运维开发工程师
Kubernetes 集群管理与运维
- 工作内容:
- 构建和维护生产 Kubernetes 集群,确保业务平滑稳定迁移。
- 熟悉 Kubernetes 技术和集群设计部署方案,能够快速诊断和解决运维问题。
- 通过 CKA 和 CKS 认证考试,具备 Kubernetes 技能和安全管理能力,正在备考 ACP 认证考试,不断学习和提升自己。
- 成果:
- 保证了 Kubernetes 集群的高可用性和稳定性。
- 提升了问题诊断和解决的效率,确保业务稳定运行。
- 持续学习和认证提升了专业技术水平。
自动化发布与工作流程优化
- 工作内容:
- 完善业务自动化发布流程代码,规范化流程,提高工作效率。
- 增加发布、巡检、告警和日志数据入库等功能,保证服务可靠性和稳定性。
- 完善钉钉 OA 信息收集系统代码,分析汇总日常工作订单,实现工单分类和统计。
- 成果:
- 显著提高了工作流程的自动化和规范化程度。
- 增强了服务的可靠性和稳定性,提升了发布效率。
- 提升了工作效率和服务质量,通过工单统计和分类实现更高效的管理。
成本优化与资源管理
- 工作内容:
- 分析阿里云业务账单,优化相关高费用服务,缩减运维部门的费用支出。
- 使用标准MVC流程编写Python开发上下游环境,整理Swag接口文档,提高开发效率。
- Python开发证书告警监控系统,对接钉钉发送通知告警(https://github.com/nangongchengfeng/SecuCert-Monitor)
- Python开发黑猫投诉平台,舆论监控系统(BuzzMonitor)(https://github.com/nangongchengfeng/BuzzMonitor))
- 成果:
- 提高了资源利用率和成本效益,显著缩减了运维费用。
- 加快了开发搭建速度,减少了环境维护的时间和成本,提高了开发效率。
- 实现了对证书到期和异常情况的实时监控,快速响应和处理证书问题,避免了因证书失效导致的服务中断 。
- 提高了企业对客户投诉和舆情的响应速度,增强了品牌的声誉管理和危机处理能力。
项目截图
开发上下游
证书告警平台