Bin immer wieder von den Grafana Dashboards begeistert. Sehen toll aus und sind für eine Langzeitüberwachung und Monitoring extrem nützlich.
Muss ich in meinem Homelab jetzt auch mal installieren um damit etwas rumzuspielen und Erfahrung zu sammeln. (Server OS ist Debian 10.)
30.08.2020 - Anleitung aktualisiert. (Telegraf 1.15.2, InfluxDB 1.8.2, Grafana 7.1.5)
Die Anleitung ist nicht mehr aktuell! Hier ist eine gute Anleitung von HowtoForge (14.01.2024):
https://www.howtoforge.de/anleitung/so-installierst-du-den-tig-stack-telegraf-influxdb-und-grafana-unter-debian-12/
Der TIG-Stack besteht aus diesen drei Komponenten:
- Telegraf – Agent für die Erfassung und Sammlung von Messdaten. (sammelt)
- InfluxDB – Performante Zeitreihendatenbank. (speichert)
- Grafana – Datenvisualisierung für Zeitreihenanalyse. (visualisiert)
InfluxDB installieren
Die aktuelle InfluxDB Version hier herunterladen und installieren.
wget https://dl.influxdata.com/influxdb/releases/influxdb_1.8.2_amd64.deb dpkg -i influxdb_1.8.2_amd64.deb
Den Service automatisch starten lassen.
systemctl daemon-reload systemctl enable influxdb systemctl start influxdb
Konfigurationsdatei: /etc/influxdb/influxdb.conf (keine Änderungen, alles auf default)
Telegraf installieren
Die aktuelle Telegraf Version hier herunterladen und installieren.
wget https://dl.influxdata.com/telegraf/releases/telegraf_1.15.2-1_amd64.deb dpkg -i telegraf_1.15.2-1_amd64.deb
Den Service automatisch starten lassen.
systemctl daemon-reload systemctl enable telegraf systemctl start telegraf
Konfigurationsdatei: /etc/telegraf/telegraf.conf (keine Änderungen, alles auf default)
Telegraf erstellt nach dem starten automatisch seine InfluxDB Datenbank und befüllt diese auch schon mit gesammelten Daten des eigenen Servers.
root@tig:~# influx Connected to http://localhost:8086 version 1.8.2 InfluxDB shell version: 1.8.2 Enter an InfluxQL query # Datenbanken anzeigen > show databases name: databases name ---- _internal telegraf # Datenbank wechseln > use telegraf Using database telegraf # Messungen anzeigen > show measurements name: measurements name ---- cpu disk kernel mem processes swap system # einfache query > select * from system limit 5 name: system time host load1 load15 load5 n_cpus n_users uptime uptime_format ---- ---- ----- ------ ----- ------ ------- ------ ------------- 1559053420000000000 tig 0.52 0.63 0.68 1 1 929193 10 days, 18:06 1559053430000000000 tig 0.74 0.65 0.72 1 1 929203 10 days, 18:06 1559053440000000000 tig 0.62 0.64 0.7 1 1 929213 10 days, 18:06 1559053450000000000 tig 0.57 0.63 0.69 1 1 929223 10 days, 18:07 1559053460000000000 tig 0.48 0.63 0.66 1 1 929233 10 days, 18:07
Passt, Daten landen in InfluxDB.
Grafana installieren
Die aktuelle Grafana Version hier herunterladen und installieren.
apt-get install -y adduser libfontconfig1 wget https://dl.grafana.com/oss/release/grafana_7.1.5_amd64.deb dpkg -i grafana_7.1.5_amd64.deb
Den Service automatisch starten lassen.
systemctl daemon-reload systemctl enable grafana-server systemctl start grafana-server
Konfigurationsdatei: /etc/grafana/grafana.ini (keine Änderungen, alles auf default)
Der Grafana Webserver ist er über Port 3000 erreichbar. http://<IP>:3000 (default user und password: admin)
Grafana Data Source erstellen
Data Sources → Add data source → Type: InfluxDB → Database: telegraf
Grafana Dashboard erstellen
Dashboards → new Dashboard → Add Query → Query: Telegraf
Die Basis des TIG Stacks ist fertig. Jetzt kann ausprobiert und rumgespielt werden! ;)
Sonstiges
Grafana Play – Demoserver um mal zu sehen was alles mit Grafana möglich ist.
Grafana Dashboards – Fertige Dashboards für die verschiedensten Einsatzzwecke und Anwendungen.
Telegraf Input Plugins – Was von Telegraf alles über die inputs gesammelt werden kann.
Es gibt zwar eine Ausgabe in der Datenbank mit z.B. select * from system limit 5
Allerdings kommen leider im Grafana diese Daten nicht an. Fehlen da Username und Passwort für den Telegraf Datenbank User?
Wi
Das kommt auf _dein_ Setup an, kann ich dir nicht sagen.
Beim anlegen einer neuen Data Source und einem Save & Test, siehst du ja ob die Verbindung ok ist.
Dann legst du ein neues Dashboard auf Basis der neuen Data Source an und erstellst dir deine Abfragen.
Oder nimmst einfach ein fertiges System-Dashboard von Grafana.
Hallo und vielen Dank für die übersichtliche Ausarbeitung!
Ich habe ein Frage zu Telegraf:
Ich sende einige Daten über MQTT über eine SPS. Es wird topic1/Msg1; topic2/Msg2; … nacheinander gesandt. Dadurch haben die Daten nicht alle den gleichen Timestamp.
Will ich jetzt einen Graphen z.B. Msg1 (Y-Achse) über Msg2 (X-Achse) darstellen ist das in Grafana eher schwierig bis unmöglich, da die Daten unterschiedliche Timestamps haben.
Ist es in Telegraf möglich die Daten in ein Batch zusammen zu fassen und diese mit einem Timestamp in InfluxDB zu schreiben? Gibt es andere Möglichkeiten das zu lösen?
Viele Grüße
Stefan
Vielleicht die Werte erst in eine Datei schreiben lassen und dann an Telegraf übergeben.
– https://github.com/influxdata/telegraf/tree/master/plugins/inputs/file
– https://github.com/influxdata/telegraf/tree/master/plugins/inputs/tail
Hallo,
leider scheitert das Starten von Telegraf (telegraf_1.29.5-1_amd64.deb) mit folgendem Fehler:
Job for telegraf.service failed because the control process exited with error code.
See “systemctl status telegraf.service” and “journalctl -xeu telegraf.service” for details.
Kannst du helfen?
Da hat sich wohl einiges geändert.
Damit der Telegraf Service startet, in der /etc/telegraf/telegraf.conf:
###############################################################################
# OUTPUT PLUGINS #
###############################################################################
# # Configuration for sending metrics to InfluxDB 2.0
[[outputs.influxdb_v2]]
# ## The URLs of the InfluxDB cluster nodes.
# ##
# ## Multiple URLs can be specified for a single cluster, only ONE of the
# ## urls will be written to each interval.
# ## ex: urls = ["https://us-west-2-1.aws.cloud2.influxdata.com"]
urls = ["http://127.0.0.1:8086"]
Die InfluxDB muss aber noch weiter konfiguriert werden.
Danke das hat schon mal weitergeholfen.
Ich versuche die syslogs an Telegraf weiterzuleiten.
Alle Dienste (telegraf, influxdb und grafana starten sauber und werfen keinen Fehler.
Bei der telegraf.con hab ich noch aktiviert/ergänzt:
[[inputs.syslog]]
server = “tcp://:6514”
Die rsyslog.conf habe ich entsprechend konfiguriert:
$ActionQueueType LinkedList
$ActionQueueFileName srvrfwd
$ActionResumeRetryCount -1
$ActionQueueSaveOnShutdown on
$ModLoad imudp #loads the udp module
$UDPServerAddress localhost
$UDPServerRun 514
*.* @@(o)127.0.0.1:6514;RSYSLOG_SyslogProtocol23Format
In Influx ist ein Telegraf Bucket angelegt, in dem auch Syslog und die verschiedenen Felder (facility_code, message etc.) vorhanden sind. Es scheint aber so dass keine Daten hinzugefügt werden. Hast du eine solche Konfiguration schon mal gemacht?
Nein, bisher noch nicht.
Hier ist noch eine gute Anleitung für den TIG Stack.
https://www.howtoforge.de/anleitung/so-installierst-du-den-tig-stack-telegraf-influxdb-und-grafana-unter-debian-12/