# ping_monitor **Repository Path**: xmp111/ping_monitor ## Basic Information - **Project Name**: ping_monitor - **Description**: 基于 Python + InfluxDB + Grafana 的 ICMP Ping 监控方案,Docker快速启动。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-26 - **Last Updated**: 2026-01-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Ping 监控 基于 Python + InfluxDB + Grafana 的 ICMP Ping 监控方案。脚本按固定间隔对目标 IP 进行 ping,写入 InfluxDB,并由 Grafana 仪表板展示延迟与丢包率。 ## 主要组件 - ping-monitor:Python 脚本负责采集 ICMP 数据并写入 InfluxDB - InfluxDB 1.8:时序数据库存储监控数据 - Grafana:预置数据源与仪表板用于可视化 ## 目录结构 ``` ping_monitor_docker/ docker-compose.yml .env requirements.txt ip_data/ dst_ip.json ping/ dockerfile script/ ping_monitor.py grafana/ dashboards/ ping_dashboard.json provisioning/ dashboards/ dashboard.yml datasources/ datasource.yml ``` ## 快速开始 1. 进入项目目录 2. 启动服务 ```bash cd ping_monitor_docker docker compose up -d --build ``` 启动后访问 Grafana: - http://localhost:3000 InfluxDB HTTP API: - http://localhost:8086 ## 配置说明 配置文件位于 ping_monitor_docker/.env,常用参数: - MONITORING_SOURCE:监控点名称,会作为 InfluxDB measurement - PING_TIMEOUT:单次 ping 超时时间(秒) - MAIN_LOOP_INTERVAL:主循环间隔(秒) - THREAD_JOIN_TIMEOUT:线程等待超时(秒) ## 监控目标 编辑 ping_monitor_docker/ip_data/dst_ip.json 添加或修改目标: ```json [ {"ISP":"阿里云","IP":"223.5.5.5"}, {"ISP":"腾讯云","IP":"119.29.29.29"} ] ``` ## 数据结构 写入 InfluxDB 的关键字段: - measurement:MONITORING_SOURCE - tag:dst_isp - field:rrt(延迟 ms),loss(丢包率 %) ## 可视化 Grafana 已预置数据源与仪表板: - 数据源配置:grafana/provisioning/datasources/datasource.yml - 仪表板配置:grafana/dashboards/ping_dashboard.json 在 Grafana 中选择变量 监控点 即可查看不同监控源数据。 ![img.png](img.png)