Grafana
Grafana + InfluxDB
Im Gegensatz zu dem ELK Stack ist die Kombination von Grafana und InfluxDB sehr viel leichtgewichtiger und fühlt sich auch geschmeidiger an.
Grafana ist zu erreichen unter http://37.120.160.199:3000
Logbuch
Installation
- add deb https://packagecloud.io/grafana/stable/debian/ wheezy main to /etc/apt/sources.list
- apt-get install -y apt-transport-https
- curl https://packagecloud.io/gpg.key | apt-key add -
- apt-get update
- apt-get install grafana
- wget http://influxdb.s3.amazonaws.com/influxdb_0.9.5.1_amd64.deb
- dpkg -i influxdb_0.9.5.1_amd64.deb
- service influxdb start
- service grafana-server start
Konfiguration
- Auf der Grafanaoberfläche einloggen, Port 3000, user:admin, pw: admin
- Admin pw ändern
- mit 'influx' die influxDB Konsole öffnen
- DB anlegen
- admin anlegen, user anlegen, pw festlegen
- /etc/influxdb/influxdb.conf editieren
- unter http auth-enable auf true setzen
- service influxDB restart
- im Grafana die influxDB als datasource anlegen
- die Clients mir write only in die influxDB schreiben lassen
- Dashboads im Grafana erstellen
Add Data
Super easy to add data with python:
from influxdb import InfluxDBClient def main(): host = '37.120.160.199' port = 8086 user = 'client' password = ********* dbname = 'ffgoe' json_body = [ { "measurement": "test", "tags": { "host": "vpnTest" }, "fields": { "value": 7. } } ] client = InfluxDBClient(host, port, user, password, dbname) client.write_points(json_body)
clients
apt-get install python-pip pip install influxdb
edit ffgoevis, den hostnamen anpassen
cp ffgoevis /usr/local/bin/. crontab -e */5 * * * * /usr/local/bin/ffgoe_vis
TODO: ansible
Daten in die InfluxDB schieben
Auf den Supernodes liegen in
/usr/local/bin/
die Pythonscripte zum einpflegen der Daten. Das
send_to_influx
Script kann verwendet werden um Daten an die InfluxDB zu schicken.
send_to_influx -h
zeigt die flags.
Eine Beispielanwendung ist das Script
influx_traffic
Wenn der KEY == test ist, kann das Ergebnis im Grafana im TestBoard angesehen werden.
VALUE sollte ein numerischer Wert sein.
Als HOST den Namen des Supernodes angeben "VPN1-3".