subDesTagesMitExtraKaese f81a93ede1 fix app_mode setting | 2 tahun lalu | |
---|---|---|
.github | 2 tahun lalu | |
.dockerignore | 2 tahun lalu | |
.gitignore | 3 tahun lalu | |
Dockerfile | 2 tahun lalu | |
Pi-hole-grafana-dashboard.json | 2 tahun lalu | |
README.md | 2 tahun lalu | |
main.py | 2 tahun lalu | |
pihole.py | 2 tahun lalu | |
requirements.txt | 2 tahun lalu |
Based slightly on my other project, speedtest-to-influxdb. This project leverages the Pi-Hole API to gather data about your PiHole instance and store it inside of InfluxDB for your future projects. An example dashoard can be found here.
This project is automatically built through GitHub actions and published to DockerHub.
The InfluxDB connection settings can be configured as followed:
INFLUX_DB_URL=http://192.168.xxx.xxx:8086
INFLUX_DB_ORG=<your org name>
INFLUX_DB_TOKEN=<token>
INFLUX_DB_BUCKET=pihole
The PiHole settings can be configured as followed:
PIHOLE_URL=http://192.168.xxx.xxx
PIHOLE_INTERVAL=15
Interval in secondsOptionally you can also configure the following:
PIHOLE_AUTHENTICATION=<token>
LOG_LEVEL=DEBUG
APP_MODE=Totals
Certain parts of the API require you to be authenticated, this can be achieved by supplying the PIHOLE_AUTHENTICATION
environment variable with the token from the API settings page of the admin interface.
By doing this you'll gain access to two new measurements (tables):
and the following app modes:
APP_MODE=Totals
This is the default modeAPP_MODE=Live
APP_MODE=Raw
This does mean that your token is stored in plaintext as an environment variable and as such as malicious actor could find it and access your PiHole instance. You are advised to use this at your own risk.
The APP_MODE
changes the way the script works. The default mode is Totals
which will only send the daily totals of the PiHole instance, as displayed in the GUI. Another mode is Live
which will send a summary of the Pi-hole queries of the last PIHOLE_INTERVAL
seconds. The last mode is Raw
which will send the raw data of the Pi-hole queries.
docker run -d --name pihole-to-influx \
-e 'INFLUX_DB_URL'='<influxdb url>' \
-e 'INFLUX_DB_ORG'='<influxdb org>' \
-e 'INFLUX_DB_TOKEN'='<influxdb token>' \
-e 'INFLUX_DB_BUCKET'='pihole' \
-e 'PIHOLE_INTERVAL'='1800' \
-e 'PIHOLE_URL'='192.168.xxx.xxx' \
chriscn/pihole-to-influxdb
version: '3'
services:
pihole-to-influxdb:
image: chriscn/pihole-to-influxdb
container_name: pihole-to-influxdb
environment:
- "INFLUX_DB_URL=http://192.168.xxx.xxx:8086"
- "INFLUX_DB_ORG=myOrg"
- "INFLUX_DB_TOKEN=<token>"
- "INFLUX_DB_BUCKET=pihole"
- "PIHOLE_URL=http://192.168.xxx.xxx"
- "PIHOLE_INTERVAL=15"
- "PIHOLE_AUTHENTICATION=<token>"
- "LOG_LEVEL=DEBUG"
- "APP_MODE=Totals"