
ekofr/pihole-exporterPI-Hole Prometheus Exporter是一款专为PI-Hole树莓派广告拦截器设计的Prometheus导出器。它能够从PI-Hole实例中采集关键运行指标(如拦截域名数量、DNS查询总量、广告拦截率等),并通过Prometheus兼容的接口暴露,支持与Grafana集成实现数据可视化监控。
适用于已部署PI-Hole广告拦截器的用户,需要对PI-Hole运行状态、广告拦截效果、网络查询性能进行实时监控和数据分析的场景。特别适合在Prometheus+Grafana监控架构中使用,帮助管理员直观掌握网络广告拦截情况。
通过以下命令启动容器,使用环境变量配置连接参数:
bashdocker run \ -e 'PIHOLE_HOSTNAME=192.168.1.2' \ # PI-Hole主机IP或域名 -e 'PIHOLE_PASSWORD=mypassword' \ # PI-Hole Web界面密码(二选一) # 或使用PI-Hole API令牌(从/etc/pihole/setupVars.conf的WEBPASSWORD获取) # -e 'PIHOLE_API_TOKEN=your_api_token' \ -e 'INTERVAL=30s' \ # 指标拉取间隔(默认10s) -e 'PORT=9617' \ # 导出器监听端口(默认9617) -p 9617:9617 \ # 端口映射 ekofr/pihole-exporter:latest
若PI-Hole启用HTTPS访问,需添加协议配置并挂载SSL证书:
bashdocker run \ -e 'PIHOLE_PROTOCOL=https' \ # 访问协议(http/https) -e 'PIHOLE_HOSTNAME=192.168.1.2' \ -e 'PIHOLE_PASSWORD=mypassword' \ -e 'INTERVAL=30s' \ -e 'PORT=9617' \ -v '/etc/ssl/certs:/etc/ssl/certs:ro' \ # 挂载本地SSL证书目录 -p 9617:9617 \ ekofr/pihole-exporter:latest
| 环境变量 | 描述 | 默认值 |
|---|---|---|
PIHOLE_HOSTNAME | PI-Hole所在主机的IP地址或域名 | 127.0.0.1 |
PIHOLE_PASSWORD | PI-Hole Web界面登录密码(与PIHOLE_API_TOKEN二选一) | 无 |
PIHOLE_API_TOKEN | PI-Hole API令牌(从/etc/pihole/setupVars.conf的WEBPASSWORD获取) | 无 |
PIHOLE_PROTOCOL | 访问PI-Hole的协议(http/https) | http |
INTERVAL | 指标数据拉取间隔(支持s/秒、m/分等单位,如30s、5m) | 10s |
PORT | 导出器服务监听端口 | 9617 |
在Prometheus配置文件prometheus.yml中添加如下抓取配置:
yamlscrape_configs: - job_name: 'pihole' static_configs: - targets: ['<exporter_ip>:9617'] # 替换为导出器所在主机IP
提供官方预配置Grafana仪表盘模板,可通过以下链接获取:
| 指标名称 | 描述 |
|---|---|
| pihole_domains_being_blocked | 被拦截的域名总数 |
| pihole_dns_queries_today | 当日DNS查询总次数 |
| pihole_ads_blocked_today | 当日拦截广告数量 |
| pihole_ads_percentage_today | 当日广告拦截百分比 |
| pihole_unique_domains | 唯一域名数量 |
| pihole_queries_forwarded | 转发的DNS查询数量 |
| pihole_queries_cached | 缓存的DNS查询数量 |
| pihole_clients_ever_seen | 历史客户端总数 |
| pihole_unique_clients | 唯一客户端数量 |
| pihole_dns_queries_all_types | 所有类型DNS查询总数 |
| pihole_reply | 各类回复状态的数量分布 |
| pihole_top_queries | 按域名统计的顶级查询数量 |
| pihole_top_ads | 按域名统计的顶级广告请求数量 |
| pihole_top_sources | 按源IP统计的顶级请求来源数量 |
| pihole_forward_destinations | 按目标统计的转发请求数量 |
| pihole_querytypes | 按类型统计的DNS查询数量分布 |
| pihole_status | PI-Hole运行状态(1=启用,0=禁用) |
提供Helm Chart用于Kubernetes集群部署,详情参见:[***]
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务