<?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_sender_per_Web_URL-Aufruf_nutzen</id>
	<title>Zabbix sender per Web URL-Aufruf nutzen - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://znil.net/index.php?action=history&amp;feed=atom&amp;title=Zabbix_sender_per_Web_URL-Aufruf_nutzen"/>
	<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Zabbix_sender_per_Web_URL-Aufruf_nutzen&amp;action=history"/>
	<updated>2026-04-19T07:08:57Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in znilwiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://znil.net/index.php?title=Zabbix_sender_per_Web_URL-Aufruf_nutzen&amp;diff=14090&amp;oldid=prev</id>
		<title>BLinz: /* Umbau auf waitress */</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Zabbix_sender_per_Web_URL-Aufruf_nutzen&amp;diff=14090&amp;oldid=prev"/>
		<updated>2024-06-17T13:09:21Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Umbau auf waitress&lt;/span&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 17. Juni 2024, 15:09 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-l236&quot;&gt;Zeile 236:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 236:&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;     serve(app, host=&amp;quot;0.0.0.0&amp;quot;, port=5000)&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;     serve(app, host=&amp;quot;0.0.0.0&amp;quot;, port=5000)&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;br&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;br&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;&amp;lt;source&amp;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;&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/&lt;/ins&gt;source&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;Dann gibt es nach dem Start aber kein Feedback - Ausgaben landen aber wie gewohnt in der Shell.&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;Dann gibt es nach dem Start aber kein Feedback - Ausgaben landen aber wie gewohnt in der Shell.&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_sender_per_Web_URL-Aufruf_nutzen&amp;diff=14089&amp;oldid=prev</id>
		<title>BLinz: /* Umbau auf waitress */</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Zabbix_sender_per_Web_URL-Aufruf_nutzen&amp;diff=14089&amp;oldid=prev"/>
		<updated>2024-06-17T13:08:18Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Umbau auf waitress&lt;/span&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 17. Juni 2024, 15:08 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-l239&quot;&gt;Zeile 239:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 239:&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;Dann gibt es nach dem Start aber kein Feedback - Ausgaben landen aber wie gewohnt in der Shell.&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;Dann gibt es nach dem Start aber kein Feedback - Ausgaben landen aber wie gewohnt in der Shell.&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;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;==Kommentare==&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;==Kommentare==&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;comments /&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;comments /&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_sender_per_Web_URL-Aufruf_nutzen&amp;diff=14088&amp;oldid=prev</id>
		<title>BLinz: /* Kommentare */</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Zabbix_sender_per_Web_URL-Aufruf_nutzen&amp;diff=14088&amp;oldid=prev"/>
		<updated>2024-06-17T11:27:00Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Kommentare&lt;/span&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 17. Juni 2024, 13:27 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-l203&quot;&gt;Zeile 203:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 203:&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;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;br&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;br&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;==Umbau auf waitress==&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;Falls es die Warnung&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; WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.&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;gibt, können wir umbauen auf &#039;&#039;&#039;&#039;&#039;waitress&#039;&#039;&#039;&#039;&#039;&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; apt install python3-waitress&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;und das Skript dann wie folgt:&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;&amp;lt;source lang=&quot;python&quot;&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;#!/usr/bin/python3&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;# -*- coding: utf-8 -*-&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;import os&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;from functools import wraps&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;from flask import Flask, request, Response&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;app = Flask(__name__)&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 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;# Wenn nur die URL ohne Parameter aufgerufen wird&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;@app.route(&#039;/&#039;)&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;def hello():&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;    return &quot;Start ZabbixSenderByURL! Use /ZabbixServer/Hostname/Item/Value&quot;&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 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;# Wenn die URL mit Parametern aufgerufen wird&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;@app.route(&#039;/&amp;lt;zabbixserver&amp;gt;/&amp;lt;zhostname&amp;gt;/&amp;lt;zitem&amp;gt;/&amp;lt;zvalue&amp;gt;&#039;)&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;def ZabbixSender(zabbixserver, zhostname, zitem, zvalue):&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;    print(&quot;/usr/bin/zabbix_sender -z &quot; + zabbixserver + &quot; -s &quot; + zhostname + &quot; -k &quot; + zitem + &quot; -o &quot; + zvalue)&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;    #os.system(&quot;/usr/bin/zabbix_sender -z &quot; + zabbixserver + &quot; -s &quot; + zhostname + &quot; -k &quot; + zitem + &quot; -o &quot; + zvalue  + &quot;  &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&quot;)&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;    return (&#039;OK das hat geklappt!&#039;), 200&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 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;#if __name__ == &#039;__main__&#039;:&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;#    app.run(host=&#039;0.0.0.0&#039;, port=5000)&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 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;if __name__ == &quot;__main__&quot;:&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;    from waitress import serve&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;    serve(app, host=&quot;0.0.0.0&quot;, port=5000)&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 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;source&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;Dann gibt es nach dem Start aber kein Feedback - Ausgaben landen aber wie gewohnt in der Shell.&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;==Kommentare==&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;==Kommentare==&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;comments /&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;comments /&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_sender_per_Web_URL-Aufruf_nutzen&amp;diff=11335&amp;oldid=prev</id>
		<title>BLinz: /* Anpassungen */</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Zabbix_sender_per_Web_URL-Aufruf_nutzen&amp;diff=11335&amp;oldid=prev"/>
		<updated>2019-02-27T09:36:32Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Anpassungen&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Vorwort==&lt;br /&gt;
In letzter Zeit beschäftige ich mich viel mit den ESP8266 Modulen. Bisher habe ich z.B. einen WLAN-Taster und eine Temperatur/Luftfeuchtigkeits-Messtation gebaut.&amp;lt;br&amp;gt;&lt;br /&gt;
Die erfassten Werte (unter anderem der Batteriespannung um zu wissen wann ich nachladen muss) möchte ich natürlich in Zabbix haben.&amp;lt;br&amp;gt;&lt;br /&gt;
Nun gibt es zwar schon einige Versuche einen &amp;quot;Zabbix-Agenten&amp;quot; auf dem ESP zu simulieren - aber das ist mir alles viel zu umständlich.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ich nutze Python und Flask schon eine Weile um darüber meine 32 Relais an einem Raspberry Pi zu bedienen.&amp;lt;br&amp;gt;&lt;br /&gt;
Stark vereinfacht erklärt: Flask erstellt einen kleinen Webserver der die aufgerufene URL als Variablen an das Pythonskript übergibt.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Vorbereitung Server==&lt;br /&gt;
Ich lasse das Python-Skript das den Aufruf entgegen nimmt in diesem Beispiel mit auf dem Zabbix-Server laufen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es läuft auf Port 5000 und kommt somit der Zabbix-Webseite auf Port 80/443 nicht in die Quere.&amp;lt;br&amp;gt;&lt;br /&gt;
Basis ist bei mir eine Zabbix 4.0.x Server unter Ubuntu 18.04. LTS. Es sollte aber auch genauso auf älteren Systemen laufen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Meldet euch an eurem Server an und wechselt zum &amp;#039;&amp;#039;&amp;#039;root&amp;#039;&amp;#039;&amp;#039;-Benutzer.&amp;lt;br&amp;gt;&lt;br /&gt;
Zunächst prüfen wir ob Python schon installiert ist:&amp;lt;br&amp;gt;&lt;br /&gt;
 root@zabbix:~# python --version&lt;br /&gt;
 Python 2.7.15rc1&lt;br /&gt;
Was eigentlich der Fall sein sollte. Es gibt auch noch &amp;#039;&amp;#039;&amp;#039;python3&amp;#039;&amp;#039;&amp;#039; was hier erst einmal egal ist. Das ganze hier läuft sowohl unter Python 2.7 als auch 3.6&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt installieren wir &amp;#039;&amp;#039;&amp;#039;Flask nach&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 apt install python-flask -y&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Skript Stufe 1: Der Test==&lt;br /&gt;
In Stufe 1 testen wir nun den Zugriff. Dazu erstellen wir unser Skript wie folgt:&amp;lt;br&amp;gt;&lt;br /&gt;
 mkdir /opt/flask&lt;br /&gt;
 nano /opt/flask/ZabbixSenderByURL.py&lt;br /&gt;
und fügt folgenden Inhalt ein:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import os&lt;br /&gt;
from functools import wraps&lt;br /&gt;
from flask import Flask, request, Response&lt;br /&gt;
app = Flask(__name__)&lt;br /&gt;
&lt;br /&gt;
# Wenn nur die URL ohne Parameter aufgerufen wird&lt;br /&gt;
@app.route(&amp;#039;/&amp;#039;)&lt;br /&gt;
def hello():&lt;br /&gt;
    return &amp;quot;Start ZabbixSenderByURL! Use /ZabbixServer/Hostname/Item/Value&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Wenn die URL mit Parametern aufgerufen wird&lt;br /&gt;
@app.route(&amp;#039;/&amp;lt;zabbixserver&amp;gt;/&amp;lt;zhostname&amp;gt;/&amp;lt;zitem&amp;gt;/&amp;lt;zvalue&amp;gt;&amp;#039;)&lt;br /&gt;
def ZabbixSender(zabbixserver, zhostname, zitem, zvalue):&lt;br /&gt;
    print(&amp;quot;/usr/bin/zabbix_sender -z &amp;quot; + zabbixserver + &amp;quot; -s &amp;quot; + zhostname + &amp;quot; -k &amp;quot; + zitem + &amp;quot; -o &amp;quot; + zvalue)&lt;br /&gt;
    #os.system(&amp;quot;/usr/bin/zabbix_sender -z &amp;quot; + zabbixserver + &amp;quot; -s &amp;quot; + zhostname + &amp;quot; -k &amp;quot; + zitem + &amp;quot; -o &amp;quot; + zvalue  + &amp;quot;  &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&amp;quot;)&lt;br /&gt;
    return (&amp;#039;OK&amp;#039;), 200&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;#039;__main__&amp;#039;:&lt;br /&gt;
    app.run(host=&amp;#039;0.0.0.0&amp;#039;, port=5000)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Das Programm wird uns nun nur den &amp;#039;&amp;#039;&amp;#039;zabbix_sender&amp;#039;&amp;#039;&amp;#039; Aufruf anzeigen, diesen aber noch nicht ausführen.&amp;lt;br&amp;gt;&lt;br /&gt;
Achtet darauf das die Einrückung exakt 4 Zeichen betragen!&amp;lt;br&amp;gt;&lt;br /&gt;
Wir machen es ausführbar:&amp;lt;br&amp;gt;&lt;br /&gt;
 chmod +x /opt/flask/ZabbixSenderByURL.py&lt;br /&gt;
und starten es:&lt;br /&gt;
 /opt/flask/ZabbixSenderByURL.py&lt;br /&gt;
Ausgabe:&amp;lt;br&amp;gt;&lt;br /&gt;
 root@zabbix:~# /opt/flask/ZabbixSenderByURL.py&lt;br /&gt;
  * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)&lt;br /&gt;
Nun rufen wir ein einem Webbrowser die folgende URL auf (IP an euren Server anpassen):&amp;lt;br&amp;gt;&lt;br /&gt;
 http://10.100.12.15:5000/zabbix.znil.local/Messstation01/znil.esp8266.DHT22.temperature/23&lt;br /&gt;
welcher uns dann ein schnödes &amp;quot;OK&amp;quot; zurück gibt.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Ausgabe in der Bash sollte nun wie folgt aussehen:&amp;lt;br&amp;gt;&lt;br /&gt;
 root@zabbix:~# /opt/flask/ZabbixSenderByURL.py&lt;br /&gt;
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)&lt;br /&gt;
 /usr/bin/zabbix_sender -z zabbix.znil.local -s Messstation01 -k znil.esp8266.DHT22.temparture -o 23&lt;br /&gt;
 172.16.103.2 - - [27/Feb/2019 10:03:14] &amp;quot;GET /zabbix.znil.local/Messstation01/znil.esp8266.DHT22.temperature/23 HTTP/1.1&amp;quot; 200 -&lt;br /&gt;
 172.16.103.2 - - [27/Feb/2019 10:03:14] &amp;quot;GET /favicon.ico HTTP/1.1&amp;quot; 404 -&lt;br /&gt;
Das war es schon ... funktioniert. In den letzten beiden Zeilen sehen wir das der Aufruf der URL mit &amp;quot;200&amp;quot; quittiert wurde.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Browser wollte dann noch ein &amp;#039;&amp;#039;&amp;#039;favicon.ico&amp;#039;&amp;#039;&amp;#039; haben was wir aber nicht geliefert haben - das ignorieren wir.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Skript Stufe 2: Scharfschalten und als Dienst==&lt;br /&gt;
Drückt in der Bash {{Key|STRG}} + {{Key|C}} um den Server wieder zu beenden.&amp;lt;br&amp;gt;&lt;br /&gt;
Bearbeitet das Skript noch einmal:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /opt/flask/ZabbixSenderByURL.py&lt;br /&gt;
und ändert die folgenden 2 Zeilen:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
    #print(&amp;quot;/usr/bin/zabbix_sender -z &amp;quot; + zabbixserver + &amp;quot; -s &amp;quot; + zhostname + &amp;quot; -k &amp;quot; + zitem + &amp;quot; -o &amp;quot; + zvalue)&lt;br /&gt;
    os.system(&amp;quot;/usr/bin/zabbix_sender -z &amp;quot; + zabbixserver + &amp;quot; -s &amp;quot; + zhostname + &amp;quot; -k &amp;quot; + zitem + &amp;quot; -o &amp;quot; + zvalue  + &amp;quot;  &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&amp;quot;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Nun wird der Zabbix-Sender ausgeführt wenn die URL aufgerufen wird.&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt richten wir das als Dienst ein:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/systemd/system/zabbixsenderbyurl.service&lt;br /&gt;
Inhalt:&amp;lt;br&amp;gt;&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=Zabbix Sender URL Service&lt;br /&gt;
 After=syslog.target&lt;br /&gt;
 &lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=simple&lt;br /&gt;
 WorkingDirectory=/opt/flask&lt;br /&gt;
 ExecStart=/opt/flask/ZabbixSenderByURL.py&lt;br /&gt;
 SyslogIdentifier=zabbixsenderbyurl&lt;br /&gt;
 StandardOutput=syslog&lt;br /&gt;
 StandardError=syslog&lt;br /&gt;
 Restart=always&lt;br /&gt;
 RestartSec=3&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
Automatischen Start einschalten:&amp;lt;br&amp;gt;&lt;br /&gt;
 systemctl enable zabbixsenderbyurl.service&lt;br /&gt;
und starten:&amp;lt;br&amp;gt;&lt;br /&gt;
 systemctl start zabbixsenderbyurl.service&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Das Item==&lt;br /&gt;
Das Item zu dem  Beispiel&amp;lt;br&amp;gt;&lt;br /&gt;
 http://10.100.12.15:5000/zabbix.znil.local/Messstation01/znil.esp8266.DHT22.temperature/23&lt;br /&gt;
sieht wie folgt aus:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-190227-102112.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn wir nun die URL noch einmal aufrufen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-190227-102544.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Erklärung==&lt;br /&gt;
Um mit dem Programm &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;zabbix_sender&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; Daten zu senden nutzen wir folgenden Aufruf:&amp;lt;br&amp;gt;&lt;br /&gt;
 zabbix_sender -z &amp;lt;zabbixserver&amp;gt; -s &amp;lt;host&amp;gt; -k &amp;lt;item&amp;gt; -o &amp;lt;wert&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 zabbix_sender          Das Programm zum Werte senden&lt;br /&gt;
 -z &amp;lt;zabbixserver&amp;gt;      Name oder IP des Zabbix-Servers oder Zabbix-Proxy, z.B. &amp;#039;&amp;#039;&amp;#039;127.0.0.1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 -s &amp;lt;host&amp;gt;              Name des Host in Zabbix, z.B.  &amp;#039;&amp;#039;&amp;#039;Messstation01&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 -k &amp;lt;item&amp;gt;              Name des Items das den Wert bekommen soll, z.B. &amp;#039;&amp;#039;&amp;#039;znil.esp8266.DHT22.temperature&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 -o &amp;lt;wert&amp;gt;              Wert der gesendet werden soll, z.B. &amp;#039;&amp;#039;&amp;#039;23&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Der ganze Aufruf wäre also z.B.&amp;lt;br&amp;gt;&lt;br /&gt;
 zabbix_sender -z 127.0.0.1 -s Messstation01 -k znil.esp8266.DHT22.temperature -o 23&lt;br /&gt;
Den Aufruf verpacken wir nun in einen URL-Aufruf wie wir Ihn in jedem Browser nutzen können:&amp;lt;br&amp;gt;&lt;br /&gt;
 http://10.100.12.15:5000/zabbix.znil.local/Messstation01/znil.esp8266.DHT22.temperature/23&lt;br /&gt;
Das Python-Skript bekommt so die Werte und sendet diese einfach per Zabbix-Sender weiter.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Anpassungen==&lt;br /&gt;
----&lt;br /&gt;
===Port ändern===&lt;br /&gt;
Das Skript läuft auf Port 5000. Umd as zu ändern müsst Ihr die letzte Zeile im Skript ändern:&amp;lt;br&amp;gt;&lt;br /&gt;
 app.run(host=&amp;#039;0.0.0.0&amp;#039;, port=5000)&lt;br /&gt;
Und dort die gewünschte Nummer angeben.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===URL mit Benutzername + Passwort absichern===&lt;br /&gt;
Man kann eine &amp;quot;Basic-Authentication&amp;quot; davorschalten - dann poppt beim Aufruf ein Fenster für Benutzername + Passwort auf.&amp;lt;br&amp;gt;&lt;br /&gt;
Man kann die Anmeldung aber auch in der URL übergeben - was es einfacher macht.&amp;lt;br&amp;gt;&lt;br /&gt;
Ändert das Skript wie folgt ab:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import os&lt;br /&gt;
from functools import wraps&lt;br /&gt;
from flask import Flask, request, Response&lt;br /&gt;
app = Flask(__name__)&lt;br /&gt;
&lt;br /&gt;
# Wenn nur die URL ohne Parameter aufgerufen wird&lt;br /&gt;
@app.route(&amp;#039;/&amp;#039;)&lt;br /&gt;
def hello():&lt;br /&gt;
    return &amp;quot;Start ZabbixSenderByURL! Use /ZabbixServer/Hostname/Item/Value&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#nur nach Anmeldung, siehe http://flask.pocoo.org/snippets/8/&lt;br /&gt;
def check_auth(username, password):&lt;br /&gt;
    # This function is called to check if a username /&lt;br /&gt;
    # password combination is valid.&lt;br /&gt;
    return username == &amp;#039;zabbix&amp;#039; and password == &amp;#039;xibbaz&amp;#039;&lt;br /&gt;
&lt;br /&gt;
def authenticate():&lt;br /&gt;
    # Sends a 401 response that enables basic auth&lt;br /&gt;
    return Response(&lt;br /&gt;
    &amp;#039;Could not verify your access level for that URL.\n&amp;#039;&lt;br /&gt;
    &amp;#039;You have to login with proper credentials&amp;#039;, 401,&lt;br /&gt;
    {&amp;#039;WWW-Authenticate&amp;#039;: &amp;#039;Basic realm=&amp;quot;Login Required&amp;quot;&amp;#039;})&lt;br /&gt;
&lt;br /&gt;
def requires_auth(f):&lt;br /&gt;
    @wraps(f)&lt;br /&gt;
    def decorated(*args, **kwargs):&lt;br /&gt;
        auth = request.authorization&lt;br /&gt;
        if not auth or not check_auth(auth.username, auth.password):&lt;br /&gt;
            return authenticate()&lt;br /&gt;
        return f(*args, **kwargs)&lt;br /&gt;
    return decorated&lt;br /&gt;
&lt;br /&gt;
# Wenn die URL mit Parametern aufgerufen wird&lt;br /&gt;
@app.route(&amp;#039;/&amp;lt;zabbixserver&amp;gt;/&amp;lt;zhostname&amp;gt;/&amp;lt;zitem&amp;gt;/&amp;lt;zvalue&amp;gt;&amp;#039;)&lt;br /&gt;
@requires_auth&lt;br /&gt;
def ZabbixSender(zabbixserver, zhostname, zitem, zvalue):&lt;br /&gt;
    #print(&amp;quot;/usr/bin/zabbix_sender -z &amp;quot; + zabbixserver + &amp;quot; -s &amp;quot; + zhostname + &amp;quot; -k &amp;quot; + zitem + &amp;quot; -o &amp;quot; + zvalue)&lt;br /&gt;
    os.system(&amp;quot;/usr/bin/zabbix_sender -z &amp;quot; + zabbixserver + &amp;quot; -s &amp;quot; + zhostname + &amp;quot; -k &amp;quot; + zitem + &amp;quot; -o &amp;quot; + zvalue  + &amp;quot;  &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&amp;quot;)&lt;br /&gt;
    return (&amp;#039;OK&amp;#039;), 200&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;#039;__main__&amp;#039;:&lt;br /&gt;
    app.run(host=&amp;#039;0.0.0.0&amp;#039;, port=5000)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Den Benutzernamen und das Passwort im Skript müsst Ihr anpassen.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Aufruf wäre nun:&amp;lt;br&amp;gt;&lt;br /&gt;
 http://zabbix:xibbaz@10.100.12.15:5000/zabbix.znil.local/Messstation01/znil.esp8266.DHT22.temperature/23&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==https nutzen==&lt;br /&gt;
Immer gleich übertreiben ... im internen Netzwerk nutze ich das nicht. Wer das möchte den verweise ich auf folgende beiden Artikel:&amp;lt;br&amp;gt;&lt;br /&gt;
* https://blog.miguelgrinberg.com/post/running-your-flask-application-over-https&lt;br /&gt;
* http://flask.pocoo.org/snippets/111/&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>