# network_monitor **Repository Path**: yc168/network_monitor ## Basic Information - **Project Name**: network_monitor - **Description**: **网络监控工具**是一款基于Python开发的图形化服务器监控软件,支持实时监控服务器的连接状态、响应时间,并提供历史数据报表功能。工具通过域名解析、端口检测等技术实现对服务器状态的实时追踪,并通过图表直观展示连接波动和状态统计。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2025-05-16 - **Last Updated**: 2025-08-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 网络监控工具使用说明文档 ## 一、工具简介 **网络监控工具**是一款基于Python开发的图形化服务器监控软件,支持实时监控服务器的连接状态、响应时间,并提供历史数据报表功能。工具通过域名解析、端口检测等技术实现对服务器状态的实时追踪,并通过图表直观展示连接波动和状态统计。 ## 二、功能特性 ### 1. 核心监控功能 - **实时状态显示**:通过表格展示服务器的在线/离线状态、响应时间、最后检查时间及解析后的IP地址。 - **日志记录**:自动记录每次连接检查的详细信息(时间、状态、响应时间、错误信息等),支持日志文件存储和查看。 - **域名解析**:自动解析输入的域名地址,显示对应的IP地址,并在解析失败时提示错误。 ### 2. 报表与图表功能 - **连接波动曲线图**:展示服务器响应时间随时间的变化趋势,以及在线/离线状态的时间线。 - **分时统计饼图**:按小时或天数统计服务器的在线率和离线率,直观呈现连接稳定性。 - **数据持久化**:报表数据支持从日志文件(`.txt`)中读取,确保历史数据不丢失,即使程序重启也可查询。 ### 3. 操作便捷性 - **添加/删除服务器**:通过图形化界面快速添加或删除监控目标,支持IP地址和域名输入。 - **配置导入/导出**:支持将服务器配置导出为JSON文件,或从JSON文件导入配置,方便批量管理。 - **日志文件夹管理**:一键打开日志存储目录,便于手动查看或备份历史数据。 ## 三、环境要求 ### 1. 运行环境 - **操作系统**:Windows/macOS/Linux(需安装对应系统的中文字体)。 - **依赖库**:`matplotlib`(图表渲染)、`numpy`(数值计算)、`tkinter`(GUI界面)。 ### 2. 打包部署(可选) 如需生成独立可执行文件,可使用`pyinstaller`打包工具: ```bash # 打包命令(以Windows为例) pyinstaller --onefile --windowed --name network_monitor \ --add-data "server_logs;server_logs" \ --add-data "$(python -c 'import matplotlib; print(matplotlib.get_data_path())');matplotlib-data" \ --hidden-import matplotlib.backends.backend_tkagg \ --hidden-import numpy \ --hidden-import tkinter \ network_monitor.py ``` - 打包后可执行文件位于`dist/`目录,直接双击运行即可。 ## 四、操作指南 ### 1. 主界面说明 ![主界面示意图](https://example.com/main-interface.png)(示例图,需自行截图替换) - **顶部按钮栏**:包含添加/删除服务器、导入/导出配置、查看报表、刷新状态等功能。 - **服务器列表**:显示当前监控的服务器及其状态,支持点击选中服务器查看详细日志。 - **日志区域**:显示选中服务器的连接历史记录,包含时间、状态、响应时间及错误信息。 ### 2. 添加服务器 1. 点击顶部 **添加服务器** 按钮,弹出对话框。 2. 输入服务器地址(IP或域名)、端口号(必填),可选填写备注。 3. 点击 **添加** 完成配置,新服务器将显示在列表中。 ### 3. 查看报表 1. 在服务器列表中选中目标服务器。 2. 点击顶部 **查看报表** 按钮,弹出报表窗口。 3. **曲线图选项卡**:查看响应时间波动和状态变化。 4. **饼图选项卡**:切换按小时或天数统计的在线/离线比例。 ### 4. 日志管理 - **实时日志**:选中服务器后,日志区域实时显示最近50条连接记录。 - **日志文件**:日志自动保存到`server_logs/`目录,文件名格式为`服务器地址_端口.txt`。 - **打开日志文件夹**:点击顶部 **打开日志文件夹** 按钮,快速访问日志文件。 ## 五、常见问题与解决 ### 1. 图表中文显示乱码 - **原因**:matplotlib默认字体不支持中文。 - **解决方法**: - 确保系统安装中文字体(如黑体、微软雅黑)。 - 在代码中修改字体配置: ```python matplotlib.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei"] # 添加更多字体 ``` ### 2. 域名解析失败 - **原因**:输入的域名格式错误或网络连接异常。 - **解决方法**: - 检查域名拼写(如`example.com`)。 - 确保本地网络可访问DNS服务器。 ### 3. 报表数据为空 - **原因**:服务器日志文件不存在或无历史数据。 - **解决方法**: - 确保服务器已运行监控至少一次,生成日志。 - 检查日志文件路径是否正确(默认`server_logs/`目录)。 ## 六、配置文件说明 - **文件路径**:`servers.json`,存储服务器配置信息。 - **格式示例**: ```json [ { "server": "api.example.com", "port": 8080, "remark": "生产环境API服务器" }, { "server": "192.168.1.100", "port": 22, "remark": "SSH服务器" } ] ``` - **导入/导出**:通过顶部按钮快速备份或恢复配置。 ## 七、版本更新日志 - **V1.0.0(2025-05-16)**:初始版本,支持实时监控、日志记录和基础报表功能。 - **V1.1.0(待更新)**:计划支持报警通知、多窗口监控等高级功能。