Zabbix Forum hat dies geteilt

!Zabbix Forum

Bug?

Ich will wissen, ob sich die Anzahl der Einträge in /etc/ geändert hat. Dafür habe ich ein Item mit dem Key vfs.dir.count[/etc,,^\..+\.sw?$,,,0,,,,] Doku hier:zabbix.com/documentation/curre…
Damit sollte ausgeschlossen sein, daß swap-files vom vim reinzählen.

Aber:

root@zabbix-server:/etc# zabbix_get -s x.x.x.x -k 'vfs.dir.count[/etc,,^\..+\.sw?$,,,0,,,,]'
250
root@zabbix-server:/etc# ls -A1 | wc -l
250
root@zabbix-server:/etc# touch .test.swp
root@zabbix-server:/etc# ls -A1 | wc -l
251
root@zabbix-server:/etc# zabbix_get -s x.x.x.x -k 'vfs.dir.count[/etc,,^\..+\.sw?$,,,0,,,,]'
251

Es sollte doch eigentlich 250 zurückkommen?
Zabbix 7.0.16, Agent2 ebenfalls 7.0.16
Zabbix Forum hat dies geteilt

!Zabbix Forum

Ich ärgere mich seit vielen Jahren über das Datumsformat in {EVENT.DATE}, was überhaupt gar keinem Standard entspricht und auch nicht konfigurierbar ist. 2025.07.15 für heute.
Es gibt zwar Hoffnung: support.zabbix.com/browse/ZBXN… - aber erst mit 7.2 und ich bin auf 7.0, weil LTS. Und möchte eigentlich bei LTS bleiben.
Doof.

Zabbix Forum hat dies geteilt

!Zabbix Forum

Frage zu Alerts: Ich bin ja faul und klicke einfach weiter->weiter, dann kommt so eine Mail:

Problem started at 05:39:09 on 2025.07.09
Service: Beispielservice
Host: Beispielhost
Severity: High
State: CRITICAL

Original problem ID: 24395600

Was kann ich mit der 24395600 anfangen? Am Ende hätte ich gern eine URL mit direktem Link zum Problem. Und genau den finde ich aber nicht.
Wie macht ihr das?
Als Antwort auf Rainer "friendica" Sokoll

Habe eine Lösung gefunden: bei der entsprechenden Trigger-Action Operation Details eine custom message mit Subject
Problem with {ITEM.NAME} on {HOST.NAME}

und message
Problem started at {EVENT.DATE} {EVENT.TIME}
Host: {HOST.NAME}
Service: {ITEM.NAME}
Severity: {TRIGGER.SEVERITY}
State: {EVENT.STATUS}

Details: {TRIGGER.NAME}

See: https://meinzabbixserver/tr_events.php?triggerid={TRIGGER.ID}&eventid={EVENT.ID}

Und schon hat man einen Link zu der Seite mit allen prachtvollen Details.
Zabbix Forum hat dies geteilt

!Zabbix Forum

Heute habe ich etwas nützliches gelernt, was ich weitergeben möchte.
Ausgangspunkt: Ich möchte wissen, ob /etc/passwd geändert wurde, sprich, ob User hinzugefügt oder gelöscht wurden.
Dazu habe ich mir ein neues Template erstellt (es soll noch mehr security-Zeug dort hinein, später). Darin ein Item "vfs.file.cksum[/etc/passwd,sha256]" - das speichert den Hash der Datei. Dann ein Trigger mit dieser Expression: "change(/<Template-Name>/vfs.file.cksum[/etc/passwd,sha256])<>0"
Funktioniert. Sobald die Datei geändert wird und damit ihr Hash, feuert der Trigger und Zabbix malt ein Problem.
Doch ach: da sich der gänderte Hah ja nicht gleich wieder ändert, betrachtet Zabbix beim nächsten Durchlauf das Problem als gelöst und schließt es. Völlig logisches Verhalten, aber ungewünschtes Verhalten.
Lösung:
"OK event generation" auf "none" setzen

Und "Allow manual close" anhaken!

Zabbix Forum hat dies geteilt

!Zabbix Forum

Mein Mac nennt sich immer mal wieder anders, und Zabix ist verwirrt:

imac: System information

2025-07-06 01:54:30 PM 1751802870 "Darwin Datenverarbeitungsdings.sokoll 24.5.0 Darwin Kernel Version 24.5.0: Tue Apr 22 19:53:26 PDT 2025; root:xnu-11417.121.6~2/RELEASE_X86_64 x86_64"
2025-07-06 12:39:36 PM 1751798376 "Darwin Datenverarbeitungsdings.local 24.5.0 Darwin Kernel Version 24.5.0: Tue Apr 22 19:53:26 PDT 2025; root:xnu-11417.121.6~2/RELEASE_X86_64 x86_64"
2025-07-06 11:39:36 AM 1751794776 "Darwin Datenverarbeitungsdings.local 24.5.0 Darwin Kernel Version 24.5.0: Tue Apr 22 19:53:26 PDT 2025; root:xnu-11417.121.6~2/RELEASE_X86_64 x86_64"
2025-07-06 10:39:36 AM 1751791176 "Darwin Datenverarbeitungsdings.local 24.5.0 Darwin Kernel Version 24.5.0: Tue Apr 22 19:53:26 PDT 2025; root:xnu-11417.121.6~2/RELEASE_X86_64 x86_64"
2025-07-06 09:39:36 AM 1751787576 "Darwin Datenverarbeitungsdings.local 24.5.0 Darwin Kernel Version 24.5.0: Tue Apr 22 19:53:26 PDT 2025; root:xnu-11417.121.6~2/RELEASE_X86_64 x86_64"
2025-07-06 08:39:36 AM 1751783976 "Darwin Datenverarbeitungsdings.sokoll 24.5.0 Darwin Kernel Version 24.5.0: Tue Apr 22 19:53:26 PDT 2025; root:xnu-11417.121.6~2/RELEASE_X86_64 x86_64"
2025-07-06 07:51:36 AM 1751781096 "Darwin Datenverarbeitungsdings.sokoll 24.5.0 Darwin Kernel Version 24.5.0: Tue Apr 22 19:53:26 PDT 2025; root:xnu-11417.121.6~2/RELEASE_X86_64 x86_64"
2025-07-06 01:08:24 AM 1751756904 "Darwin Datenverarbeitungsdings.sokoll 24.5.0 Darwin Kernel Version 24.5.0: Tue Apr 22 19:53:26 PDT 2025; root:xnu-11417.121.6~2/RELEASE_X86_64 x86_64"
2025-07-05 11:39:36 PM 1751751576 "Darwin Datenverarbeitungsdings.sokoll 24.5.0 Darwin Kernel Version 24.5.0: Tue Apr 22 19:53:26 PDT 2025; root:xnu-11417.121.6~2/RELEASE_X86_64 x86_64"
2025-07-05 10:39:36 PM 1751747976 "Darwin Datenverarbeitungsdings.sokoll 24.5.0 Darwin Kernel Version 24.5.0: Tue Apr 22 19:53:26 PDT 2025; root:xnu-11417.121.6~2/RELEASE_X86_64 x86_64"

Das .local kommt aus MDNS, das .sokoll aus dem regulären DNS, es ist also beides richtig.
Kann ich dem Agent irgendwie verklickern, nur eine Variante zu verwenden?
Als Antwort auf Andreas vom Zwenkauer See

Hm, da steht nur die IP, und ich connecte (logischerweise) zu dieser.
Allerdings kommt der Hostnae ja vom Agent, der vermutlich uname verwendet:
❯ uname -snrvm
Darwin Datenverarbeitungsdings.local 24.5.0 Darwin Kernel Version 24.5.0: Tue Apr 22 19:53:26 PDT 2025; root:xnu-11417.121.6~2/RELEASE_X86_64 x86_64

Vermutlich hat das mit Zabbix gar nichts zu tun, sondern mit MacOS.
Zabbix Forum hat dies geteilt

!Zabbix Forum

Vor ein paar Tagen wollte ich mal Statistiken über die Nutzung meines privaten #Wireguard Servers erheben, natürlich mit Gottes eigener Monitoring-Lösung: #Zabbix.
Stellt sich raus: Das geht nicht, prinzipbedingt nicht. Denn Wireguard ist zwar ein #VPN, aber eins ohne Tunnel.
Also gibt es auch keine Logins, keinen Tunnelaufbau… Es gibt nur verschlüsselte Pakete. Das VPN ist komplett stateless.
Was es gibt, gibt wg showzurück:

peer: pCEuAkj71mLMI8Qh6sfU38PonvJpY8F/s8MAUsdwYig=
  endpoint: x.x.x.x:58336
  allowed ips: 192.168.2.8/32
  latest handshake: 4 seconds ago
  transfer: 8.85 MiB received, 107.57 MiB sent

peer: pptgVmvH8E8o4hHPPTF8dSXmxByDIa1pjm2+A391H1o=
  endpoint: x.x.x.x:48330
  allowed ips: 192.168.2.4/32
  latest handshake: 13 seconds ago
  transfer: 61.67 MiB received, 1.10 GiB sent

peer: 8M3LcF2OZ2vEIcZnjIqvvbXVVBsw0indGhIhJVJ+2Wk=
  endpoint: x.x.x.x:60524
  allowed ips: 192.168.2.3/32
  latest handshake: 1 minute, 34 seconds ago
  transfer: 17.70 MiB received, 78.65 MiB sent

Alles, was man tun kann, ist latest handshake auszuwerten, dafür bietet sich ein UserParameter im Zabbix-Agent auf dem Wireguard-Server an:
UserParameter=conneted-wg-clients,sudo wg show | egrep 'latest handshake: (([0-9]{,2}) second|([1-9]|10) minute)' | wc -l

Damit bekomme ich die Anzahl der in den letzten 10 Minuten gesprächigen VPN-Clients.
Dieser Beitrag wurde bearbeitet. (5 Monate her)
Zabbix Forum hat dies geteilt

!Zabbix Forum

irgendwie stehe ich auf dem Schlauch.
Im Linux-Template gibt es einen Trigger prototype "Free disk space is less than 20% on volume {#FSNAME}" mit der trigger expression

last(/Template OS Linux/vfs.fs.size[{#FSNAME},pfree])<20

Das macht bei großen Filesystemen wenig Sinn, da sind 20% viel zu hoch. Ich dachte nun, ich könne bei einem Beispielhost die 20 durch ein Macro ersetzen, geht das? Und wenn ja, Preisfrage: wie müßte es heißen?
Dieser Beitrag wurde bearbeitet. (5 Monate her)
Zabbix Forum hat dies geteilt

!Zabbix Forum

Jetzt gehts ans Eingemachte :-)
Ich will einen Trigger auslösen, wenn der Agent2 veraltet ist. Dafür habe ich ein Template mit einem Trigger mit dieser Expression:

({$HOST.NAME:system.sw.os[name].iregexp(".*linux.*")} and (left(last(/Template App Zabbix Agent/agent.version),6)<>"7.0.10"))
or
({$HOST.NAME:system.sw.os[name].iregexp(".*windows.*")} and (left(last(/Template App Zabbix Agent/agent.version),5)<>"7.0.8"))
or
left(last(/Template App Zabbix Agent/agent.version),6)<>"6.4.20"
or
left(last(/Template App Zabbix Agent/agent.version),6)<>"6.0.37"

Ich habe nur Linux und Windows, aktuell ist 7.0.10 bei Linux und 7.0.9 bei Windows. Im Template habe ich absichtlich 7.0.8 reingeschrieben, dann müßte der Trigger doch auslösen?
Tut er aber nicht, und ich reiße mir die letzten verbliebenen Haare von der Kalotte :-(
Ein Testwindows meldet sich auf die Frage nach system.sw.os[name]mit Windows Server 2022 Standard

Bin ich blind?

// Bitte die &lt ; durch die spitze Klammer nach links ersetzen, das ist ein Bug in friendica.

#zabbix

Dieser Beitrag wurde bearbeitet. (7 Monate her)
Als Antwort auf Rainer "friendica" Sokoll

Zabbix/der Zabbix Agent kann JSON, und so bin ich hier angekommen:

(jsonpath(last(/Template App Zabbix Agent/system.sw.os.get),"$.os_type")="windows"
and
last(/Template App Zabbix Agent/agent.version)&lt;>"7.0.9")
or
(jsonpath(last(/Template App Zabbix Agent/system.sw.os.get),"$.os_type")="linux"
and
last(/Template App Zabbix Agent/agent.version)&lt;>"7.0.10")

Das rockt!

Hintergrund:system.sw.os.getliefert ein JSON-Objekt zurück:

❯ zabbix_get -s 127.0.0.1 -k 'system.sw.os.get' | jq
{
  "os_type": "linux",
  "product_name": "Debian GNU/Linux 12 (bookworm)",
  "architecture": "x86_64",
  "kernel_major": "6",
  "kernel_minor": "1",
  "kernel_patch": "0",
  "kernel": "6.1.0-31-amd64",
  "version_pretty": "Debian GNU/Linux 12 (bookworm) x86_64 6.1.0-31-amd64",
  "version_full": "Linux version 6.1.0-31-amd64 (debian-kernel@lists.debian.org) (gcc-12 (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #1 SMP PREEMPT_DYNAMIC Debian 6.1.128-1 (2025-02-07)"
}
❯

Kein umständliches Jehampel mit Stringoperationen :-)

friendica (DFRN) - Link zum Originalbeitrag

Zabbix Agent "active" und "passive"


Wer sich mit Zabbix befasst, ist sicher mit dem "XXXX by Zabbix agent" bzw. "XXXX by Zabbix agent active" in Berührung gekommen und weiß nicht was der Unterschied ist.

In euerem Heim- oder Firmennetz sei ihr "drin". D.h. der Netzwerkverkehr findet im lokalen Netz statt; nichts geht nach draussen.

Was ist aber, wenn ihr den Rechner von Mutti oder das Netzwerk der Zweigniederlassung überwachen wollt, beide aber (wegen der Telekom ;-) ) ständig wechselnde IP-Adressen haben ?
Dann nehmt ihr den "Zabbix agent active". Beim normalen Agent nimmt der Zabbix-Server Kontakt auf und fragt den Agent(Client) ab. Beim "Active agent" ruft der Agent/Client den Server an. Es muß einzig in der Firewall des Servernetzwerks der eingehende Netzwerkverkehr auf Port 10051 frei geschaltet werden und zum Zabbix-Server geschickt werden.
Auf der Agent/Client-Seite muß ausgehender Netzwerkverkehr zur IP des Servers und Port 10051 gestattet werden (das ist auch mit einer Fritzbox leicht zu machen).

In der Agent Konfiguration ist als "Server active" die URL des Zabbix-Server-Netzwerks einzutragen (Agent neustarten !).

Nun fragt der Agent beim Server auf Port 10051 "was gibts für mich" und, da die TCP-Verbindung nun "established" ist, kann der Server die Aufgaben an den Agent schicken. Der Agent schickt nun alle X Sekunden Daten zum Zabbix-Server. Dadurch sinkt dort auch die Last gegenüber der Verwendung von passiven Agents.

Natürlich wird nun in diesem Fall die Verschlüssellung mit dem PSK-Key aktiviert (im internen Netzwerk ist das nicht unbedingt nötig).

So sieht das dann in der Hostverwaltung aus:

In diesem Fall gibt es kein Interface auf der Serverseite - der weiß ja gar nicht WIE er die Daten bekommt.

Zabbix Forum hat dies geteilt

friendica - Link zum Originalbeitrag

Hi @Andreas vom Zwenkauer See und @Rainer "friendica" Sokoll darf ich euch als Profis in Sachen #Zabbix mal was fragen? Der @Michael Vogel hat doch schon vor längerem bei #Friendica diese API eingebaut um mit dieser eine Instanz monitoren zu können:

//              Key für Zabbix
//                'stats_key' => '1234supergeheim',

Ich würde das gerne nutzen, um meine Instanz zu überwachen. Nur habe ich keinen Plan, wie ich in Zabbix selber diese API nutze, um mir ein Dashboard daraus basteln zu können.

Habt ihr da vielleicht Tipps und Tricks?

Gerne darf diese Frage auch jeder andere Zabbix Profi beantworten. ;-)
@Zabbix Forum

teilten dies erneut

Als Antwort auf Tuxi ⁂

Ich bekomme:
{
  "cron": {
    "lastExecution": {
      "datetime": "2025-02-11T12:15:02.000Z",
      "timestamp": 1739276102
    }
  },
  "worker": {
    "lastExecution": {
      "datetime": "2025-02-11T12:25:03.000Z",
      "timestamp": 1739276703
    },
    "jpm": {
      "1": 1,
      "3": 0,
      "5": 0
    },
    "active": {
      "0": 1,
      "10": 0,
      "20": 0,
      "30": 0,
      "40": 0,
      "50": 0,
      "total": 0
    },
    "deferred": {
      "1": 0,
      "2": 0,
      "3": 0,
      "4": 0,
      "5": 0,
      "6": 3,
      "7": 0,
      "8": 0,
      "9": 0,
      "10": 2,
      "11": 0,
      "12": 1,
      "13": 0,
      "14": 0,
      "15": 11,
      "total": 17
    },
    "total": {
      "0": 0,
      "10": 0,
      "20": 0,
      "30": 0,
      "40": 0,
      "50": 0,
      "total": 0
    }
  },
  "jetstream": {
    "drift": 0,
    "did_count": 0,
    "did_limit": 0,
    "messages": 0,
    "timestamp": 0
  },
  "users": {
    "total": 0,
    "activeWeek": 0,
    "activeMonth": 0,
    "activeHalfyear": 0,
    "pending": 0
  },
  "posts": {
    "inbound": {
      "posts": 18266,
      "comments": 18126
    },
    "outbound": {
      "posts": 130,
      "comments": 303
    }
  },
  "packets": {
    "inbound": {
      "apub": 3271976,
      "dfrn": 2062,
      "dspr": 23724,
      "stat": 0,
      "feed": 0,
      "mail": 0,
      "bsky": 32071
    },
    "outbound": {
      "apub": 19406,
      "dfrn": 185,
      "dspr": 8409,
      "stat": 0,
      "feed": 431,
      "mail": 0,
      "bsky": 0
    }
  },
  "reports": {
    "newest": {
      "datetime": "",
      "timestamp": 0
    },
    "open": 0,
    "closed": 0
  },
  "update": {
    "available": null,
    "available_version": null,
    "status": 0,
    "db_status": 1
  },
  "server": {
    "version": "2024.12",
    "php": {
      "version": "8.2.27",
      "upload_max_filesize": "512M",
      "post_max_size": "512M",
      "memory_limit": "512M"
    },
    "database": {
      "max_allowed_packet": "16777216"
    }
  }
}

Jetzt müßte man nur noch wissen, was die einzelnen Keys bedeuten, bei manchen ist es ja klar, bei vielen nicht.

Zabbix Forum hat dies geteilt.

Als Antwort auf Tuxi ⁂

Ich habe mal die meiner Meinung wichtigen Werte als Variablen raus geholt. Am Anfang ein
DATEN=$(curl https://friendica.a-zwenkau.de/stats?key=GEHEIM)

und hier sind dann die Werte:

LAST_CRON=$( echo $DATEN | cut -d ":" -f7 | cut -d '"' -f1 | cut -d '}' -f1 )

LAST_WORKER=$( echo $DATEN | cut -d ":" -f13 | cut -d '"' -f1 | cut -d '}' -f1 )

USERS_TOTAL=$( echo $DATEN | cut -d ":" -f58 | cut -d ',' -f1)

USERS_WEEK=$( echo $DATEN | cut -d ":" -f59 | cut -d ',' -f1)

USERS_MONTH=$( echo $DATEN | cut -d ":" -f60 | cut -d ',' -f1)

USERS_HALFYEAR=$( echo $DATEN | cut -d ":" -f61 | cut -d ',' -f1)

UPDATE_AVAI=$( echo $DATEN | cut -d ":" -f96 | cut -d ',' -f1)

UPDATE_AVAI_VERSION=$( echo $DATEN | cut -d ":" -f97 | cut -d '"' -f2)

UPDATE_STATUS=$( echo $DATEN | cut -d ":" -f98 | cut -d ',' -f1)

UPDATE_DBSTATUS=$( echo $DATEN | cut -d ":" -f99 | cut -d ',' -f1 | cut -d "}" -f1 )

SERVER_VERS=$( echo $DATEN | cut -d ":" -f101 | cut -d '"' -f2 )

PHP_VERS=$( echo $DATEN | cut -d ":" -f103 | cut -d '"' -f2 )

UPLOAD_MAX_FILESIZE=$( echo $DATEN | cut -d ":" -f104 | cut -d '"' -f2 )

POST_MAX_SIZE=$( echo $DATEN | cut -d ":" -f105 | cut -d '"' -f2 )

MEMORY_LIMIT=$( echo $DATEN | cut -d ":" -f106 | cut -d '"' -f2 )

DB_MAX_ALLOWED_PACKET=$( echo $DATEN | cut -d ":" -f108 | cut -d '"' -f2 )

Um damit was zu machen bin ich noch nicht gekommen.

Zabbix Forum hat dies geteilt.

Als Antwort auf Andreas vom Zwenkauer See

Ich finde es spannend, dass wir beide sehr unterschiedliche Ansichten von wichtigen Daten haben :-) Bei mir sind es die Leistungsdaten wie die Worker pro Minute, die Aufträge in der Workerqueue, wann der Cron, bzw. der Worker zuletzt gelaufen sind etc., da diese Werte auf Performanceprobleme hinweisen können, wenn sich z.B. die Anzahl der ausstehenden Aufträge stetig erhöht und so.

Zabbix Forum hat dies geteilt.

Als Antwort auf Rainer "friendica" Sokoll

@Rainer "friendica" Sokoll
Das war der entscheidende Hinweis. Danke dir! :thumbs up:

Habe mir jetzt mal so ein grobes Dashboard erstellt. Jetzt muss ich nur noch herausfinden, welche Werte für eine Systemüberwachung wichtig sind und welche man vernachlässigen kann. Es bleibt spannend. ;-)

@Michael Vogel @Andreas vom Zwenkauer See

Zabbix Forum hat dies geteilt.

Zabbix Forum hat dies geteilt

Trigger-Actions

!Zabbix Forum
Gestern habe ich mir einen neuen Trigger gebaut. Nichts ungewöhniches soweit.
Dann wollte ich eine Action daran hängen: Telegram zu mir, Ticket im internen Heldesk aufmachen.
Heute früh ging die Hölle los: Tickets über Tickets, Telegram über Telegram.
Warum?
Ich hatte der Action keinen Trigger als Condition hinzugefügt, und wenn die Condition leer ist, dann matchen scheinbar ALLE Triggger :-|

#Selflart

Dieser Beitrag wurde bearbeitet. (8 Monate her)

Zabbix Forum hat dies geteilt.

Zabbix Forum hat dies geteilt

!Zabbix Forum

Mail Monitoring?
Ich würde gerne aus Gründen die gesamte Kette überwachen. Einlieferung per SMTP -> Lesen dann per IMAP.
Ich hatte nämlich heute Nacht den Fall, daß mein Mailserver wegen einer Fehlkonfiguration alle Mails mit einem 4xx abgelehnt hat. da reicht es eben nicht zu prüfen, ob Port 25 offen ist und alle Maildienste (postfix, amavis, spamassassin…) laufen.
Ganz früher hatte ich mal BigBrother, da ging das.

Zabbix Forum hat dies geteilt

NODATA

!Zabbix Forum

Ich habe heute was gelernt, was vielleicht jemandem ebenso nützlich sein könnte:
Gestern nacht hat mein Nameserver seinen Dienst eingestellt: er hat einfach nicht mehr aufgelöst.
Das wird nun überwacht, mit einem UserParameter, was der macht, ist mal unerheblich.
Der Trigger dazu:

last(/mein.name.server/UserParameter-bind-resolving)&lt;>0

Nach etwas Nachdenken kam mir eine böse Ahnung: Wenn der Nameserver zwar noch läuft (also kein connection refused), aber schlicht keine Daten liefert, dann ist der letzte Wert IMMER wahr, was dazu führen wird, daß Zabbix kein Problem sieht.
Also habe ich den Trigger-Ausdruck erweitert:
last(/mein.name.server/UserParameter-bind-resolving)&lt;>0
or
nodata(/mein.name.server/UserParameter-bind-resolving,90s)=1

90 Sekunden, weil das update interval für das Item bei 30 Sekunden liegt.

Das Problem hat natürlich jeder Trigger, der last() verwendet.

Ach und: Wenn jemand weiß, wie ich mein.name.server durch das Makro {HOST.NAME} ersetzt bekomme… Da bekomme ich nämlich einen Syntaxfehler.

friendica (DFRN) - Link zum Originalbeitrag

Daten der Wetterstation in Zabbix einbinden


Ich habe eine Ecowitt-Wetterstation und möchte die Daten in Zabbix integrieren. Dazu besorgt man sich erst einmal zwei Keys über die Ecowitt-Webseite --> Dein Konto --> User Profile. Den Application-Key und den Api-Key. Das geht in Sekunden. Jetzt benötigt man noch die MAC-Adresse der Wetterstation. Die MAC-Adresse findet man z.B. bei seinem DHCP-Server als vergebene Adresse.

Nun kann man mit einem Script die Daten der Wetterstation in Zabbix einbinden. Um die Daten abzuholen nutzt man diesen Befehl:
curl 'https://api.ecowitt.net/api/v3/device/real_time?application_key=DEIN_KEY&api_key=DEINE_API&mac=DEINE_MAC&temp_unitid=1&pressure_unitid=3&rainfall_unitid=12&wind_speed_unitid=7&call_back=all'

Diese Daten bereite ich auf und schicke sie in eine Datenbank (Script):

DBHOST="IP_DES_DB_SERVERS"
DBUSER="DB_USER"
PASS="DB_PASS"
DB="DBNAME"

DATEN=$(curl 'https://api.ecowitt.net/api/v3/device/real_time?application_key=DEIN_KEY&api_key=DEINE_API&mac=DEINE_MAC&temp_unitid=1&pressure_unitid=3&rainfall_unitid=12&wind_speed_unitid=7&call_back=all')

DATE=`date +%Y-%m-%d`
TIME=`date +%H:%M`
TIMESTAMP=$( echo $DATEN | cut -d ":" -f8 | cut -d'"' -f2)
ITEMP=$( echo $DATEN | cut -d ":" -f31 | cut -d'"' -f2 )
IHUM=$( echo $DATEN | cut -d ":" -f35 | cut -d'"' -f2 )
ATEMP=$( echo $DATEN | cut -d ":" -f10 | cut -d'"' -f2 )
AHUM=$( echo $DATEN | cut -d ":" -f26 | cut -d'"' -f2 )
QNH=$( echo $DATEN | cut -d ":" -f91 | cut -d'"' -f2 )
WINDSPEED=$( echo $DATEN | cut -d ":" -f78 | cut -d'"' -f2 )
WINDDIR=$( echo  $DATEN | cut -d ":" -f86 | cut -d'"' -f2 )
CHILLTEMP=$( echo $DATEN | cut -d ":" -f14 | cut -d'"' -f2 )
RAIN=$( echo $DATEN | cut -d ":" -f53 | cut -d'"' -f2 )
RAIN_H=$( echo $DATEN | cut -d ":" -f61 | cut -d'"' -f2 )
RAIN_W=$( echo $DATEN | cut -d ":" -f65 | cut -d'"' -f2 )
RAIN_M=$( echo $DATEN | cut -d ":" -f69 | cut -d'"' -f2 )
RAIN_Y=$( echo $DATEN | cut -d ":" -f73 | cut -d'"' -f2 )
DEWPOINT=$( echo $DATEN | cut -d ":" -f22 | cut -d'"' -f2 )
SOLAR=$( echo $DATEN | cut -d ":" -f40 | cut -d'"' -f2 )
UVI=$( echo $DATEN | cut -d ":" -f44 | cut -d'"' -f2 )

SQL="INSERT INTO wetter VALUES (0,'$DATE','$TIME','$TIMESTAMP','$ITEMP','$IHUM','$ATEMP','$AHUM','$QNH','$WINDSPEED','$WINDDIR','$CHILLTEMP','$RAIN','$DEWPOINT','$SOLAR','$UVI','$RAIN_M','$RAIN_Y','$RAIN_H','$RAIN_W')"

mysql --host="$DBHOST" -u "$DBUSER" -p"$PASS" -D "$DB" <<EOF
        $SQL;
EOF

exit 0


Auf dem Zabbix-Server ist eine ODBC-Connection eingerichtet:

[wetter]
Description = Auslesen der Wetterdaten
Driver      = MariaDB Unicode
Server      = DE_SERVER
User        = DB_USER
Password    = DB_PASS
Port        = 3306
Database    = DBNAME

Nun wird ein Item in Zabbix (auf dem Zabbix-Server) konfiguriert:


Weitere Items für Innentemperatur, Luftfeuchtigkeit, Sonne usw. werden wie oben gezeigt sinngemäß erstellt.

Damit kann man nun weiter arbeiten und z.B eine Map erstellen:

Andreas vom Zwenkauer See hat dies geteilt.

friendica (DFRN) - Link zum Originalbeitrag

Spracheinstellung in Zabbix


Um eine Sprache in Zabbix aktivieren zu können, muß das entsprechende Sprachpaket auch vorhanden sein. Dazu apt install php-php-gettext installieren (oder prüfen, ob es installiert ist).

Die gewünschte Sprachdatei aktivieren: dpkg-reconfigure locales. Apache reloaden.

In der Zabbix-Spracheinstellung in der Datei /usr/share/zabbix/include/locales.inc.php die gewünschte Sprache von false auf true umstellen.

Nun kann jeder Nutzer seine gewünschte Sprache in seinen Nutzerprofil auswählen.