Sammelt ALFRED-Daten und verteilt sie an verschiedene Dienste weiter (Karte, Bot, Graphite, Knoten-Management, etc.)

Helge Jung ec3068544f dict_merge(): overwrite lists by default преди 10 години
contrib 55eca34b31 rename to BATCAVE преди 10 години
ffstatus ec3068544f dict_merge(): overwrite lists by default преди 10 години
.gitignore 3db322ca2c Storage: make an auto-backup преди 10 години
Readme.md e71c76cf3b ReadMe aktualisiert преди 10 години
batcave.py 9f792034d8 batcave: have -S select the used storage преди 10 години
batcave.sublime-project ae8979e552 add Sublime project file преди 10 години
requirements.txt 081c8db017 add requirements.txt listing all necessary packages преди 10 години

Readme.md

BATCAVE

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:

  • Knoten-Management (allgemeine Meta-Daten zu eigenen Knoten)
  • Graphite (Knoten-Graphen und Detail-Statistiken)

Zusätzlich besteht die Möglichkeit der Datenabfrage über eine HTTP-JSON-Schnittstelle.

Voraussetzungen

Installation

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

Aufruf

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>]]]"