Mit Grafana seine Rechner überwachen

Kaufempfehlungen, Hardwaretips, Softwareprobleme, Overclocking, Technikfragen ohne Bezug zu DC.
Nachricht
Autor
Benutzeravatar
yoyo
Vereinsvorstand
Vereinsvorstand
Beiträge: 7789
Registriert: 17.12.2002 14:09
Wohnort: Berlin
Kontaktdaten:

Mit Grafana seine Rechner überwachen

#1 Ungelesener Beitrag von yoyo » 18.01.2018 18:45

Auf mehrfachen Wunsch starte ich hier mal einen Thread zum Thema wie man mit Grafana seinen Rechner Zoo überwacht.

0. Allgemeines
In der IT ist das der sogenannte TICK Stack (Telegraf, InfluxDB, Chronograf und Kapazitor), den man zum Monitoren benutzt. Das System ist darauf ausgelegt tausende von Testwerten pro Sekunde entgegenzunehmen, grafisch darzustellen und evtl. auszuwerten. In der Firma hatte ich mal ca. 150 Rechner angeschlossen und auch noch eigene Messwerte eingespeist, so daß pro Tag 1,5 GB Daten erzeugt wurden.
In unserem Fall lassen wir den Kapazitor weg und ersetzen den Chronograf durch Grafana (ist flexibler und einfacher zu benutzen).

So sieht der TICK Stack komplett aus:
Bild

Mehr Infos zu Grafana: https://grafana.com/
Hier mal ein Beispiel wie das dann aussehen kann: https://grafana.com/api/dashboards/4164 ... 2613/image

1. InfluxDB
Als erstes wird ein zentraler Rechner benötigt, der alle Daten bekommt und auf den dann auch gleich Grafana kommt.
Anfoderungen: Linux (ich würde ein Mint oder Debian nehmen), mind. 4 GB RAM (eher mehr), mindestens 20 GB disk
Installation: Hier steht wie man für die verschiedenen Linuxe das influx Repository hinzufügt, influxdb installiert und startet.

Konfigurieren braucht man nichts.
Ab jetzt wartet InfluxDB auf Port 8086 auf Daten.

2. Grafana
Auf den gleichen Rechner auch gleich Grafana installieren.
Da steht wie man das Repository hinzufügt, installiert und Grafana startet.

Auch hier sind die default Einstellungen ok.

3. Telegraf
Den installiert ihr auf jedem System welches ihr überwachen wollt, selbst Windows ist möglich. Ich bezieh mich hier aber mal auf Linux.
Hier steht wie Telegraf installiert wird. das Repository habt ihr in Schritt 1 ja schon hinzugefügt. Also nur noch das Package installieren und starten.
Per default ermittelt Telegraf jetzt schon mal alle 10s Werte zur CPU Auslastung, Memory, RAM,...

Hier ist etwas Konfiguration notwendig.
a) Config file erstellen:
Wenn ihr noch kein /etc/telegraf/telegraf.conf file habt, erstellt ihr eines.
Als root:

Code: Alles auswählen

telegraf config > /etc/telegraf/telegraf.conf
Jetzt noch konfigurieren wohin telegraf die Daten schicken soll, an Eure InfluxDB.
Konfigfile öffnen, nach

Code: Alles auswählen

[[outputs.influxdb]]
suchen und bei urls= die url der InfluxDB eintragen. Sieht dann so aus:

Code: Alles auswählen

...
[[outputs.influxdb]]
  ## The full HTTP or UDP URL for your InfluxDB instance.
  ##
  ## Multiple urls can be specified as part of the same cluster,
  ## this means that only ONE of the urls will be written to each interval.
  # urls = ["udp://localhost:8089"] # UDP endpoint example
  urls = ["http://localhost:8086"] # required
  ## The target database for metrics (telegraf will create it if not exists).
  database = "telegraf" # required
...
Statt localhost tragt ihr den Rechnername oder IP ein wo Ihr in 1. die InfluxDB installiert habt.

Anschließend telegraf restarten.

Code: Alles auswählen

service telegraf restart
und in /var/log/syslog prüfen ob telegraf probleme hat. Vor der Konfigänderungen sollte Telegraf sich im log beschweren, dass er die Daten nicht los wird.

Jetzt sollte Telegraf in der InfluxDB eine Datenbank mit dem Namen 'telegraf' angelegt haben und dort alle 10s Messwerte hinschicken.

4. Grafana mit InfluxDB verbinden
Jetzt gehts im Browser weiter und wir sagen Grafana dass wir die Daten aus der InfluxDB anzeigen wollen.

Also Browser auf http://<euer grafana rechner>:3000 gehen und ihr seht Grafana.
Passwort per default: admin/admin

Dort dann gemäß http://docs.grafana.org/features/datasources/influxdb/ InfluxDB mit der DB 'telegraf' als Datasource hinzufügen. Die könnt ihr auch gleich zur default Datasource machen.

5. Dashboard erzeugen
Jetzt könnt ihr in Grafana neue Dashboards erzeugen, dort viele Pannels reinlegen und pro Pannel definieren was wie angezeigt werden soll.

Bei Problemen/Fragen einfach fragen, am Besten im Slack.

yoyo
HILF mit im Rechenkraft-WiKi, dies gibts zu tun.
Wiki - FAQ - Verein - Chat

Bild Bild

ChristianB
Vereinsvorstand
Vereinsvorstand
Beiträge: 1915
Registriert: 23.02.2010 22:12

Re: Mit Grafana seine Rechner überwachen

#2 Ungelesener Beitrag von ChristianB » 03.03.2018 14:51

Kurze Rückmeldung zur Anleitung. Ich habe das jetzt in der Firma auch mal installiert und bin sehr begeistert. Es ist noch zu sagen das die obige Reihenfolge unbedingt eingehalten werden sollte. Ein telegraf client muss mindestens laufen damit die DB angelegt wird. Ich habe bisher erst ein paar Windows Server angebunden und den standard telegraf dienst dafür installiert. Klappt für die grundlegenden Metriken (CPU, Disk) sehr gut. Ich werde jetzt nach und nach noch ein paar mehr metriken im telegraf format erfassen.

Vielleicht könnte yoyo ja noch kurz erläutern auf was es ankommt wenn man zusätzlich eigene metriken einspeisen will.

Benutzeravatar
yoyo
Vereinsvorstand
Vereinsvorstand
Beiträge: 7789
Registriert: 17.12.2002 14:09
Wohnort: Berlin
Kontaktdaten:

Re: Mit Grafana seine Rechner überwachen

#3 Ungelesener Beitrag von yoyo » 03.03.2018 18:01

Weitere Messwerte
Für weitere Messwerte empfehle ich zunächst mal einen Blick in die verfügbaren Telegraf Plugins zu werfen. Oft ist man ja nicht der Erste der da was will.

Gerade unter Windows kann man mit dem win_perf_counters Plugin auf alle Windows Performance Counter zugreifen. In der Windows Installation von Telegraf ist dieses Plugin eh schon aktiv. Windows hat tausende von Performance Counter und ordentliche Windows Software fügt weitere hinzu. Mein MS SQL Server hatte noch viele SQL Counter hinzugefügt. Im win_perf_counters Plugin kann man dann alle konfigurieren, die man haben möchte.

Wie findet man nun welche Performance Counter es unter Windows gibt?
- Perfmon.exe starten
- Auf der Linken Seite nach Leistung -> Überwachungstools -> Leistungsüberwachung gehen und man bekommt einen Grafen angezeigt.
Mit dem grünen + in der Toolbar kann man weitere Performance Counter hinzufügen. Und dort sieht man dann auch alle die es gibt.

Jetzt muss man die nur noch im win_perf_counters konfigurieren.

Eigene Messwerte
Es gibt 2 Möglichkeiten diese in die InfluxDB zu schicken.
a) auch über Telegraf
b) direkt per http an den Port der InfluxDB.

Ich empfehle a), weil Telegraf die Daten zwischenpuffert (defaultmässig bis zu 10000 Datensätze), falls die InfluxDB mal nicht erreichbar ist und weil man mit Telegraf die Daten auch öfter als jede Minute schicken kann. Per Linux Cron oder Windows Scheduler geht nur jede Minute, kürzer geht IMO nicht.

In beiden Fällen muss man das Influx Format erzeugen. Um z.B. Innen- und Aussentemperaturen zu ermitteln könnte man folgendes erzeugen:

Code: Alles auswählen

temperatur,host=raspi1,ort=wohnzimmer innen=22,aussen=3 1465839830100400200
Den timestamp am Ende kann man weglassen, dann nimmt Influx die aktuelle Zeit.

StepByStep wie man das über Telegraf macht:
In der Telegraf Konfig gibts das Exec Plugin womit man eigene Scripte ausführen kann. Man schreibt sich also ein Script was die Werte wie gerade beschrieben ausgibt. Telegraf führt das dann regelmäßig aus und schickt die Daten an die InfluxDB.

Also einfach das Exec Plugin in der Telegraf Konfig aktivieren, sein Script eintragen und wie oft es ausgeführt werden soll. Dann Telegraf restarten und sich die logs ansehen ob es Probleme gibt.

In der Firma hat mein (Perl) Script ca. hundert Dateien geparst und hundert Zeilen Influx Format erzeugt und wurde alle 30s aufgerufen.
HILF mit im Rechenkraft-WiKi, dies gibts zu tun.
Wiki - FAQ - Verein - Chat

Bild Bild

Benutzeravatar
yoyo
Vereinsvorstand
Vereinsvorstand
Beiträge: 7789
Registriert: 17.12.2002 14:09
Wohnort: Berlin
Kontaktdaten:

Re: Mit Grafana seine Rechner überwachen

#4 Ungelesener Beitrag von yoyo » 03.11.2019 16:42

Fritz Box Monitoring

Wer wissen will was auf seiner Fritz Box so los ist und wann wieviel Traffic erzeugt wird, kann noch seine Fritz Box ins Monitoring integrieren und die Daten in die InfluxDB einspeisen. So gehts:
https://blog.butenostfreesen.de/2018/10 ... Raspberry/

Damit hat man dann auch seine Smart Devices mit drin. Ich monitore so den Stromverbrauch der über eine Fritz Dect Steckdose geht.
An der 2. Fritz Dect Steckdose steckt meine Solaranlage und ich seh was die so an Strom erzeugt.
Alles wie immer mit Grafiken die ich bauen und zoomen kann wie ich will.
HILF mit im Rechenkraft-WiKi, dies gibts zu tun.
Wiki - FAQ - Verein - Chat

Bild Bild

Antworten

Zurück zu „Hardware, Software, Technik, Betriebssysteme“