Sammelt ALFRED-Daten und verteilt sie an verschiedene Dienste weiter (Karte, Bot, Graphite, Knoten-Management, etc.)
Helge Jung e87bb9b2c8 graphite output: prefix 'nodes.' for nodes automatically | 9 years ago | |
---|---|---|
contrib | 9 years ago | |
ffstatus | 9 years ago | |
.gitignore | 9 years ago | |
Readme.md | 9 years ago | |
batcave.py | 9 years ago | |
batcave.sublime-project | 10 years ago | |
requirements.txt | 10 years ago |
Batman / Alfred Transmission Collection, Aggregation & Value Engine
Dieser Daemon läuft auf einem Rechner der im Freifunk-Mesh hängt und fragt periodisch (Default = 15s) die Batman- und Alfred-Daten ab.
Die Daten werden aggregiert und können anschließend an mehrere Datensenken weitergegeben werden:
Zusätzlich besteht die Möglichkeit der Datenabfrage über eine HTTP-JSON-Schnittstelle.
sudo apt-get install python-daemon python-redis python-requests
sudo ln -s "`pwd`/contrib/init-script.sh" /etc/init.d/ffstatus
echo "DAEMON_DIR=`pwd`" | sudo tee -a /etc/default/ffstatus
sudo update-rc.d ffstatus defaults
sudo update-rc.d ffstatus enable
Ohne Paramter startet die BATCAVE mit einem lokalen Storage (storage.dat im aktuellen Verzeichnis).
Empfohlen wird jedoch die Verwendung von Redis als Storage-Backend. Hierzu ist dem Parameter -S
mindestens der String "redis:" anzugeben. Optional folgen können - jeweils mit Doppelpunkt getrennt - der Redis-Hostname, -Port und -Kennwort; z.B. -S redis:localhost:6379:geheim
.
usage: batcave.py [-h] [--logfile LOGFILE] [--interval INTERVAL] [-v] [-d]
[-n] [-A ALFRED_JSON] [-B BATADV_VIS] [-G GRAPHITE_HOST]
[--graphite-port GRAPHITE_PORT] [--dashing-url DASHING_URL]
[--dashing-token DASHING_TOKEN]
[--api-bind-host API_BIND_HOST]
[--api-bind-port API_BIND_PORT] [-S STORAGE]
Batman/Alfred Transmission Collection, Aggregation & Value Engine
optional arguments:
-h, --help show this help message and exit
--logfile LOGFILE path for log file
--interval INTERVAL data poll interval
-v, --verbose increase output verbosity
-d, --no-detach Don't detach (daemonize) ourself
-n, --no-send Fetch data but don't send it
-A ALFRED_JSON, --alfred-json ALFRED_JSON
executable path for alfred-json
-B BATADV_VIS, --batadv-vis BATADV_VIS
executable path for batadv-vis
-G GRAPHITE_HOST, --graphite-host GRAPHITE_HOST
Graphite host
--graphite-port GRAPHITE_PORT
Graphite port
--dashing-url DASHING_URL
Dashing URL
--dashing-token DASHING_TOKEN
Dashing's secret update token
--api-bind-host API_BIND_HOST
API-Server Hostname
--api-bind-port API_BIND_PORT
API-Server Port
-S STORAGE, --storage STORAGE
Path where to store data or
"redis:[<host>[:<port>[:<password>]]]"
Im contrib/
liegen mehrere Skripte für den lokalen Betrieb: