Anleitung / Kochbuch für Statistik Server

#1

Moin zusammen,

gibt es irgendwo ein möglichst funktionierendes Kochbuch um einen Statistik Server (Graphana / InfluxDB was man so für schöne Graphen braucht) aufzusetzen?

Das Ganze möglichst auf Debian.

Yanic läuft als Backend und Meshviewer RGB als Viewer.

Danke euch.

Gruß
Christian

0 Likes

#2

Auf der Grafana / Influx Webseite gibt es jeweils ein Repository, welches hinzugefügt werden muss. Dann per apt beide installieren und in der Yanic Konfiguration Influxdb als Backend aktivieren fertig.
Die Dashboards gibt’s nicht fertig, aber wenn Du magst kann ich dir gern ein paar als Json exportieren :slight_smile:

1 Like

#3

Ich habe das damals nach dem einrichten dokumentiert. Habe gerade einmal grob drüber geschaut.
Scheint alles ok zu sein. Bei Grafana gibt es noch ein TODO :slight_smile: aber da muss man eigentlich nur einmal in die config gehen und die ip adressen richtig setzen und so. Im zweifel einmal mit netstat prüfen.
https://freifunk-suedholstein.readthedocs.io/de/latest/meshviewer.html

3 Likes

#4

Sowas hab ich gesucht Dankeschön!!!

CC:
@wusel @heini66

2 Likes

#5

Noch was,

was benötigt man für Ressourcen auf dem Server? Wir setzen idR nur auf 1Core 2GB /10GB SSD VMs.

0 Likes

#6

Gute Frage, bei uns läuft das einfach mit auf einem der Gateways ist ne VM mit 4Cores und 4GB RAM.
Speicherbedarf ist nicht weiter relevant (wenn man die Daten nicht für immer behält).

Was aber schon ein paar mal passiert ist, ist dass der RAM voll läuft weil influxdb immer mehr will. Ich weiß aber nicht ob das ein bug oder einfach sehr große Anfragen waren. Man kann in der influxdb config allerdings auch Limits setzen. Ich denke eure VM könnte reichen.

EDIT: Aber wenn mehr Ressourcen möglich sind, dann ist RAM vermutlich am hilfreichsten.

0 Likes

#7

ich fahr unseren stat srv mit 2 cores und 4 gb …

0 Likes

#8
[felix@stats1 ~]$ free -m
              total        used        free      shared  buff/cache   available
Mem:           7974        1439        3024           1        3511        6235
Swap:          5119           0        5119
0 Likes

#9

Für Grafana und Influxdb, vermutlich etwas abhängig von der Rentention:

              total        used        free      shared  buff/cache   available
Mem:          32125        2796       23205         306        6122       28569
Swap:          1903           0        1903
0 Likes

#10

Hmm, Danke für Pointer und Doku — aber das ist wieder ein AIO-Setup (alles auf einer Kiste).

Grafana, Meshviewer, InfluxDB, Prometheus, … sind bei uns jeweils einzelne VMs, teilweise nicht einmal am selben Standort (aber i. d. R. zumindest im gleichen AS :smile:). Da kommt man mit localhost nicht wirklich weiter.

Kurzum: hat das auch mal jemand »microservicig« gebaut, so mit Usermanagement in InfluxDB? Das scheint InfluxDB nämlich nicht wirklich vorzusehen:

Note: Authentication only occurs at the HTTP request scope. Plugins do not currently have the ability to authenticate requests and service endpoints (for example, Graphite, collectd, etc.) are not authenticated.

0 Likes

#11

Das ist aber kein großes Problem weil:
InfluxDB kann Auth über HTTP :

Yanic auch:

und Grafana auch (das wird auch in der web-gui abgefragt):
http://docs.grafana.org/features/datasources/influxdb/

Also einfach passende ips/Hostnames einsetzen, User anlegen und fertig.

EDIT: Man muss dann glaube ich bei Grafana noch einstellen, dass es ein proxy ist, sonst bekommt man im Browser user und pw angezeigt das geht aber auch über die grafana gui.

0 Likes

#12

Das ist unbestritten, aber da steht auch: »Plugins do not currently have the ability to authenticate requests and service endpoints (for example, Graphite, collectd, etc.) are not authenticated.« Yanic & Grafana nutzen ausschließlich das HTTP-Interface?

Wie gesagt, falls das jemand mal mit Authentifikation gebaut hat, würde ich davon gerne hören. (Ich leg’ das erstmal auf eine private IP und nehme das private Netz ins interne Routing.)

0 Likes

#13

Ja beide benutzen http.

0 Likes

#14

Bau doch was tunnelmäßiges drum Rum dann kannst du dir Auth schenken.

Fastd oder l2tp hast du doch bestimmt eh am laufen…

0 Likes

#15

Das ist gar nicht nötig, privates Netz ins Routing und gut; das ist jetzt nicht so die Herausforderung :wink: — aber es fühlt sich schon ein bißchen nach Cheating an und hat natürlich Seiteneffekte (intern, und ggf. auch aus den Meshes, liegt die InfluxDB nackig da). Evtl. mach’ ich sie doch bei HTTP öffentlich erreichbar und sichere das per Username/Password (und dies via Let’s Encrypt, also TLS) ab; mal sehen. Anyway, es tut auch soweit; zumindest nachdem ich in der InfluxDB die Tabelle angelegt habe, in die Yanic schreiben soll, scheint es zu gehen (lies: ich habe Daten in InfluxDB).

Und nach einem Upgrade von Grafana (auf 5.4.2 von 4.6.3) sind auch die Tortengraphen verwendbar (vorher fehlte der Legende die Scrollbar => das Panel wurde z. B. bei Firmware oder Gerätetypen unsäglich groß).

Ist also soweit schick, danke! Aber: wie bekomme ich das nun in den Meshviewer integriert? Wenn ich die URL im Privaten Modus (also nicht eingeloggt) aufrufe, lande ich auf /login; Grafana läuft hinter einem Apachen per …

ProxyPass / http://127.0.0.1:3000/
ProxyPassReverse / http://127.0.0.1:3000/

Wenn ich mir das Südholstein-Grafana, z. B. dies hier, ansehe, scheint das alles read-only zu sein. Um das zu erreichen, habe ich (unter Grafana 4 seinerzeit) entsprechend Nutzer eingerichtet — aber für den Meshviewer (und die Bequemlichkeit) sollte es einen Weg geben, ohne Login lesend an die Daten zu kommen? Geht Ihr alle diesen Weg aus dem Grafana-Forum oder gibt’s andere Tricks, die ich übersehen?

0 Likes

#16

Wir haben auch einen Apache Proxy vor Grafana.

Damit der öffentliche zugriff klappt gibt es einen extra Abschnitt (in der /etc/grafana/grafana.ini):

#################################### Anonymous Auth ##########################
[auth.anonymous]
# enable anonymous access
enabled = true

# specify organization name that should be used for unauthenticated users
org_name = Freifunk Südholstein

# specify role for unauthenticated users
org_role = Viewer

Die Organisation muss natürlich dafür existieren, die kann man ja einfach anlegen.

1 Like

#17

Zu dem Thema öffentlicher Zugang: In Grafana kann man einstellen, das es ein Proxy für die Anfragen ist, sonst braucht man nämlich direkten Zugriff auf die Datenquelle und das ist weder in unserer Config ,noch in der “influxdb auf eigenem Server mit Auth” Variante möglich.

0 Likes

#18

Awesome, danke! (Too many tools, far less time.)

0 Likes

#19

Für Rhein-Sieg wurde vor kurzem neuer Map-Server/Statistik-Server aufgesetzt

Ansible Rollen im Rhein-Sieg github

Schema:

Multidomain-Gateways setups kurz im Admin-Tagebuch beschrieben

3 Likes

#20

Kurze Anmerkung dazu:

Warum so viele Yanic Server? Sehen sie gws sich nicht über Batman?

Warum der http Collector, der Meshviewer (RGB) kann das doch selber?

0 Likes