<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://znil.net/index.php?action=history&amp;feed=atom&amp;title=Zabbix%3ATemplate_Windows_Robocopy</id>
	<title>Zabbix:Template Windows Robocopy - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://znil.net/index.php?action=history&amp;feed=atom&amp;title=Zabbix%3ATemplate_Windows_Robocopy"/>
	<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Zabbix:Template_Windows_Robocopy&amp;action=history"/>
	<updated>2026-04-28T00:37:13Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in znilwiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://znil.net/index.php?title=Zabbix:Template_Windows_Robocopy&amp;diff=9528&amp;oldid=prev</id>
		<title>BLinz2: Textersetzung - „&lt;comments&gt;“ durch „&lt;comments /&gt;“</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Zabbix:Template_Windows_Robocopy&amp;diff=9528&amp;oldid=prev"/>
		<updated>2017-08-06T18:52:10Z</updated>

		<summary type="html">&lt;p&gt;Textersetzung - „&amp;lt;comments&amp;gt;“ durch „&amp;lt;comments /&amp;gt;“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
[[Kategorie:Zabbix]]&lt;br /&gt;
[[Kategorie:Zabbix_Templates]]&lt;br /&gt;
==Vorschau==&lt;br /&gt;
Hier die Ansicht &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Latest Data&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;quot; mit den Rückgabecodes&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:Zabbix_Template_Robocopy-001.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Value Mapping==&lt;br /&gt;
Eigentlich ist es ganz einfach die Ausführung von {{Key|Robocopy}} zu überwachen.&amp;lt;br&amp;gt;&lt;br /&gt;
Denn das Programm nutzt die Möglichkeit beim Beenden einen Fehlercode zu übergeben recht ausführlich.&amp;lt;br&amp;gt;&lt;br /&gt;
Nachzuschlagen zum Beispiel unter:&amp;lt;br&amp;gt;&lt;br /&gt;
* https://support.microsoft.com/en-us/kb/954404&lt;br /&gt;
* http://ss64.com/nt/robocopy-exit.html&lt;br /&gt;
Generell lässt sich sagen das jeder Exit-Code ab 8 einen Fehler bedeutet!&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe mir dazu in Zabbix mein persönliches Value-Mapping zusammengestellt (was Ihr mit dem Template für Zabbix 3.0.x importieren könnt):&amp;lt;br&amp;gt;&lt;br /&gt;
  0 ⇒ No Change&lt;br /&gt;
  1 ⇒ Copy OK&lt;br /&gt;
  2 ⇒ Extra Files (deleted)&lt;br /&gt;
  3 ⇒ Copy OK + Extra Files (deleted)&lt;br /&gt;
  4 ⇒ Some Files can not be overwritten&lt;br /&gt;
  5 ⇒ New files copied + some Files can not be overwritten&lt;br /&gt;
  6 ⇒ Extra Files (deleted) + some Files can not be overwritten&lt;br /&gt;
  7 ⇒ New files copied + Extra File + Files can not be overwritten&lt;br /&gt;
  8 ⇒ FAILED&lt;br /&gt;
  9 ⇒ FAILED (Copy OK)&lt;br /&gt;
 10 ⇒ FAILED (Extra Files)&lt;br /&gt;
 11 ⇒ FAILED (Copy OK + Extra Files)&lt;br /&gt;
 12 ⇒ FAILED (Overwrite Problems)&lt;br /&gt;
 13 ⇒ FAILED (Copy OK + Overwrite Problems)&lt;br /&gt;
 14 ⇒ FAILED (Extra Files + Overwrite Probs)&lt;br /&gt;
 15 ⇒ FAILED (Copy OK, Extra Files + Overwrite Probs)&lt;br /&gt;
 16 ⇒ FATAL ERROR&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nun müssen wir nur noch diesen Exit-Code von Robocopy zu Zabbix bekommen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Vorbereitung auf dem Host==&lt;br /&gt;
&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;&amp;#039;&amp;#039;&amp;#039;Variante 1:&amp;#039;&amp;#039;&amp;#039;&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt; Installierter Zabbix-Agent&amp;lt;br&amp;gt;&lt;br /&gt;
Also in meinen Umgebungen ist auf den Servern immer der Zabbix-Agent installiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt also ein Verzeichnis im welchen der Zabbix-Agent und dessen Konfigurationsdatei liegt, in meinen Umgebungen sind das in der Regel folgende Pfade:&lt;br /&gt;
 Agent:         &amp;quot;C:\Program Files\Zabbix\zabbix_agentd.exe&amp;quot;&lt;br /&gt;
 Konfiguration: &amp;quot;C:\Program Files\Zabbix\zabbix_agentd.win.conf&amp;quot;&lt;br /&gt;
Das wichtige ist aber das ich auch die {{Key|zabbix_sender.exe}} dort mit ablege!&amp;lt;br&amp;gt;&lt;br /&gt;
 Sender:        &amp;quot;C:\Program Files\Zabbix\zabbix_sender.exe&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Mit dem {{Key|zabbix_sender.exe}} kann man nämlich ganz hervorragend aus eigenen Skripten und Programmen heraus Daten an den Zabbix-Server senden.&amp;lt;br&amp;gt;&lt;br /&gt;
Und in der Konfigurationsdatei steht drin für welchen Host wir uns melden - und an welchen Server wir die Daten senden müssen.&amp;lt;br&amp;gt;&lt;br /&gt;
Deshalb rufen wir die {{Key|zabbix_sender.exe}} einfach wie folgt auf:&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;quot;C:\Program Files\Zabbix\zabbix_sender.exe&amp;quot; -c &amp;quot;C:\Program Files\Zabbix\zabbix_agentd.win.conf&amp;quot; -k Name.des.Keys -o Wert&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Damit das funktioniert muss in der Konfigurationsdatei zwingend der &amp;lt;code&amp;gt;ServerActive=&amp;lt;/code&amp;gt; Eintrag gesetzt sein:&lt;br /&gt;
 ServerActive=192.168.50.253:10051&lt;br /&gt;
Der Vorteil ist das dies auch nach einem Update des Agenten, Ändern des Host-Namen oder Wechsel des Zabbix-Server weiter funktioniert ohne das ich in meinem Batch-Skript etwas ändern muss.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;&amp;#039;&amp;#039;&amp;#039;Variante 2:&amp;#039;&amp;#039;&amp;#039;&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt; Direkt per {{Key|zabbix_sender.exe}}&amp;lt;br&amp;gt;&lt;br /&gt;
Alternativ lassen sich die Parameter auch alle einzeln an die {{Key|zabbix_sender.exe}} übergeben:&amp;lt;br&amp;gt;&lt;br /&gt;
 zabbix_sender.exe -I &amp;lt;IP-Adresse&amp;gt; -p &amp;lt;Port&amp;gt; -s &amp;lt;Name_des_Host_auf_dem_Zabbix_Server&amp;gt; -k Name.des.Keys -o Wert&lt;br /&gt;
Ihr müsstet euch diese also an eine geeignete Stelle kopieren.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Einbau der Meldung in das Robocopy-Script==&lt;br /&gt;
Der Aufruf von {{Key|Robocopy}} muss über ein Skript erfolgen (&amp;#039;&amp;#039;&amp;#039;.bat&amp;#039;&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;&amp;#039;.cmd&amp;#039;&amp;#039;&amp;#039;) und sieht zum Beispiel wie folgt aus:&amp;lt;br&amp;gt;&lt;br /&gt;
 robocopy \\SERVER\D$\Netzlaufwerke\BOB\ \\NAS\backup1\Netzlaufwerke\BOB\ /MIR /R:10 /W:3&lt;br /&gt;
Nun schreiben wir unmittelbar danach folgende Zeile:&lt;br /&gt;
 &amp;quot;C:\Program Files\Zabbix\zabbix_sender.exe&amp;quot; -c &amp;quot;C:\Program Files\Zabbix\zabbix_agentd.win.conf&amp;quot; -k znil.robocopy[Netzlaufwerke-BOB] -o %ERRORLEVEL%&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Direkt nach der Ausführung von {{Key|Robocopy}} wird also der Exit-Code an Zabbix gesenden. Die Zeile muss direkt auf den Befehl von {{Key|Robocopy}} folgen!&lt;br /&gt;
Nachdem nämlich zum Beispiel die {{Key|zabbix_sender.exe}} den Wert gesendet hat steht in &amp;lt;code&amp;gt;%ERRORLEVEL%&amp;lt;/code&amp;gt; der Exit-Code der {{Key|zabbix_sender.exe}} drin.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Gesendet werden die Daten an den Host der in der Konfigurationsdatei definiert sind - mit dem Item-Key &amp;#039;&amp;#039;&amp;#039;znil.robocopy[Netzlaufwerke-BOB]&amp;#039;&amp;#039;&amp;#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
Dieses muss es natürlich dann noch für den Host geben.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Item-Key anlegen==&lt;br /&gt;
Das können wir entweder in einem eigenen Template machen (empfohlen) oder auch direkt auf dem Host:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:Zabbix_Template_Robocopy-002.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Wichtig ist das&lt;br /&gt;
* Das &amp;#039;&amp;#039;&amp;#039;Type&amp;#039;&amp;#039;&amp;#039; auf {{Key|Zabbix Trapper}} steht&lt;br /&gt;
* Der &amp;#039;&amp;#039;&amp;#039;Key&amp;#039;&amp;#039;&amp;#039; absolut identisch mit dem ist den wir bei der {{Key|zabbix_sender.exe}} eintragen&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ich verwende hier immer&lt;br /&gt;
 znil.robocopy[Name_des_Jobs]&lt;br /&gt;
Den Wert in den eckigen Klammern passe ich also immer an.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt könnt ihr euer Skript einmal laufen lassen - und er sollte euch unter &amp;#039;&amp;#039;&amp;#039;Latest Data&amp;#039;&amp;#039;&amp;#039;&amp;#039; etwas wie folgt liefern:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:Zabbix_Template_Robocopy-003.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Trigger anlegen==&lt;br /&gt;
Generell sehe ich 2 sinnvolle Prüfungen beim Trigger:&lt;br /&gt;
* ob der letzte Exit-Code größer als 7 ist&lt;br /&gt;
* Wenn mehr als x Minuten/Stunden/Tage keine neuen Daten gekommen sind&lt;br /&gt;
mit ersterem Prüfen wir den Kopiervorgang an sich, mit zweiten ob unser Job überhaupt gelaufen ist.&lt;br /&gt;
Die Expression für die Prüfung auf den Exit-Code kann also wie folgt aussehen:&amp;lt;br&amp;gt;&lt;br /&gt;
 {znil Template Robocopy Example:znil.robocopy[Netzlaufwerke-BOB].last()}&amp;gt;7&lt;br /&gt;
Und die Prüfung ob der Job in den letzten 3 Tagen gelaufen ist so:&amp;lt;br&amp;gt;&lt;br /&gt;
 {znil Template Robocopy Example:znil.robocopy[Netzlaufwerke-BOB].nodata(3d)}=1&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Template==&lt;br /&gt;
Nachfolgend das Template. Es hat das Item für das obige Beispiel, die beiden Trigger - und enthält das &amp;#039;&amp;#039;&amp;#039;Value-Mapping&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;[[Media:znil_Template_Robocopy_Example_Zabbix_3.0.x.zip|znil_Template_Robocopy_Example_Zabbix_3.0.x.zip]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Es ist erst ab Zabbix 3.0.x geeigent!&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Kommentare==&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz2</name></author>
	</entry>
</feed>