# monitor **Repository Path**: chinaben/monitor ## Basic Information - **Project Name**: monitor - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-01 - **Last Updated**: 2025-12-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Windows 系统监控部署指南 ## 快速开始 ### 1. 下载监控工具 **注意:请在 CMD(命令提示符)中运行,不要在 PowerShell 中直接运行** ```cmd # 方式一:使用批处理脚本(推荐) # 在 CMD 中运行: 下载工具.bat # 或者在 PowerShell 中通过 CMD 运行: cmd /c 下载工具.bat # 方式二:手动下载 # 参考 下载链接.md 文件,手动下载并解压到对应目录 ``` ### 2. 部署配置 运行一键部署脚本,自动完成配置和部署: ```cmd deploy.bat ``` #### 部署过程说明 部署脚本将自动完成以下操作: 1. **创建目录结构** - 自动创建所需的目录(prometheus、grafana、exporters 等) 2. **检查必要文件** - 验证所有监控组件是否已下载 3. **复制配置文件** - 将 `config/` 目录下的配置文件复制到对应位置 4. **配置数据库连接** - 交互式输入数据库连接信息 5. **创建启动脚本** - 根据配置生成 `start.bat` 和 `stop.bat` 6. **验证配置** - 检查 Prometheus 配置文件是否正确 #### 需要配置的信息 运行 `deploy.bat` 时,会提示输入以下配置信息(直接回车使用默认值): - **MySQL 连接信息** - 用户名(默认: root) - 密码 - 主机地址(默认: 127.0.0.1:3306) - **Elasticsearch 地址**(默认: http://127.0.0.1:9200) - **MongoDB 地址**(默认: mongodb://127.0.0.1:27017) - **HTTP 监控地址**(默认: http://127.0.0.1:8085) - **Redis 连接信息** - 主机地址(默认: 127.0.0.1:6379) - 密码(可选) - **JMX 监控端口**(默认: 9999) - **Java 应用端口**(默认: 7081) - **Jaeger 端口配置** - Agent 端口(默认: 6831) - Query 端口(默认: 16686) #### 配置文件说明 部署完成后,配置信息会保存到 `config/database.conf` 文件中。如需修改配置,可以: 1. 直接编辑 `config/database.conf` 文件 2. 或重新运行 `deploy.bat` 进行配置 #### 注意事项 - 确保所有监控组件已下载(参考步骤 1) - 如果某些组件未下载(如 JMX Exporter、Jaeger),部署会继续,但相关功能将不可用 - 配置文件会自动备份,原有配置会保存为 `.bak` 文件 ### 3. 启动服务 ```cmd start.bat ``` ### 4. 访问监控面板 - **Grafana**: http://localhost:3000 (用户名: admin, 密码: admin) - **Prometheus**: http://localhost:9090 ## 目录结构 ``` monitor/ ├── README.md # 本文件 ├── 部署方案.md # 详细部署方案 ├── 下载链接.md # 下载链接列表 ├── deploy.bat # 一键部署脚本 ├── start.bat # 启动所有服务 ├── stop.bat # 停止所有服务 ├── 下载工具.bat # 自动下载脚本 ├── config/ # 配置文件目录 │ ├── prometheus.yml # Prometheus配置 │ ├── grafana.ini # Grafana配置 │ ├── grafana-datasource.yml # Grafana数据源配置 │ ├── blackbox.yml # Blackbox Exporter配置 │ └── my.cnf # MySQL Exporter配置 ├── prometheus/ # Prometheus目录 │ ├── prometheus.exe │ ├── prometheus.yml │ └── data/ # 数据存储目录 ├── grafana/ # Grafana目录 │ ├── bin/ │ │ └── grafana-server.exe │ ├── conf/ │ │ └── grafana.ini │ └── data/ # Grafana数据目录 └── exporters/ # Exporter目录 ├── mysqld_exporter/ ├── elasticsearch_exporter/ ├── mongodb_exporter/ └── blackbox_exporter/ ``` ## 监控组件 ### Prometheus - **端口**: 9090 - **作用**: 指标收集和存储 - **访问**: http://localhost:9090 ### Grafana - **端口**: 3000 - **作用**: 可视化监控面板 - **访问**: http://localhost:3000 - **默认账号**: admin/admin ### MySQL Exporter - **端口**: 9104 - **作用**: 监控 MySQL 数据库 - **配置**: 在 deploy.bat 中设置 MySQL 连接信息 ### Elasticsearch Exporter - **端口**: 9114 - **作用**: 监控 Elasticsearch 集群 - **配置**: 默认 http://127.0.0.1:9200 ### MongoDB Exporter - **端口**: 9216 - **作用**: 监控 MongoDB 数据库 - **配置**: 默认 mongodb://127.0.0.1:27017 ### Blackbox Exporter - **端口**: 9115 - **作用**: 监控 HTTP 服务可用性 - **配置**: 默认监控 http://127.0.0.1:8085 ### Redis Exporter - **端口**: 9121 - **作用**: 监控 Redis 数据库性能 - **配置**: 默认 127.0.0.1:6379 ### JMX Exporter (JVM 监控) - **端口**: 9999(可配置) - **作用**: 监控 Java 应用的 JVM 指标 - **配置**: 需要在 Java 应用启动时添加 `-javaagent` 参数 - **监控内容**: JVM 内存、GC、线程、连接池、堆溢出、栈溢出 ### MySQL 死锁监控 - **实现**: 通过 MySQL Exporter 采集死锁相关指标 - **监控指标**: 死锁次数、行锁等待数、锁等待时间等 ### Windows Exporter (服务器资源监控) - **端口**: 9182 - **作用**: 监控 Windows 服务器资源(CPU、内存、磁盘、网络、进程等) - **监控内容**: - CPU 使用率 - 内存使用率 - 磁盘空间和 IO - 网络流量 - **进程详情**(进程内存、CPU、线程数、句柄数等) ### Jaeger (链路跟踪) - **端口**: - Agent: 6831 (UDP) - Query UI: 16686 - **作用**: 分布式链路跟踪,追踪请求在系统中的完整路径 - **配置**: 需要在 Java 应用集成 Jaeger 客户端(参考 `config/jaeger-java-integration.md`) ## 常用操作 ### 启动所有服务 ```cmd start.bat ``` ### 停止所有服务 ```cmd stop.bat ``` ### 查看服务状态 访问各个服务的 metrics 端点: - MySQL: http://localhost:9104/metrics - Elasticsearch: http://localhost:9114/metrics - MongoDB: http://localhost:9216/metrics - Blackbox: http://localhost:9115/metrics - Redis: http://localhost:9121/metrics - Windows Exporter: http://localhost:9182/metrics - JMX: http://localhost:9999/metrics - Jaeger UI: http://localhost:16686 ### 修改配置 1. 修改 `config/` 目录下的配置文件 2. 重新运行 `deploy.bat` 应用配置 3. 重启服务(先运行 `stop.bat`,再运行 `start.bat`) ## 故障排查 ### 服务无法启动 1. 检查端口是否被占用 ```cmd netstat -ano | findstr :9090 netstat -ano | findstr :3000 ``` 2. 查看日志文件 - Prometheus: `prometheus/logs/` - Grafana: `grafana/logs/` ### 无法采集数据 1. 检查数据库连接 - 验证 MySQL/MongoDB/Elasticsearch 是否正常运行 - 检查连接配置是否正确 2. 检查 Exporter 是否正常运行 - 访问对应的 metrics 端点 - 查看是否有错误信息 ### Grafana 无法显示数据 1. 检查 Prometheus 数据源配置 - 登录 Grafana - 进入 Configuration > Data Sources - 验证 Prometheus 数据源连接 2. 检查时间范围 - 确保查询的时间范围内有数据 ## 性能优化 ### Prometheus 存储优化 编辑 `prometheus/prometheus.yml`,添加: ```yaml storage: tsdb: retention.time: 15d # 数据保留15天 retention.size: 10GB # 最大存储10GB ``` ### Grafana 优化 - 减少面板刷新频率 - 使用数据源缓存 - 限制查询时间范围 ## 安全建议 1. **修改默认密码** - 首次登录 Grafana 后立即修改 admin 密码 2. **防火墙配置** - 仅开放必要的端口(3000, 9090) - 限制 exporter 端口访问 3. **数据库认证** - 使用只读账号连接数据库 - 避免使用 root 账号 ## 更多信息 - 详细部署方案: `部署方案.md` - 下载链接: `下载链接.md` - 监控指标查询示例: `监控指标查询示例.md` - Prometheus 文档: https://prometheus.io/docs/ - Grafana 文档: https://grafana.com/docs/ ## 技术支持 如遇问题,请检查: 1. 日志文件 2. 配置文件是否正确 3. 端口是否被占用 4. 数据库连接是否正常