- 精通Linux操作系统及其环境下的开发与维护
- 熟练掌握Golang、Shell、Python等编程语言,具备跨语言开发能力
- 深入理解并实践Kubernetes与Docker容器技术,优化容器化应用部署与管理
- 熟练操作MySQL与Redis数据库,保障数据安全与高效存取
- 掌握Nginx与keepalived的配置与维护,实现高可用服务架构
- 应用Ansible进行自动化运维任务,提升运维效率与准确性
- 利用JMeter进行性能测试,优化系统性能与资源分配
- 运用Prometheus与Grafana进行系统监控与数据可视化,实时把握系统状态
- 利用ELK栈实现日志集中管理与分析,助力故障排查与系统优化
- 熟悉TCP/IP、SGIP、SMPP、SMGP等网络协议,具备扎实的网络通信知识基础
项目经历:Vigilix 系统开发
一、项目概述
Vigilix 是我自主研发的一个具备多组件、多功能的系统,主要用于自动巡检、系统监控、数据推送以及告警处理等。该项目整合了客户端、推送端、代理端和服务端等多个模块,各模块协同工作,实现系统信息的采集、处理和通知功能。同时,项目集成了 Zabbix 告警、巡检表格生成等特色功能,为运维人员提供全面的系统监控解决方案。
二、项目职责
作为该项目的独立开发者,我负责从项目的需求分析、架构设计、编码实现到测试部署的全流程工作。具体职责包括:
需求分析:与潜在用户沟通,明确系统的功能需求和性能要求。
架构设计:设计系统的整体架构,确定各个模块的功能和交互方式。
编码实现:使用 Go 语言完成各个模块的代码编写,包括客户端、推送端、代理端和服务端。
测试调试:对系统进行单元测试、集成测试和系统测试,及时修复发现的问题。
部署优化:将系统部署到生产环境,并进行性能优化和故障排查。
三、技术栈
编程语言:主要使用 Go 语言进行开发,利用其高效、并发性能好等特点。
依赖库
github.com/gorilla/websocket:用于实现 WebSocket 通信,在客户端、服务端和代理端中都有使用。
github.com/shirou/gopsutil:用于采集系统指标数据,如 CPU、内存、磁盘等信息。
gopkg.in/yaml.v3:用于解析 YAML 配置文件,方便项目的配置管理。
github.com/jmoiron/sqlx:用于数据库操作,服务端使用该库与数据库进行交互。
github.com/xuri/excelize/v2:用于处理 Excel 文件,服务端可能会使用该库进行数据导出等操作。
四、项目成果
功能实现
客户端:实现了用户登录和命令执行等功能,用户可以通过 WebSocket 与服务端进行通信。
推送端:支持通过 POST 方式对接 Server 服务端,实现告警及数据推送。同时,根据配置将信息推送给不同的第三方平台,如邮件、钉钉、短信、企业微信等。
代理端:部署在被监控的主机上,负责采集主机的系统指标数据,并将数据发送给服务端。
服务端:接收代理端发送的数据,进行处理和存储,同时处理系统信号和告警信息。可对接 Zabbix 接口收集触发器情况,如有异常,触发告警。
特色功能
自动化巡检:支持生成巡检表格,将系统监控数据以 xlsx 表格形式呈现,方便运维人员进行巡检和分析。
Zabbix 告警集成:与 Zabbix 系统集成,及时获取系统的告警信息,并通过推送端通知相关人员。
五、项目挑战与解决方案
数据采集与处理:在代理端采集系统指标数据时,需要处理大量的实时数据。为了提高数据采集的效率和准确性,我使用了 github.com/shirou/gopsutil 库,并对数据采集过程进行了优化,确保数据的及时更新和准确传输。
并发处理:在服务端处理客户端请求和代理端数据时,需要处理大量的并发请求。为了提高系统的并发性能,我使用了 Go 语言的 goroutine 和 channel 机制,实现了高效的并发处理。
第三方平台对接:在推送端与第三方平台对接时,需要处理不同平台的接口和协议。为了确保数据的准确推送,我对各个平台的接口进行了详细的研究,并编写了相应的对接代码。
六、项目总结
通过这个项目,我不仅提升了自己的技术能力,还积累了丰富的项目开发经验。在项目开发过程中,我深刻体会到了系统架构设计的重要性,以及如何选择合适的技术栈来实现项目的需求。同时,我也学会了如何应对项目中遇到的各种挑战,通过不断的优化和改进,提高系统的性能和稳定性。未来,我将继续完善 Vigilix 系统,为用户提供更加优质的系统监控解决方案。
一、项目概述 Vigilix 是一个具备多组件、多功能的系统,主要用于自动巡检、系统监控、数据推送以及告警处理等。该项目集成了 Zabbix 告警、巡检表格生成等特色功能,为运维人员提供全面的系统监控解决方案。 二、项目功能 多模块协同工作 客户端(Client):负责与
详细功能介绍 该 SFTP 文件监控与传输工具基于 Go 语言开发,能实现本地文件与远程 SFTP 服务器之间的高效文件上传和下载操作,具有以下核心功能: 上传功能 文件与目录上传:支持单个文件上传,也可递归上传整个目录及其子目录和文件到远程服务器,并在远程创建对应目录