NEWS
iobroker und telegraf [gelöst]
-
sieht dann so aus:
-
Hier der Vollständigkeit halber der Ausschnitt aus dem telegraf.conf-file, der die MQTT-Einstellungen betrifft:
# # Configuration for MQTT server to send metrics to [[outputs.mqtt]] servers = ["192.xxx.xxx.xx:1883"] # required. # Bert # ## MQTT outputs send metrics to this topic format # ## "<topic_prefix>/<hostname>/<pluginname>/" # ## ex: prefix/web01.example.com/mem topic_prefix = "Telegraf" # # ## QoS policy for messages # ## 0 = at most once # ## 1 = at least once # ## 2 = exactly once qos = 1 # # ## username and password to connect MQTT server. # # username = "telegraf" # # password = "metricsmetricsmetricsmetrics" # # ## client ID, if not set a random ID is generated # # client_id = "" # # ## Timeout for write operations. default: 5s # # timeout = "5s" # # ## Optional TLS Config # # tls_ca = "/etc/telegraf/ca.pem" # # tls_cert = "/etc/telegraf/cert.pem" # # tls_key = "/etc/telegraf/key.pem" # ## Use TLS but skip chain & host verification # # insecure_skip_verify = false # # ## When true, metrics will be sent in one MQTT message per flush. Otherwise, # ## metrics are written one metric per MQTT message. # batch = false # # ## When true, metric will have RETAIN flag set, making broker cache entries until someone # ## actually reads it retain = true # # ## Defines the maximum length of time that the broker and client may not communicate. # ## Defaults to 0 which turns the feature off. For version v2.0.12 of eclipse/mosquitto there is a # ## [bug](https://github.com/eclipse/mosquitto/issues/2117) which requires keep_alive to be set. # ## As a reference eclipse/paho.mqtt.golang v1.3.0 defaults to 30. # # keep_alive = 0 # # ## Data format to output. # ## Each data format has its own unique set of configuration options, read # ## more about them here: # ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md data_format = "json"
-
@jahnbes wie gewußt bin kein profi mit mqtt - die settings wollte ich noch bei dir fragen
-
falls es dich interessiert:
das script (evtl muss das angeglichen werden)
- erstellt ordner "0_userdata.0.TELEGRAF"
- holt alles was unter "mqtt.0.telegraf.." ist
- schreibt die werte daraus - jede minute
meine konfig für die festplatten (für jede festplatte ein eintrag, eintrag in Messurement erzeugt den dp):
[[inputs.win_perf_counters.object]] # Disk times and queues ObjectName = "LogicalDisk" Instances = ["E:"] Counters = [ "% Idle Time", "% Free Space", "Free Megabytes", ] Measurement = "win_disk-E"
-
Danke für den Tipp mit den Platten, der hat mir sehr geholfen, die erste ist schon drin.
Weißt Du, was unter "cpu" die Felder "usage_idle" und insbesondere "usage_system" und "usage_user" bedeuten?
Viele Grüße, Bert.
-
-
in deutsch habe ich nur das gefunden
Prozessorauslastung messen und Vorlage speichern
Um die Auslastung des Prozessors zu messen, wird am besten der Menüpunkt „Performance Monitor“ aufgerufen. Mit „Blank workspace“ wird ein neuer Workspace zur Überwachung erstellt. Danach wird mit „Add Counter“ das Objekt „Prozessor“ ausgewählt, als „Instance“ wählt man idealerweise alle Prozessoren im System. Hier kann auch nach einzelnen Kernen gefiltert werden. Als „Counter“ wird „Prozessorzeit“ aktiviert.Es sollte darauf geachtet werden, dass die Auslastung des Prozessors auf verschiedene Prozesse verteilt wird. Bei „Graphy Type“ kann zwischen grafischer Ansicht und einer Tabelle unterschieden werden. Der Prozessor sollte nur maximal bis 70% ausgelastet werden, idealerweise deutlich darunter.
Parallel lassen sich weitere Counter hinzufügen, zum Beispiel „Priviligerte Zeit (%)“. Hier wird die Gesamtzeit in Prozenten angezeigt, die der Prozessor benötigt, um Windows-Kernel-Befehle auszuführen. Auch hier sollten die Werte nicht zu hoch liegen.
Ebenfalls wichtig ist noch „Prozessor: Benutzerzeit (%)“. Dieser Wert gibt den prozentualen Zeitanteil an der Gesamtzeit an, die der Prozessor benötigt, um Benutzerprozesse auszuführen. Dabei kann es sich zum Beispiel um Prozesse für Microsoft SQL-Server handeln.
Über „System: Prozessor-Warteschlangenlänge“, beziehungsweise „Processor Queue Length“ lassen sich die Threads messen, die auf Prozessorzeit warten. Wenn die Threads eines Prozesses mehr Zyklen benötigen als zur Verfügung stehen, kann es zu Problemen kommen. Wenn bei dieser Messung viele Prozesse versuchen, Prozessorzeit zu beanspruchen, sollten schnellere Prozessoren verbaut werden.
-
Nun ist es geschafft, die Systemdaten des Windows-PC werden auf diesem mittels Telegraf gesammelt und mit MQTT an den iobroker gesandt, der auf einem Raspberry Pi läuft.
Von dort aus erfolgt u.a. die Visualisierung mit HABpanel:Die Daten der Netzwerkplatte, ein Synology-NAS, kommen über den Adapter "Synology NAS" in den iobroker.
Die Temperaturen im PC würde ich auch gern darstellen, da bin ich aber auch mit Telegraf noch nicht rangekommen.
-
@jahnbes die temp sache check ich auch nicht
mache das so (etwas umständlich):
https://forum.iobroker.net/topic/27520/cpu-temperatur-win-pc-in-iobroker-darstellen
-
bin etwas weiter mit temp in telegraf
-
das hier downloaden und laufen lassen - als service oder beim startup - zum testen einfach aufrufen
https://openhardwaremonitor.org/
das in conf:
[[inputs.exec]] interval = "30s" commands = ['powershell -executionpolicy bypass -File "C:/Program Files/telegraf/ohm.ps1"'] #data_format = "influx"
das hier in den ordner, wo telegraf läuft - muss als file dort liegen:
im mqtt setting auf influx umstellen !
data_format = "influx"
das hier enablen - darunter steht nix - nur diese zeile - ist die temp des motherboards
[[inputs.temp]]
-
-
Ich habe es mir angesehen und eine Frage. Du setzt an einer Stelle
data_format = "influx"
Für meine Anwendung muss ich aber
data_format = "json"
setzen. Beißt sich das nicht, oder habe ich etwas falsch verstanden?
Gruß Bert.
-
@jahnbes ist verwirrend
aber anders geht es nicht - sonst funkt. der hardware manager nicht - bzw die daten
bei mir kommt trotzdem alles richtig an -
-
@jahnbes nee - warte nochmal - überprüfe gerade
-
bei mqtt setting - ist json
bei dem[[inputs.exec]] interval = "30s" commands = ['powershell -executionpolicy bypass -File "C:/Program Files/telegraf/ohm.ps1"'] #data_format = "influx"
ist das dataformat auskommentiert
-
Ok, ich hatte gepennt. Danke!