<?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_Skripte_Maintenance_Host_oder_Gruppe</id>
	<title>Zabbix Skripte Maintenance Host oder Gruppe - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://znil.net/index.php?action=history&amp;feed=atom&amp;title=Zabbix_Skripte_Maintenance_Host_oder_Gruppe"/>
	<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Zabbix_Skripte_Maintenance_Host_oder_Gruppe&amp;action=history"/>
	<updated>2026-04-28T08:29:41Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in znilwiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://znil.net/index.php?title=Zabbix_Skripte_Maintenance_Host_oder_Gruppe&amp;diff=13590&amp;oldid=prev</id>
		<title>BLinz am 13. Juni 2023 um 13:33 Uhr</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Zabbix_Skripte_Maintenance_Host_oder_Gruppe&amp;diff=13590&amp;oldid=prev"/>
		<updated>2023-06-13T13:33:33Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 13. Juni 2023, 15:33 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;Zeile 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Ab Zabbix 6.0 kann man einen API-Key statt Benutzernamen und Passwort nutzen,&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Ab Zabbix 6.0 kann man einen API-Key statt Benutzernamen und Passwort nutzen,&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ab Zabbix 6.4 muss man das sogar. Das Skript muss noch auf API-Key Nutzung umgebaut werden!&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ab Zabbix 6.4 muss man das sogar. Das Skript muss noch auf API-Key Nutzung umgebaut werden!&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Für das UI-Skript wurde das schon gemacht: [[Host per Popup-Skript aus der Zabbix-Server Weboberfläche in Wartung setzen]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Für das UI-Skript wurde das schon gemacht: [[Host per Popup-Skript aus der Zabbix-Server Weboberfläche in Wartung setzen]]&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;big&amp;gt;&amp;#039;&amp;#039;&amp;#039;Ich habe unten eine neue Version als Test bereit gestellt, die ist aber noch nicht getestet&amp;#039;&amp;#039;&amp;#039;&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;big&amp;gt;&amp;#039;&amp;#039;&amp;#039;Ich habe unten eine neue Version als Test bereit gestellt, die ist aber noch nicht getestet&amp;#039;&amp;#039;&amp;#039;&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Zabbix_Skripte_Maintenance_Host_oder_Gruppe&amp;diff=13589&amp;oldid=prev</id>
		<title>BLinz am 13. Juni 2023 um 13:33 Uhr</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Zabbix_Skripte_Maintenance_Host_oder_Gruppe&amp;diff=13589&amp;oldid=prev"/>
		<updated>2023-06-13T13:33:14Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 13. Juni 2023, 15:33 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot;&gt;Zeile 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ab Zabbix 6.4 muss man das sogar. Das Skript muss noch auf API-Key Nutzung umgebaut werden!&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ab Zabbix 6.4 muss man das sogar. Das Skript muss noch auf API-Key Nutzung umgebaut werden!&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Für das UI-Skript wurde das schon gemacht: [[Host per Popup-Skript aus der Zabbix-Server Weboberfläche in Wartung setzen]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Für das UI-Skript wurde das schon gemacht: [[Host per Popup-Skript aus der Zabbix-Server Weboberfläche in Wartung setzen]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Ich habe unten eine neue Version als Test bereit gestellt, die ist aber noch nicht getestet&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Zabbix_Skripte_Maintenance_Host_oder_Gruppe&amp;diff=13588&amp;oldid=prev</id>
		<title>BLinz: /* Hosts */</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Zabbix_Skripte_Maintenance_Host_oder_Gruppe&amp;diff=13588&amp;oldid=prev"/>
		<updated>2023-06-13T13:32:20Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Hosts&lt;/span&gt;&lt;/p&gt;
&lt;a href=&quot;https://znil.net/index.php?title=Zabbix_Skripte_Maintenance_Host_oder_Gruppe&amp;amp;diff=13588&amp;amp;oldid=13586&quot;&gt;Änderungen zeigen&lt;/a&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Zabbix_Skripte_Maintenance_Host_oder_Gruppe&amp;diff=13586&amp;oldid=prev</id>
		<title>BLinz am 13. Juni 2023 um 13:25 Uhr</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Zabbix_Skripte_Maintenance_Host_oder_Gruppe&amp;diff=13586&amp;oldid=prev"/>
		<updated>2023-06-13T13:25:43Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 13. Juni 2023, 15:25 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Zeile 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Vorlage:AchtungBaustelle}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Vorlage:AchtungBaustelle}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Ab Zabbix 6.0 kann man einen API-Key statt Benutzernamen und Passwort nutzen,&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ab Zabbix 6.4 muss man das sogar. Das Skript muss noch auf API-Key Nutzung umgebaut werden!&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Für das UI-Skript wurde das schon gemacht: [[Host per Popup-Skript aus der Zabbix-Server Weboberfläche in Wartung setzen]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;----&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Kategorie:Zabbix]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Kategorie:Zabbix]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die beiden Skripte nutze ich als Alertscripts und als Externalscripts direkt auf dem Zabbix Server.&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die beiden Skripte nutze ich als Alertscripts und als Externalscripts direkt auf dem Zabbix Server.&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Zabbix_Skripte_Maintenance_Host_oder_Gruppe&amp;diff=13585&amp;oldid=prev</id>
		<title>BLinz am 13. Juni 2023 um 13:23 Uhr</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Zabbix_Skripte_Maintenance_Host_oder_Gruppe&amp;diff=13585&amp;oldid=prev"/>
		<updated>2023-06-13T13:23:19Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 13. Juni 2023, 15:23 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Zeile 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Vorlage:AchtungBaustelle}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Kategorie:Zabbix]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Kategorie:Zabbix]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die beiden Skripte nutze ich als Alertscripts und als Externalscripts direkt auf dem Zabbix Server.&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die beiden Skripte nutze ich als Alertscripts und als Externalscripts direkt auf dem Zabbix Server.&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Zabbix_Skripte_Maintenance_Host_oder_Gruppe&amp;diff=11829&amp;oldid=prev</id>
		<title>BLinz: /* Groups */</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Zabbix_Skripte_Maintenance_Host_oder_Gruppe&amp;diff=11829&amp;oldid=prev"/>
		<updated>2020-02-20T15:00:02Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Groups&lt;/span&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;
Die beiden Skripte nutze ich als Alertscripts und als Externalscripts direkt auf dem Zabbix Server.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Skript für die Hosts ist nahezu 1:1 das von &lt;br /&gt;
 https://www.zabbix.org/wiki/Perl_script_to_add/remove_Maintenance&lt;br /&gt;
Ich habe nur den Fehler bei der Abfrage beseitigt (es wurden immer alle Hosts zurückgegeben, nicht nur der gewünschte).&amp;lt;br&amp;gt;&lt;br /&gt;
Außerdem ignoriert es bei https Fehler mit selbst-signierten Zertifikaten.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Skript für die Gruppen ist das gleiche Skript nur angepasst an die Gruppen.&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;
==Hosts==&lt;br /&gt;
 nano zabbix_main_host.pl&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Perl&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/perl&lt;br /&gt;
&lt;br /&gt;
use strict;&lt;br /&gt;
use Getopt::Std;&lt;br /&gt;
use vars qw/ %opt /;&lt;br /&gt;
&lt;br /&gt;
my $url = &amp;quot;http://localhost/api_jsonrpc.php&amp;quot;; # change &amp;lt;zabbix server&amp;gt; to your zabbix server&lt;br /&gt;
my $apiuser=&amp;quot;username&amp;quot;; # API User&amp;#039;s Username&lt;br /&gt;
my $apipassword=&amp;quot;password&amp;quot;; # API User&amp;#039;s password&lt;br /&gt;
my $maintenanceid;&lt;br /&gt;
&lt;br /&gt;
#############&lt;br /&gt;
# Begin main&lt;br /&gt;
#&lt;br /&gt;
init();&lt;br /&gt;
my $hostname = $opt{s};&lt;br /&gt;
my $duration = $opt{d} || 10800;&lt;br /&gt;
my $maintname = $opt{n}; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Authenticate against Zabbix for API Maintenance addition&lt;br /&gt;
my $auth = newrequest($url, $apiuser, $apipassword);&lt;br /&gt;
my $hostid = gethostid($hostname);&lt;br /&gt;
&lt;br /&gt;
if($opt{r}){&lt;br /&gt;
    print &amp;quot;Removing maintenance for host $hostname\n&amp;quot;;&lt;br /&gt;
    getmaintid($hostid,$maintname);&lt;br /&gt;
    exit(0);&lt;br /&gt;
}else{&lt;br /&gt;
    print &amp;quot;Adding maintenance for host $hostname\n&amp;quot;;&lt;br /&gt;
    addmaint($hostid,$duration,$maintname);&lt;br /&gt;
}&lt;br /&gt;
exit(0);&lt;br /&gt;
&lt;br /&gt;
#########################&lt;br /&gt;
# Get command line input&lt;br /&gt;
#&lt;br /&gt;
sub init(){&lt;br /&gt;
    my $opt_string = &amp;#039;hrs:d:n:&amp;#039;;&lt;br /&gt;
    getopts( &amp;quot;$opt_string&amp;quot;, \%opt ) or usage();&lt;br /&gt;
    usage() if $opt{h};&lt;br /&gt;
    usage() if !$opt{s};&lt;br /&gt;
    usage() if !$opt{n};&lt;br /&gt;
}&lt;br /&gt;
#####################&lt;br /&gt;
# Print script usage&lt;br /&gt;
#&lt;br /&gt;
sub usage(){&lt;br /&gt;
    print STDERR &amp;lt;&amp;lt; &amp;quot;EOF&amp;quot;;&lt;br /&gt;
usage: $0 [-hr] -s hostname [-d duration] -n name&lt;br /&gt;
 -h          : This (help) message   &lt;br /&gt;
 -r          : Remove maintenance for specified host &lt;br /&gt;
 -s hostname : Hostname in Zabbix&lt;br /&gt;
 -d          : Duration of maintenance in seconds. Leave blank to use default.&lt;br /&gt;
                 300 =  5 minutes&lt;br /&gt;
                1800 = 30 minutes&lt;br /&gt;
                3600 =  1 hour&lt;br /&gt;
               10800 =  3 hour (default)&lt;br /&gt;
 -n name     : unique identifier&lt;br /&gt;
&lt;br /&gt;
-s and -n are required&lt;br /&gt;
 &lt;br /&gt;
example: $0 -s hostname -d 3600 -n backup&lt;br /&gt;
example: $0 -s hostname -r -n backup&lt;br /&gt;
EOF&lt;br /&gt;
    exit;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#############################################&lt;br /&gt;
# Zabbix API requests require authentication&lt;br /&gt;
#&lt;br /&gt;
sub newrequest {&lt;br /&gt;
    my ($url, $user, $password) = @_;&lt;br /&gt;
 &lt;br /&gt;
    my $authenticate = qq(curl -k -s -i -X POST -H &amp;#039;Content-Type: application/json-rpc&amp;#039; -d &amp;#039;{&lt;br /&gt;
        &amp;quot;params&amp;quot;: {&lt;br /&gt;
            &amp;quot;password&amp;quot;: &amp;quot;$password&amp;quot;,&lt;br /&gt;
            &amp;quot;user&amp;quot;: &amp;quot;$user&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;jsonrpc&amp;quot;: &amp;quot;2.0&amp;quot;,&lt;br /&gt;
        &amp;quot;method&amp;quot;: &amp;quot;user.login&amp;quot;,&lt;br /&gt;
        &amp;quot;id&amp;quot;: 0&lt;br /&gt;
    }&amp;#039;  $url | grep result | head -n 1 | cut -d &amp;#039;&amp;quot;&amp;#039; -f 8);&lt;br /&gt;
    my $auth = `$authenticate`;&lt;br /&gt;
    chomp($auth);&lt;br /&gt;
    return $auth&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
###################################################&lt;br /&gt;
# Subroutine to query Zabbix to get host id&lt;br /&gt;
#&lt;br /&gt;
sub gethostid{&lt;br /&gt;
    my $hostname = shift;&lt;br /&gt;
    my $process = qq(curl -k -s -i -X POST -H &amp;#039;Content-Type: application/json-rpc&amp;#039; -d &amp;#039;{&lt;br /&gt;
    &amp;quot;params&amp;quot;: {&lt;br /&gt;
        &amp;quot;filter&amp;quot;: {&lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;$hostname&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;jsonrpc&amp;quot;: &amp;quot;2.0&amp;quot;,&lt;br /&gt;
    &amp;quot;method&amp;quot;: &amp;quot;host.get&amp;quot;,&lt;br /&gt;
    &amp;quot;auth&amp;quot;: &amp;quot;$auth&amp;quot;,&lt;br /&gt;
    &amp;quot;id&amp;quot;: 2 }&amp;#039; $url);&lt;br /&gt;
    my $res = `$process`;&lt;br /&gt;
    chomp($res);&lt;br /&gt;
&lt;br /&gt;
    # print &amp;quot;$res \n\n&amp;quot;;&lt;br /&gt;
    my @output = split(/,/,$res);&lt;br /&gt;
    my $x=0;&lt;br /&gt;
    foreach(@output){&lt;br /&gt;
    if (($output[$x] =~ m/\&amp;quot;host\&amp;quot;/)&amp;amp;&amp;amp;($output[$x] =~ m/$hostname/)){&lt;br /&gt;
            $output[$x-2] =~ s/\[\{//g;&lt;br /&gt;
            $output[$x-2] =~ s/&amp;quot;//g;&lt;br /&gt;
            $output[$x-2] =~ s/hostid://g;&lt;br /&gt;
            $output[$x-2] =~ s/result://g;&lt;br /&gt;
            $output[$x-2] =~ s/\{//g;&lt;br /&gt;
            $hostid = $output[$x-2];&lt;br /&gt;
        }&lt;br /&gt;
        $x++;&lt;br /&gt;
    }&lt;br /&gt;
    if(!$hostid){&lt;br /&gt;
       print &amp;quot;WARNING - $hostname not found in maintenance for Zabbix.\n&amp;quot;;&lt;br /&gt;
       exit(1);&lt;br /&gt;
    }&lt;br /&gt;
    print &amp;quot;Host ID: &amp;quot;.$hostid.&amp;quot;\n&amp;quot;;&lt;br /&gt;
    return $hostid&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
###################################################&lt;br /&gt;
# Subroutine to query Zabbix to get maintenance id&lt;br /&gt;
#&lt;br /&gt;
sub getmaintid{&lt;br /&gt;
    my $hostid = shift;&lt;br /&gt;
    my $maintname = shift;&lt;br /&gt;
    my $process = qq(curl -k -s -i -X POST -H &amp;#039;Content-Type: application/json-rpc&amp;#039; -d &amp;#039;{&lt;br /&gt;
    &amp;quot;params&amp;quot;: {&lt;br /&gt;
        &amp;quot;output&amp;quot;: &amp;quot;extend&amp;quot;,&lt;br /&gt;
        &amp;quot;selectHosts&amp;quot;: &amp;quot;refer&amp;quot;,&lt;br /&gt;
        &amp;quot;selectGroups&amp;quot;: &amp;quot;refer&amp;quot;,&lt;br /&gt;
        &amp;quot;hostids&amp;quot;: &amp;quot;$hostid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;jsonrpc&amp;quot;: &amp;quot;2.0&amp;quot;,&lt;br /&gt;
    &amp;quot;method&amp;quot;: &amp;quot;maintenance.get&amp;quot;,&lt;br /&gt;
    &amp;quot;auth&amp;quot;: &amp;quot;$auth&amp;quot;,&lt;br /&gt;
    &amp;quot;id&amp;quot;: 2 }&amp;#039; $url);&lt;br /&gt;
 &lt;br /&gt;
    my $res = `$process`;&lt;br /&gt;
    chomp($res);&lt;br /&gt;
 &lt;br /&gt;
    my @output = split(/,/,$res);&lt;br /&gt;
    my $x=0;&lt;br /&gt;
    foreach(@output){&lt;br /&gt;
        if (($output[$x] =~ m/\&amp;quot;name\&amp;quot;/)&amp;amp;&amp;amp;($output[$x] =~ m/ID $maintname/)){&lt;br /&gt;
            $output[$x-1] =~ s/\[\{//g;&lt;br /&gt;
            $output[$x-1] =~ s/&amp;quot;//g;&lt;br /&gt;
            $output[$x-1] =~ s/maintenanceid://g;&lt;br /&gt;
            $output[$x-1] =~ s/result://g;&lt;br /&gt;
            $output[$x-1] =~ s/\{//g;&lt;br /&gt;
            $maintenanceid = $output[$x-1];&lt;br /&gt;
            remmaint($maintenanceid);&lt;br /&gt;
        }&lt;br /&gt;
        $x++;&lt;br /&gt;
    }&lt;br /&gt;
    if(!$maintenanceid){&lt;br /&gt;
       print &amp;quot;WARNING - $hostname not found in maintenance for Zabbix.\n&amp;quot;;&lt;br /&gt;
       exit(1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
#################################################&lt;br /&gt;
# Subroutine to add maintenance window to Zabbix&lt;br /&gt;
#&lt;br /&gt;
sub addmaint{&lt;br /&gt;
    $hostid = shift;&lt;br /&gt;
    $duration = shift;&lt;br /&gt;
    $maintname = shift;&lt;br /&gt;
    my $start = time();&lt;br /&gt;
    my $end = ($start + $duration);&lt;br /&gt;
    # my $auth = newrequest($url, $apiuser, $apipassword);&lt;br /&gt;
   my $process = &amp;#039;curl -k -s -i -X POST -H \&amp;#039;Content-Type: application/json-rpc\&amp;#039; -d &amp;quot;{&lt;br /&gt;
    \&amp;quot;jsonrpc\&amp;quot;:\&amp;quot;2.0\&amp;quot;,&lt;br /&gt;
    \&amp;quot;method\&amp;quot;:\&amp;quot;maintenance.create\&amp;quot;,&lt;br /&gt;
    \&amp;quot;params\&amp;quot;:[{&lt;br /&gt;
        \&amp;quot;groupids\&amp;quot;:[],&lt;br /&gt;
        \&amp;quot;hostids\&amp;quot;:[\&amp;quot;&amp;#039;.$hostid.&amp;#039;\&amp;quot;],&lt;br /&gt;
        \&amp;quot;name\&amp;quot;:\&amp;quot;000_Manually Maintenance Mode with ID &amp;#039;.$maintname.&amp;#039; - &amp;#039;.$start.&amp;#039;\&amp;quot;,&lt;br /&gt;
        \&amp;quot;maintenance_type\&amp;quot;:\&amp;quot;0\&amp;quot;,&lt;br /&gt;
        \&amp;quot;description\&amp;quot;:\&amp;quot;000_Manually Maintenance Mode for &amp;#039;.$hostname.&amp;#039; set by Linux-Admin\&amp;quot;,&lt;br /&gt;
        \&amp;quot;active_since\&amp;quot;:\&amp;quot;&amp;#039;.$start.&amp;#039;\&amp;quot;,&lt;br /&gt;
        \&amp;quot;active_till\&amp;quot;:\&amp;quot;&amp;#039;.$end.&amp;#039;\&amp;quot;,&lt;br /&gt;
        \&amp;quot;timeperiods\&amp;quot;: [{&lt;br /&gt;
            \&amp;quot;timeperiod_type\&amp;quot;: 0,&lt;br /&gt;
            \&amp;quot;start_date\&amp;quot;: \&amp;quot;&amp;#039;.$start.&amp;#039;\&amp;quot;,&lt;br /&gt;
            \&amp;quot;period\&amp;quot;: &amp;#039;.$duration.&amp;#039;}]&lt;br /&gt;
        }],&lt;br /&gt;
    \&amp;quot;auth\&amp;quot;:\&amp;quot;&amp;#039;.$auth.&amp;#039;\&amp;quot;,&lt;br /&gt;
    \&amp;quot;id\&amp;quot;:3}&amp;quot; &amp;#039;.$url; &lt;br /&gt;
    my $res = `$process`;&lt;br /&gt;
    chomp($res);&lt;br /&gt;
 &lt;br /&gt;
    my @output = split(/,/,$res);&lt;br /&gt;
 &lt;br /&gt;
    foreach(@output){&lt;br /&gt;
    if ($_ =~ m/\&amp;quot;error/){&lt;br /&gt;
            print &amp;quot;$_\n&amp;quot;;&lt;br /&gt;
        exit(1);&lt;br /&gt;
        }&lt;br /&gt;
        print &amp;quot;$_\n&amp;quot; if ($_ =~ m/\&amp;quot;result/);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
}&lt;br /&gt;
#################################################&lt;br /&gt;
# Subroutine to remove maintenance window from Zabbix&lt;br /&gt;
#&lt;br /&gt;
sub remmaint{&lt;br /&gt;
    $maintenanceid = shift;&lt;br /&gt;
    my $process = qq(curl -k -s -i -X POST -H &amp;#039;Content-Type: application/json-rpc&amp;#039; -d &amp;#039;{&lt;br /&gt;
    &amp;quot;jsonrpc&amp;quot;:&amp;quot;2.0&amp;quot;,&lt;br /&gt;
    &amp;quot;method&amp;quot;:&amp;quot;maintenance.delete&amp;quot;,&lt;br /&gt;
    &amp;quot;params&amp;quot;:[&amp;quot;$maintenanceid&amp;quot;],&lt;br /&gt;
    &amp;quot;auth&amp;quot;:&amp;quot;$auth&amp;quot;,&lt;br /&gt;
    &amp;quot;id&amp;quot;:2}&amp;#039; $url);&lt;br /&gt;
 &lt;br /&gt;
    my $res = `$process`;&lt;br /&gt;
    chomp($res);&lt;br /&gt;
 &lt;br /&gt;
    my @output = split(/,/,$res);&lt;br /&gt;
 &lt;br /&gt;
    foreach(@output){&lt;br /&gt;
        print &amp;quot;$_\n&amp;quot; if ($_ =~ m/\&amp;quot;error/);&lt;br /&gt;
        print &amp;quot;$_\n&amp;quot; if ($_ =~ m/\&amp;quot;result/);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Einbindung in Zabbix Oberfläche==&lt;br /&gt;
Unter&lt;br /&gt;
 Administration =&amp;gt; Scripts&lt;br /&gt;
habe ich folgende Skripte angelegt:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200220-154612.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Im Detail:&lt;br /&gt;
:[[Datei:ClipCapIt-200220-154656.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Dadurch habe ich an jedem Host folgendes Menu (z.B. in der &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Problems&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;-Ansicht):&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200220-154902.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
So kann ich - falls ich mal wieder Updates einspiele und vergessen habe den Host in den Maintenance-Modus zu setzen - diese eben schnell nachholen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Man kann das Skript auch natürlich auch aus anderen Programmen aufrufen - z.B. um aus dem Ticketsystem bei genehmigten Change die zugehörigen Systeme automatisch für den geplanten Zeitraum in den Wartungsmodus zu versetzen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Groups==&lt;br /&gt;
Dies ist das von mir abgeänderte Skript was mit Hostgroups funktioniert:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano zabbix_main_group.pl&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Perl&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/perl&lt;br /&gt;
 &lt;br /&gt;
use strict;&lt;br /&gt;
use Getopt::Std;&lt;br /&gt;
use vars qw/ %opt /;&lt;br /&gt;
 &lt;br /&gt;
my $url = &amp;quot;http://localhost/api_jsonrpc.php&amp;quot;; # change &amp;lt;zabbix server&amp;gt; to your zabbix server&lt;br /&gt;
my $apiuser=&amp;quot;username&amp;quot;; # API User&amp;#039;s Username&lt;br /&gt;
my $apipassword=&amp;quot;password&amp;quot;; # API User&amp;#039;s password&lt;br /&gt;
my $maintenanceid;&lt;br /&gt;
 &lt;br /&gt;
#############&lt;br /&gt;
# Begin main&lt;br /&gt;
#&lt;br /&gt;
init();&lt;br /&gt;
my $groupname = $opt{s};&lt;br /&gt;
my $duration = $opt{d} || 10800;&lt;br /&gt;
my $maintname = $opt{n}; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Authenticate against Zabbix for API Maintenance addition&lt;br /&gt;
my $auth = newrequest($url, $apiuser, $apipassword);&lt;br /&gt;
my $groupid = getgroupid($groupname);&lt;br /&gt;
&lt;br /&gt;
if($opt{r}){&lt;br /&gt;
    print &amp;quot;Removing maintenance for group $groupname\n&amp;quot;;&lt;br /&gt;
    getmaintid($groupid,$maintname);&lt;br /&gt;
    exit(0);&lt;br /&gt;
}else{&lt;br /&gt;
    print &amp;quot;Adding maintenance for group $groupname\n&amp;quot;;&lt;br /&gt;
    addmaint($groupid,$duration,$maintname);&lt;br /&gt;
}&lt;br /&gt;
exit(0);&lt;br /&gt;
 &lt;br /&gt;
#########################&lt;br /&gt;
# Get command line input&lt;br /&gt;
#&lt;br /&gt;
sub init(){&lt;br /&gt;
    my $opt_string = &amp;#039;hrs:d:n:&amp;#039;;&lt;br /&gt;
    getopts( &amp;quot;$opt_string&amp;quot;, \%opt ) or usage();&lt;br /&gt;
    usage() if $opt{h};&lt;br /&gt;
    usage() if !$opt{s};&lt;br /&gt;
    usage() if !$opt{n};&lt;br /&gt;
}&lt;br /&gt;
#####################&lt;br /&gt;
# Print script usage&lt;br /&gt;
#&lt;br /&gt;
sub usage(){&lt;br /&gt;
    print STDERR &amp;lt;&amp;lt; &amp;quot;EOF&amp;quot;;&lt;br /&gt;
usage: $0 [-hr] -s groupname [-d duration] -n name&lt;br /&gt;
 -h           : This (help) message   &lt;br /&gt;
 -r           : Remove maintenance for specified host &lt;br /&gt;
 -s groupname : Hostgroupname in Zabbix&lt;br /&gt;
 -d           : Duration of maintenance in seconds. Leave blank to use default.&lt;br /&gt;
                  300 =  5 minutes&lt;br /&gt;
                 1800 = 30 minutes&lt;br /&gt;
                 3600 =  1 hour&lt;br /&gt;
                10800 =  3 hour (default)&lt;br /&gt;
 -n name      : unique identifier&lt;br /&gt;
&lt;br /&gt;
-s and -n are required&lt;br /&gt;
 &lt;br /&gt;
example: $0 -s groupname -d 3600 -n backup&lt;br /&gt;
example: $0 -s groupname -r -n backup&lt;br /&gt;
EOF&lt;br /&gt;
    exit;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#############################################&lt;br /&gt;
# Zabbix API requests require authentication&lt;br /&gt;
#&lt;br /&gt;
sub newrequest {&lt;br /&gt;
    my ($url, $user, $password) = @_;&lt;br /&gt;
 &lt;br /&gt;
    my $authenticate = qq(curl -k -s -i -X POST -H &amp;#039;Content-Type: application/json-rpc&amp;#039; -d &amp;#039;{&lt;br /&gt;
      &amp;quot;params&amp;quot;: {&lt;br /&gt;
          &amp;quot;password&amp;quot;: &amp;quot;$password&amp;quot;,&lt;br /&gt;
          &amp;quot;user&amp;quot;: &amp;quot;$user&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;jsonrpc&amp;quot;: &amp;quot;2.0&amp;quot;,&lt;br /&gt;
      &amp;quot;method&amp;quot;: &amp;quot;user.login&amp;quot;,&lt;br /&gt;
      &amp;quot;id&amp;quot;: 0&lt;br /&gt;
    }&amp;#039;  $url | grep result | head -n 1 | cut -d &amp;#039;&amp;quot;&amp;#039; -f 8);&lt;br /&gt;
    my $auth = `$authenticate`;&lt;br /&gt;
    chomp($auth);&lt;br /&gt;
    return $auth&lt;br /&gt;
 &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
###################################################&lt;br /&gt;
# Subroutine to query Zabbix to get host id&lt;br /&gt;
#&lt;br /&gt;
sub getgroupid{&lt;br /&gt;
    my $groupname = shift;&lt;br /&gt;
    my $process = qq(curl -k -s -i -X POST -H &amp;#039;Content-Type: application/json-rpc&amp;#039; -d &amp;#039;{&lt;br /&gt;
    &amp;quot;params&amp;quot;: {&lt;br /&gt;
        &amp;quot;filter&amp;quot;: {&lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;$groupname&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;jsonrpc&amp;quot;: &amp;quot;2.0&amp;quot;,&lt;br /&gt;
    &amp;quot;method&amp;quot;: &amp;quot;hostgroup.get&amp;quot;,&lt;br /&gt;
    &amp;quot;auth&amp;quot;: &amp;quot;$auth&amp;quot;,&lt;br /&gt;
    &amp;quot;id&amp;quot;: 2 }&amp;#039; $url);&lt;br /&gt;
    my $res = `$process`;&lt;br /&gt;
    chomp($res);&lt;br /&gt;
&lt;br /&gt;
    # print &amp;quot;$res \n\n&amp;quot;;&lt;br /&gt;
    my @output = split(/,/,$res);&lt;br /&gt;
    my $x=0;&lt;br /&gt;
    foreach(@output){&lt;br /&gt;
        if (($output[$x] =~ m/\&amp;quot;name\&amp;quot;/)&amp;amp;&amp;amp;($output[$x] =~ m/$groupname/)){&lt;br /&gt;
            $output[$x-1] =~ s/\[\{//g;&lt;br /&gt;
            $output[$x-1] =~ s/&amp;quot;//g;&lt;br /&gt;
            $output[$x-1] =~ s/groupid://g;&lt;br /&gt;
            $output[$x-1] =~ s/result://g;&lt;br /&gt;
            $output[$x-1] =~ s/\{//g;&lt;br /&gt;
            $groupid = $output[$x-1];&lt;br /&gt;
        }&lt;br /&gt;
        $x++;&lt;br /&gt;
    }&lt;br /&gt;
    if(!$groupid){&lt;br /&gt;
       print &amp;quot;WARNING - $groupname not found in maintenance for Zabbix.\n&amp;quot;;&lt;br /&gt;
       exit(1);&lt;br /&gt;
    }&lt;br /&gt;
    print &amp;quot;Group ID: &amp;quot;.$groupid.&amp;quot;\n&amp;quot;;&lt;br /&gt;
    return $groupid&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
###################################################&lt;br /&gt;
# Subroutine to query Zabbix to get maintenance id&lt;br /&gt;
#&lt;br /&gt;
sub getmaintid{&lt;br /&gt;
    my $groupid = shift;&lt;br /&gt;
    my $maintname = shift;&lt;br /&gt;
    my $process = qq(curl -k -s -i -X POST -H &amp;#039;Content-Type: application/json-rpc&amp;#039; -d &amp;#039;{&lt;br /&gt;
    &amp;quot;params&amp;quot;: {&lt;br /&gt;
        &amp;quot;output&amp;quot;: &amp;quot;extend&amp;quot;,&lt;br /&gt;
        &amp;quot;selectHosts&amp;quot;: &amp;quot;refer&amp;quot;,&lt;br /&gt;
        &amp;quot;selectGroups&amp;quot;: &amp;quot;refer&amp;quot;,&lt;br /&gt;
        &amp;quot;groupids&amp;quot;: &amp;quot;$groupid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;jsonrpc&amp;quot;: &amp;quot;2.0&amp;quot;,&lt;br /&gt;
    &amp;quot;method&amp;quot;: &amp;quot;maintenance.get&amp;quot;,&lt;br /&gt;
    &amp;quot;auth&amp;quot;: &amp;quot;$auth&amp;quot;,&lt;br /&gt;
    &amp;quot;id&amp;quot;: 2 }&amp;#039; $url);&lt;br /&gt;
 &lt;br /&gt;
    my $res = `$process`;&lt;br /&gt;
    chomp($res);&lt;br /&gt;
 &lt;br /&gt;
    my @output = split(/,/,$res);&lt;br /&gt;
    my $x=0;&lt;br /&gt;
    foreach(@output){&lt;br /&gt;
        if (($output[$x] =~ m/\&amp;quot;name\&amp;quot;/)&amp;amp;&amp;amp;($output[$x] =~ m/ID $maintname/)){&lt;br /&gt;
            $output[$x-1] =~ s/\[\{//g;&lt;br /&gt;
            $output[$x-1] =~ s/&amp;quot;//g;&lt;br /&gt;
            $output[$x-1] =~ s/maintenanceid://g;&lt;br /&gt;
            $output[$x-1] =~ s/result://g;&lt;br /&gt;
            $output[$x-1] =~ s/\{//g;&lt;br /&gt;
            $maintenanceid = $output[$x-1];&lt;br /&gt;
            remmaint($maintenanceid);&lt;br /&gt;
        }&lt;br /&gt;
        $x++;&lt;br /&gt;
    }&lt;br /&gt;
    if(!$maintenanceid){&lt;br /&gt;
       print &amp;quot;WARNING - $groupname not found in maintenance for Zabbix.\n&amp;quot;;&lt;br /&gt;
       exit(1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
#################################################&lt;br /&gt;
# Subroutine to add maintenance window to Zabbix&lt;br /&gt;
#&lt;br /&gt;
sub addmaint{&lt;br /&gt;
    $groupid = shift;&lt;br /&gt;
    $duration = shift;&lt;br /&gt;
    $maintname = shift;&lt;br /&gt;
    my $start = time();&lt;br /&gt;
    my $end = ($start + $duration);&lt;br /&gt;
    # my $auth = newrequest($url, $apiuser, $apipassword);&lt;br /&gt;
   my $process = &amp;#039;curl -k -s -i -X POST -H \&amp;#039;Content-Type: application/json-rpc\&amp;#039; -d &amp;quot;{&lt;br /&gt;
    \&amp;quot;jsonrpc\&amp;quot;:\&amp;quot;2.0\&amp;quot;,&lt;br /&gt;
    \&amp;quot;method\&amp;quot;:\&amp;quot;maintenance.create\&amp;quot;,&lt;br /&gt;
    \&amp;quot;params\&amp;quot;:[{&lt;br /&gt;
        \&amp;quot;groupids\&amp;quot;:[\&amp;quot;&amp;#039;.$groupid.&amp;#039;\&amp;quot;],&lt;br /&gt;
        \&amp;quot;hostids\&amp;quot;:[],&lt;br /&gt;
        \&amp;quot;name\&amp;quot;:\&amp;quot;000_Trigger Maintenance Mode with ID &amp;#039;.$maintname.&amp;#039; - &amp;#039;.$start.&amp;#039;\&amp;quot;,&lt;br /&gt;
        \&amp;quot;maintenance_type\&amp;quot;:\&amp;quot;0\&amp;quot;,&lt;br /&gt;
        \&amp;quot;description\&amp;quot;:\&amp;quot;000_Trigger Maintenance Mode for &amp;#039;.$groupname.&amp;#039; set by Action\&amp;quot;,&lt;br /&gt;
        \&amp;quot;active_since\&amp;quot;:\&amp;quot;&amp;#039;.$start.&amp;#039;\&amp;quot;,&lt;br /&gt;
        \&amp;quot;active_till\&amp;quot;:\&amp;quot;&amp;#039;.$end.&amp;#039;\&amp;quot;,&lt;br /&gt;
        \&amp;quot;timeperiods\&amp;quot;: [{&lt;br /&gt;
            \&amp;quot;timeperiod_type\&amp;quot;: 0,&lt;br /&gt;
            \&amp;quot;start_date\&amp;quot;: \&amp;quot;&amp;#039;.$start.&amp;#039;\&amp;quot;,&lt;br /&gt;
            \&amp;quot;period\&amp;quot;: &amp;#039;.$duration.&amp;#039;}]&lt;br /&gt;
        }],&lt;br /&gt;
    \&amp;quot;auth\&amp;quot;:\&amp;quot;&amp;#039;.$auth.&amp;#039;\&amp;quot;,&lt;br /&gt;
    \&amp;quot;id\&amp;quot;:3}&amp;quot; &amp;#039;.$url; &lt;br /&gt;
    my $res = `$process`;&lt;br /&gt;
    chomp($res);&lt;br /&gt;
 &lt;br /&gt;
    my @output = split(/,/,$res);&lt;br /&gt;
 &lt;br /&gt;
    foreach(@output){&lt;br /&gt;
    if ($_ =~ m/\&amp;quot;error/){&lt;br /&gt;
            print &amp;quot;$_\n&amp;quot;;&lt;br /&gt;
        exit(1);&lt;br /&gt;
        }&lt;br /&gt;
        print &amp;quot;$_\n&amp;quot; if ($_ =~ m/\&amp;quot;result/);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
}&lt;br /&gt;
#################################################&lt;br /&gt;
# Subroutine to remove maintenance window from Zabbix&lt;br /&gt;
#&lt;br /&gt;
sub remmaint{&lt;br /&gt;
    $maintenanceid = shift;&lt;br /&gt;
    my $process = qq(curl -k -s -i -X POST -H &amp;#039;Content-Type: application/json-rpc&amp;#039; -d &amp;#039;{&lt;br /&gt;
    &amp;quot;jsonrpc&amp;quot;:&amp;quot;2.0&amp;quot;,&lt;br /&gt;
    &amp;quot;method&amp;quot;:&amp;quot;maintenance.delete&amp;quot;,&lt;br /&gt;
    &amp;quot;params&amp;quot;:[&amp;quot;$maintenanceid&amp;quot;],&lt;br /&gt;
    &amp;quot;auth&amp;quot;:&amp;quot;$auth&amp;quot;,&lt;br /&gt;
    &amp;quot;id&amp;quot;:2}&amp;#039; $url);&lt;br /&gt;
 &lt;br /&gt;
    my $res = `$process`;&lt;br /&gt;
    chomp($res);&lt;br /&gt;
 &lt;br /&gt;
    my @output = split(/,/,$res);&lt;br /&gt;
 &lt;br /&gt;
    foreach(@output){&lt;br /&gt;
        print &amp;quot;$_\n&amp;quot; if ($_ =~ m/\&amp;quot;error/);&lt;br /&gt;
        print &amp;quot;$_\n&amp;quot; if ($_ =~ m/\&amp;quot;result/);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Nutzung in Actions==&lt;br /&gt;
Das Gruppenskript nutze ich Actions um einen ganzen Standort in Wartung zu versetzen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200220-155817.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Im Detail ist das hier beschrieben:&amp;lt;br&amp;gt;&lt;br /&gt;
 https://znil.net/index.php?title=Zabbix_Standorte_Hostgruppen_bei_Nichterreichbarkeit_automatisch_in_den_Wartungsmodus_setzen_oder_daraus_entfernen&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Mit oder ohne Datensammlung==&lt;br /&gt;
In beiden Skripten gibt es eine Zeile&amp;lt;br&amp;gt;&lt;br /&gt;
 \&amp;quot;maintenance_type\&amp;quot;:\&amp;quot;0\&amp;quot;,&lt;br /&gt;
Die 0 bedeudet &amp;quot;&amp;#039;&amp;#039;&amp;#039;With data collection&amp;#039;&amp;#039;&amp;#039;&amp;quot;. Wollt Ihr das ohne Datensammlung &amp;quot;&amp;#039;&amp;#039;&amp;#039;Without data collection&amp;#039;&amp;#039;&amp;#039;&amp;quot; so ändert die 0 auf eine 1:&amp;lt;br&amp;gt;&lt;br /&gt;
 \&amp;quot;maintenance_type\&amp;quot;:\&amp;quot;1\&amp;quot;,&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;
==Kommentare==&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
</feed>