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
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.
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?
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.
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!
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?
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 7.4 bringt Low Level Discovery
Die Open-Source-Monitoring-Suite Zabbix ist in Version 7.4 freigegeben worden. Mit »Low Level Discovery« lassen sich nun kaskadierte Workflows realisieren.Ferdinand (LinuxNews.de)
Sagt mal: #Zabbix Agent 2. Die Version 7 LTS steht bei 7.0.15. Allerdings ist der letzte Windows-Installer 7.0.12, 7.0.15 gibts nur als zip.
Oder sehe ich das falsch? Bis dahin gab es auch immer ein aktuelles msi für Windows. Die Kollegen wollen ein msi haben.
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 show
zurü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.
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?
Unschöner workaroud: Original-Trigger beim host disablen, clonen und den Schwellwert ändern
naja, wie gesagt:
- statt dem exakten Wert `{$FREE_LIMIT}` im Trigger setzen
- im Template das neue Makro mit den "20" als Default definieren
Das Makro kann dann ja pro Host angepasst werden.
Rainer "friendica" Sokoll mag das.
Zabbix Forum hat dies geteilt.
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 < ; durch die spitze Klammer nach links ersetzen, das ist ein Bug in friendica.
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)<>"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)<>"7.0.10")
Das rockt!
Hintergrund:system.sw.os.get
liefert 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

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.
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
{
"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.
Zabbix Forum hat dies geteilt.
Ich habe mal die meiner Meinung wichtigen Werte als Variablen raus geholt. Am Anfang einDATEN=$(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.

Andreas vom Zwenkauer See mag das.
Zabbix Forum hat dies geteilt.

Zabbix Forum hat dies geteilt.
Tuxi ⁂ mag das.
Zabbix Forum hat dies geteilt.
mögen das
Zabbix Forum hat dies geteilt.
@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.
Rainer "friendica" Sokoll mag das.
Zabbix Forum hat dies geteilt.
@Michael Vogel @Andreas vom Zwenkauer See @Rainer "friendica" Sokoll
Hier mal mein erster Entwurf der meiner Meinung nach wichtigsten (?) Parameter:
Ob ich diese von der "Bezeichnung" auch richtig gedeutet habe, steht in den Sternen. 😆
mögen das
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 :-|
mögen das
Zabbix Forum hat dies geteilt.
Zabbix-Forum :
!Zabbix Forum
Zabbix Forum hat dies geteilt.
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.com/documentation/curre…
Rainer "friendica" Sokoll mag das.
Zabbix Forum hat dies geteilt.
Ob das nicht oversized ist?
Mein Selbstbau-NAS im Keller, mit Docker und ZFS mit Snapshots - da kommt dann einiges an Dateisystemen und Netzwerkinterfaces zusammen
NODATA
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)<>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)<>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.
Lebenswichtig für Männer im kommenden Sommer - Temperaturüberwachung des Bierkühlschrank:
Andreas vom Zwenkauer See mag das.
Andreas vom Zwenkauer See hat dies geteilt.
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.
Ich hatte gerade ein "kleines" Problem: der Zabbix Server startete zwar neu aber er hatte keine Verbindung zur DB.
Ursache war, beim Update hat es eine neue Server-Konfig eingespielt und der fehlten DB-Server Daten

Zabbix Forum hat dies geteilt.
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.
!Zabbix Forum
Erfolgreich erledigt:
Zabbix auf der neuen XCP-ng Maschine installiert und eingerichtet
To-do nächste Woche:
- die Überwachung der VMs auf der XCP-ng Maschine integrieren
- ZFS Monitoring in Zabbix integrieren
Frohe Ostern !
Zabbix Forum hat dies geteilt.
Worum geht es hier ? Um die Systemüberwachung Zabbix:
de.wikipedia.org/wiki/Zabbix
Download hier:
zabbix.com/download
Download and install Zabbix
Zabbix is being downloaded over 4 000 000 times every year for a reason. Download and install Zabbix for free and try it yourself!www.zabbix.com
Rainer "friendica" Sokoll
Als Antwort auf Rainer "friendica" Sokoll • • •^\..+\.sw?$
muß es natürlich^\..+\.sw.?$
sein.