在现代信息技术环境中,企业和组织需要对各种设备和系统的运行状态进行实时监控和管理。例如,服务器的性能指标、网络设备的连接状态、应用程序的运行情况等。同时,当出现异常情况或达到特定阈值时,需要及时通知相关人员进行处理。Vigilix 项目就是为满足这些需求而开发的,它提供了一套完整的监控和告警解决方案,帮助企业及时发现和解决问题,保障系统的稳定运行。
分布式C/S架构:
1. 客户端(Client)
参数获取:从命令行或配置文件中获取服务器的 IP 地址、端口号、用户名和密码等连接参数。
连接服务器:使用获取到的参数与服务器建立连接,实现与服务器的交互。
2. 服务器(Server)
配置加载:从配置文件中加载服务器的各种配置信息,如 WebSocket 配置、代理配置、客户端工具配置等。
WebSocket 服务:提供 WebSocket 服务,与客户端和代理进行通信,实现实时数据传输。
代理管理:管理代理的连接和状态,检测代理的可用性,定期获取代理的信息。
告警处理(对接Zabbix接口):根据配置的规则,对监控数据进行分析,当出现异常情况时触发告警。
数据推送:将告警信息推送给指定的接收方,如邮件、短信、钉钉、企业微信等。
3. 代理(Agent)
配置加载:从配置文件中加载代理的各种配置信息,如服务器地址、认证密钥、告警配置等。
数据采集:定期采集本地设备的各种性能指标,如 CPU 使用率、内存使用率、磁盘使用率、网络流量等。
数据发送:将采集到的数据发送给服务器,实现数据的实时上传。
心跳检测:定期向服务器发送心跳包,保持与服务器的连接。
4. 推送模块(Push)
配置加载:从配置文件中加载推送的各种配置信息,如邮件配置、短信配置、钉钉配置、企业微信配置等。
消息推送:根据配置的规则,将告警信息推送给指定的接收方,支持多种推送方式,如邮件、短信、钉钉、企业微信等。
异步处理:使用异步处理机制,提高推送的效率和可靠性。
1. 系统架构
微服务设计:拆分为客户端、服务器、代理、推送四大模块,通过 WebSocket 实现实时通信
分层架构:业务逻辑、数据访问、表示层分离,提升可维护性
配置驱动:YAML 配置集中管理,支持动态加载
2. 核心功能
客户端:命令行参数解析,WebSocket 长连接,断线重连机制
服务器:Gorilla WebSocket 高性能服务,代理管理、告警规则引擎、异步推送
代理:轻量级数据采集框架,支持 CPU / 内存 / 磁盘 / 网络监控,本地缓存与批量发送
推送:多渠道消息接口(邮件 / 短信 / 钉钉 / 企业微信),异步队列处理,模板引擎
3. 技术亮点
高性能:WebSocket 全双工通信,连接池复用技术
可靠性:熔断机制、数据持久化、自动重连
扩展性:插件化架构、动态规则加载
4. 项目成果
性能指标:单服务器支持 10,000+ 代理,告警响应 < 100ms
技术栈:Go 语言开发,Gorilla WebSocket 通信,Viper 配置管理
业务价值:IT 设施全面监控,故障响应时间从小时级降至分钟级,运维成本降低 30%