Anleitung / Kochbuch für Statistik Server

Noch was,

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

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.

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

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

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

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.

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.

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.)

Ja beide benutzen http.

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

Fastd oder l2tp hast du doch bestimmt eh am laufen…

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?

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 „Gefällt mir“

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.

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

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 „Gefällt mir“

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?

Und wieso collectd wo ihr doch schon Influx Produkte nutzt?

Yanic für jede einzelne Domain separiert - der yanic bindet auf den Siegburger Gateways jeweils an die fe80-Adresse, nicht global. Durch die getrennten .json Daten lassen sich dann später auch lokale Community-Maps einfacher aufsetzen.

Der http-collector (cronjob) zieht sich in Rhein Sieg auch Daten aus Troisdorf - mit älteren Yanic-Sourcen, die unabhängig von den Siegburger Servern laufen. Die yanics aus Troisdorf könnten auch direkt abliefern - tun sie halt nicht. Auf dem Map-Server sind im workflow auch optional ein paar perl-scripte hinterlegt, die importierte .json patchen können vor der Bereitstellung im meshviewer.

collectd macht nicht Node-Monitoring, sondern Server-Monitoring - da landen also keine nodeinfos in der Datenbank. Eine Grafana-Instanz kann so über die verschiedenen Datenbanken auf alle Ressourcen zugreifen und für’s Monitoring Alerts auslösen.

Der Statistik-Server läuft als VM im Proxmox - dort findet übergreifend auch das Firewalling statt.

2 „Gefällt mir“

Danke für die Erklärung, aber warum ihr collectd nutzt obwohl ihr eine InfluxDB habt erschließt sich mir immer noch nicht. Oder nutzt ihr fürs Server monitoring collectd-web ?

@comancho: collectd mit network plugin leitet die gesammelten Daten direkt an den collectd auf dem Statistik Server mit Authentifizierung weiter.
So können beliebige openwrt-Router mit collectd/Server mit collectd ihre Stats abliefern - z.B. beim Firmware-Bau:

Der lokale collectd vom Statistik-Server macht connectivity checks auf die Gateways:

Vom Grafana gehen die Alerts per Mail raus und an einen #monitoring channel im Slack.

1 „Gefällt mir“