一个用于将Pi-Hole统计信息发送到InfluxDB的Python守护进程
项目描述
Pi-hole-Influx
一个简单的守护进程脚本,将Pi-Hole统计信息报告给InfluxDB,并准备好通过Grafana显示。
注意:最近版本中的配置选项发生了根本性的变化。请阅读下面的当前状态。
设置(使用Docker)
-
要使用Docker运行守护进程,请使用以下命令
docker run \ -e PIHOLE_INFLUXDB_HOST="myhostname" \ -e PIHOLE_INFLUXDB_PORT="8086" \ -e PIHOLE_INFLUXDB_USERNAME="myusername" \ -e PIHOLE_INFLUXDB_PASSWORD="mysupersecretpassword" \ -e PIHOLE_INFLUXDB_DATABASE="pihole" \ -e PIHOLE_INSTANCES="localhost=http://127.0.0.1/admin/api.php" \ registry.gitlab.com/janw/pi-hole-influx
-
对于在Raspberry Pi(arm v7架构)上运行,请使用专门的
armv7
镜像标签docker run \ -e PIHOLE_INFLUXDB_HOST="myhostname" \ -e PIHOLE_INFLUXDB_USERNAME="myusername" \ -e PIHOLE_INFLUXDB_PASSWORD="mysupersecretpassword" \ --network host \ registry.gitlab.com/janw/pi-hole-influx:armv7
以下值是默认值,如果没有设置,则将使用这些值
PIHOLE_INFLUXDB_PORT="8086"
PIHOLE_INFLUXDB_HOST="127.0.0.1"
PIHOLE_INFLUXDB_DATABASE="pihole"
PIHOLE_INSTANCES="localhost=http://127.0.0.1/admin/api.php"
PIHOLE_INSTANCES
包含要报告的Pi-hole实例。可以以类似字典的boxed语法给出多个实例,称为TOML中的内联表
PIHOLE_INSTANCES="{first_one="http://127.0.0.1/admin/api.php",second_pihole="http://192.168.42.79/admin/api.php"[,…]}"
请注意,实例以自定义名称为前缀。
Docker-compose示例
如果您想通过Docker-compose运行守护进程,您可能需要下面的配置示例。
version: "2"
services:
piholeinflux:
image: registry.gitlab.com/janw/pi-hole-influx
container_name: piholeinflux
restart: unless-stopped
environment:
# Replace details with your InfluxDB's hostname and credentials
PIHOLE_INFLUXDB_HOST: "10.10.10.1"
PIHOLE_INFLUXDB_PORT: "8086"
PIHOLE_INFLUXDB_USERNAME: "pihole"
PIHOLE_INFLUXDB_PASSWORD: "pihole"
PIHOLE_INFLUXDB_DATABASE: "pihole"
# Replace with your Pi-Hole's address including path to API below
PIHOLE_INSTANCES: "pihole=http://10.10.0.10/admin/api.php"
# OPTIONAL: Instead of the aobove environment variables,
# use a custom copy of the user.toml config file.
volumes:
- ./custom/config.toml:/user.toml
设置(传统方式)
由于Pi-hole(正如其名所示)是专门为Raspberry Pi构建的(我也在那里运行它),以下步骤假定在Raspbian Strech Lite上有一个Pi-hole实例,并且到目前为止没有进行任何修改。Piholestatus将配置在同一个Pi上运行。
首先,使用apt安装必要的软件包,因为Raspbian Lite没有安装git或pip。
sudo apt update
sudo apt install git python3-pip -y
现在克隆仓库,安装Python依赖项,并确保复制并调整示例配置文件以匹配您的设置。
# Install package via pip
pip3 install pi-hole-influx
# Download config.example and modify it (should be self-explanatory)
wget -O user.toml https://raw.githubusercontent.com/janw/pi-hole-influx/master/user.toml.example
vi user.toml
在首次启动守护进程之前,将systemd服务符号链接到正确位置,重新加载并启用服务。
sudo ln -s /home/pi/pi-hole-influx/piholeinflux.service /etc/systemd/system/
sudo systemctl --system daemon-reload
sudo systemctl enable piholeinflux.service
现在您可以开始启动守护进程了。等待几秒钟以检查其状态。
sudo systemctl start piholeinflux.service
sudo systemctl status piholeinflux.service
状态应该如下所示。注意显示守护进程上次报告给InfluxDB的Status:
行。
● piholeinflux.service - Pi-hole-Influx - Send Pi-hole statistics to InfluxDB for visualization
Loaded: loaded (/home/pi/pi-hole-influx/piholeinflux.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2018-06-22 19:03:56 UTC; 10min ago
Docs: https://github.com/janw/pi-hole-influx
Main PID: 21329 (python)
Status: "Reported to InfluxDB at 2018-06-22 19:14:09 +0000"
CGroup: /system.slice/piholeinflux.service
└─21329 /usr/bin/python /home/pi/pi-hole-influx/piholeinflux.py
设置Grafana仪表板
上方的示例仪表板使用收集的数据,并以简洁和合理的方式显示在图表和单个统计中。您可以从存储库中包含的dashboard.json
文件导入仪表板到您的Grafana实例,或者使用ID 6603
从Grafana仪表板目录导入。
版权声明
脚本最初由Jon Hayward创建,由/u/tollsjo于2016年12月修改以与InfluxDB兼容,并由@johnappletree改进和扩展。“如果我看得更远,那是因为我站在巨人的肩膀上”。🤓
项目详情
pi-hole-influx-0.1.0a1.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f8e7a687833ed82b8d49dab292c94777a09ab3209dd1ce3902a432c3e2b9ccff |
|
MD5 | b642c5c8025b639d43686580ceeb608b |
|
BLAKE2b-256 | 23ae29543140e0b9962dc816b74ed8f274bacfd690e04edeee257a574bfecfc4 |
pi_hole_influx-0.1.0a1-py3-none-any.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0428dc9f5bee16ab4a74a2e2e52282e0c594a6014a029777c09e0bcd4a11ae08 |
|
MD5 | a962d66c68ee0d57db024a2e6187dc51 |
|
BLAKE2b-256 | 678204a51c565953d8ee70959354beb31b71122d647531e52f172a42d94a05b0 |